2. Thiết kế tổng thể
3. Thiết kế dữ liệu
4. Thiết kế giao diện một số chức năng (từ 1 - 3)
5. Thiết kế xử lý cho một chức năng
6. Lập trình hàm xử lý biến cố
Các thành phần:
Báo cáo viết thể hiện:
- Mở đầu
- Phân tích
- Thiết kế
- Thực hiện và test
- Tổng kết
Chương trình thực hiện được
Dữ liệu
Chương trình Setup (tùy chọn)
Example: Phần mềm chơi cờ caro
- Soft giải trí cá nhân
- Kỹ năng chính được yêu cầu: Kỹ năng xử lý giao diện người dung, Kỹ thuật xử lý nghiệp vụ.
- Kết quả: Hồ sơ phân tích - thiết kế, phần mềm
Yêu cầu chức năng (4cn)
- Chức năng xử lý nước đi (chính)
- Chức năng cập nhật tham số
- Chức năng ghi bàn cờ
- Chức năng đọc bàn cờ
1. Chức năng xử lý nước đi (2 vai trò)
"Trọng tài" --> Kiểm tra tính hợp lệ của nước đi.
"Người chơi" --> Think and decided nước đi thích hợp(yêu cầu tối thiểu - nước đi hợp lệ)
2. Chức năng cập nhật tham số: Cho người dùng tùy chọn
- Kích thước bàn cờ
- Quyết định thắng / thua .
- Time to think(yêu cầu tối thiểu: Kích thước và quyết định thắng thua)
3. Chức năng ghi bàn cờ: Cho người dùng tạm dừng chơi và lưu thông tin về trạng thái bàn cờ vào file để can continue play vào dịp khác.
(Cần lưu trữ sao cho người dùng có thể tiếp tục chơi như chưa bao giờ tạm dừng)
4. Chức năng đọc bàn cờ: Cho phép người sử dụng tiếp tục chơi cờ với bàn cờ đã được lưu trước đó.
(bảo đảm đúng trạng thái khi tạm dừng và ghi bàn cờ vào tập tin)
Yêu cầu chất lượng:
- Tính tiện dụng: Giao diện người dùng theo dạng tự nhiên nhất có thể.
- Tính hiệu quả: không xem xét
- Tính tiến hóa: Chức năng cập nhật tham số của trò chơi
- Tính dễ bảo trì: Dễ thay đổi giao diện
- Tính tái sử dụng: Tái sử dụng cho các phần mềm đánh cờ khác.
- Tính dễ mang chuyển: Cần xem xét.
w330 pixels x H240 pĩels
Đối kháng (người với người, người với máy)
Point begin(X1, Y1)
Pointend(X2, Y2)
Chướng ngạy vật: mảng lưu các point sẽ xét ở bước kế (cần 1 mảng tam cho mảng lưu này), mảng lưu đường đi ngắn nhất. Kích thước bản đồ, đồ dài đường đi.
---
Thuật toán minimax
1. Nếu như đạt đến giới hạn tìm kiếm (đến tầng dưới cùng của cây tìm kiếm), tính giá trị tĩnh của thế cờ hiện tại ứng với người chơi ở đó, ghi nhớ kết quả.
2. Nếu như mức đang xét là của người chơi cực tiểu, áp dụng thủ tục minimax này cho các con của nó ghi nhớ kết quả nhỏ nhất.
3. Nếu như mức đang xét là của người chơi cực đại, áp dụng thủ tục minimax này cho các con của nó ghi nhớ kết quả lớn nhất.
Thuật toán AlphaBeta
1. Nếu mức đang xét là đỉnh (gốc cây), đặt giá trị alpha là - vô cùng và beta là + vô cugf
2. Nếu như đạt tới giới hạn tìm kiếm (đến tầng dưới cùng của cây tìm kiếm). Tính giá trị của tình thế hiện tại ứng với người chơi ở đó ghi lại kết quả.
3. Nếu như mức đang xét là ở người chơi cực tiểu:
- Thực hiện các công việc sau cho đến khi tất cả các con của nó đã được xét với thủ tục Alphabeta hoặc cho đến khi Alpha là bằng hoặc lớn hơn beta.
- Áp dụng thủ tục alphabeta với giá trị alpha và beta hiện tại cho 1 con ghi nhớ kết quả.
Ghi nhớ lại beta
- So sánh giá trị ghi nhớ với giá trị beta, nếu giá trị đó nhỏ hơn thì đặt beta bằng giá trị mới này.
4. Nếu như mức đang xét là của người chơi cực đại
- Thực hiện công việc sau cho đến khi tất cả các con của nó đã được xét với thủ tục alphabeta hoặc cho đến khi alpha là bằng hoặc hơn beta
- Áp dụng thủ tục Alphabeta với giá trị alpha và beta hiện tại cho 1 con ghi nhớ lại kết quả.
- So sánh giá trị ghi nhớ với giá trijalpha,, nếu giá trị đó lớn hơn thì đặt alpha bằng giá trị mới này
- Ghi nhớ lại alpha.
Không có nhận xét nào:
Đăng nhận xét