Nói chung, các vấn đề mà bạn sẽ kết thúc chạy sẽ phụ thuộc vào bạn và cách tiếp cận của bạn. Bạn bè có xu hướng nói rằng phức tạp là đơn giản từ quan điểm khác nhau.
Chọn thư viện đồ họa phụ thuộc vào loại trò chơi bạn sẽ viết? OpenGL là lựa chọn phổ biến trong loại dự án này, nhưng bạn cũng có thể sử dụng một số thư viện GUI hoặc trực tiếp chỉ sử dụng các thư viện riêng của windows hoặc xorg. Nếu bạn định làm gì đó, chỉ cần sử dụng OpenGL.
Câu hỏi bạn nên hỏi:
Lựa chọn hợp lý của C++ cho dự án này? Xem xét C và/hoặc python là tốt.Câu trả lời của tôi cho điều này sẽ là nếu bạn chỉ muốn viết đảo ngược, hãy đi python. Nhưng nếu bạn muốn học một ngôn ngữ cấp thấp, hãy làm C trước. C++ là một phần mở rộng đến C, do đó có nhiều thứ để học ở đó hơn là ở C. Và với thẩm phán của tôi, bạn càng phải học lên C++ thì không đáng để thử.
Bạn sử dụng thư viện đồ họa như thế nào? Nếu bạn định tạo hiệu ứng lạ mắt, hãy vào biểu đồ cảnh. Thay vào đó, bạn chỉ có thể hiển thị lưới đảo ngược bằng các nút trên đó.
Cách bạn triển khai giao diện người dùng, bạn có nên sử dụng các khái niệm giao diện người dùng chung không? Các khái niệm UI thông thường (cửa sổ, khung, nút, thanh thực đơn, hộp thoại) không tốt như mọi người nghĩ, có rất nhiều công việc trong việc triển khai chúng đúng cách. Áp dụng biểu đồ cảnh để giải thích đầu vào và thử các cách thông minh khác nhau để kiểm soát trò chơi. Tránh các menu giới thiệu (chúng là công việc ngu ngốc và vô dụng), sử dụng các đối số dòng lệnh cho hầu hết cấu hình.
Tôi chưa cung cấp cho bạn một số ý tưởng để giúp bạn bắt đầu:
Ban Othello là 8x8, 64 ô nói chung. Bạn có thể gán một byte cho mỗi ô, làm cho nó là 64 byte cho mỗi trạng thái bảng. Đó là 8 ints dài, không phải là rất nhiều ở tất cả! Bạn có thể lưu trữ toàn bộ tiến trình của trò chơi và người chơi thậm chí không thể nhận thấy nó. Do đó, nên thực hiện bảng othello như một cấu trúc bất biến mà bạn luôn sao chép khi bạn thay đổi trạng thái. Nó cũng sẽ giúp bạn sau này với AI của bạn và thực hiện một 'undo' -feature.
Vì một byte có thể lưu trữ nhiều thông tin hơn ba trạng thái (EMPTY, BLACK, WHITE), tôi khuyên bạn cũng sẽ cung cấp hai trạng thái bổ sung (BLACK_ALLOWED, WHITE_ALLOWED, BOTH_ALLOWED). Bạn có thể tính toán các giá trị này trong khi bạn sao chép trạng thái mới.
Thuật toán để kiểm tra nơi bạn có thể đặt khối, có thể đi từng bảng một, sau đó theo dõi từ ô trống đến mọi hướng cho mẫu regex: B + W => W ^, W + B => B^Bằng cách này, bạn có thể đóng gói các quy tắc trò chơi bên trong một giao diện đơn giản mà sẽ xử lý tất cả.
Bạn đang nói về việc triển khai chiến lược cho đảo ngược hay chỉ để hai người chơi phát trên máy tính? – Barth
một chiến lược. câu hỏi hay. – EvilTeach