Chơi game là một hình thức giải trí dành cho mọi người. Tất cả các loại trò chơi có sẵn trực tuyến, trên thiết bị di động, trên máy tính để bàn, v.v. Bây giờ không phải là lúc để tạo một trong những trò chơi đầy thử thách đó.
Sử dụng Python, chúng tôi sẽ tạo một trò chơi CLI tic-tac-toe. Hãy sử dụng Python để xây dựng một trò chơi Tic Tac Toe đơn giản. Nó sẽ hỗ trợ bạn trong việc tạo logic trò chơi và học cách tổ chức mã.
TIC Tac Toe
Trước khi chúng tôi bắt đầu viết mã, tôi nghĩ mình sẽ nhanh chóng tóm tắt trò chơi và thảo luận về kế hoạch phát triển nó.
Đầu tiên, chúng tôi sẽ thiết lập giả định rằng Xs luôn chủ động và di chuyển trước, tạo cơ hội cho người dùng hành động.
Từ bảng điều khiển, một số từ 1 đến 9 sẽ được nhập. Trong một lưới mà mỗi số tương ứng với một số khác nhau (trên cùng bên trái là 1, dưới cùng bên phải là 9).
Máy tính sẽ tự động xác định và thực hiện chuyển động của nó khi người dùng di chuyển. Một vòng lặp trò chơi chính gọi một số thói quen khác nhau sẽ được tôi sử dụng.
Chức năng nào đang được hoàn thành có thể được chỉ ra trong mỗi tiêu đề của bài học dựa trên văn bản này.
Thiết kế một bảng
Chúng tôi sẽ mô tả bảng của chúng tôi bằng cách sử dụng bố cục lưới, như tôi đã chỉ ra trước đây. Chúng tôi sẽ tạo một danh sách có tên bảng bằng Python để thực hiện việc này và nó sẽ bắt đầu bằng 10 giá trị trống.
Bởi vì người dùng chỉ có thể nhập các số từ 1 đến 9, không phải từ 0 đến 8, chúng tôi có 10 giá trị trống chứ không phải 9. Vì vậy, để đơn giản hóa mọi thứ, chúng tôi sẽ cung cấp giá trị cho mục nhập đầu tiên của danh sách là “văn bản trống”.
Theo cách này, chúng tôi có thể sử dụng 1–9 thay vì 0–8 để lập chỉ mục các mục trong danh sách của chúng tôi.
insertLetter ()
Letter và Pos sẽ là hai đầu vào cho chức năng này. Nó sẽ chỉ đặt bức thư được yêu cầu tại vị trí được yêu cầu.
spaceIsFree (pos)
Nói một cách đơn giản, phương pháp này sẽ thông báo cho chúng tôi nếu khu vực được chỉ định là miễn phí. Do đó, chưa có một bức thư nào ở đó. Pos, đối số duy nhất của nó, sẽ là một số nguyên từ 1 đến 9.
printBoard (bảng)
Bảng được gửi như một đối số cho phương thức này, nó sẽ hiển thị nó trên bảng điều khiển.
isWinner ()
Dựa trên bảng hiện tại, chức năng này sẽ cho chúng ta biết nếu chữ cái được cung cấp đã thắng. Nó có hai tham số: le và board (chữ cái).
Nó phải là "X" hoặc "O." Đơn giản chỉ cần nhìn để xem liệu chữ cái được chỉ định có xuất hiện trên mỗi dòng chiến thắng tiềm năng trên bàn cờ hay không.
chủ yếu()
Khi chúng ta muốn bắt đầu trò chơi, chúng ta sẽ gọi phương thức này. Nó sẽ gọi từng hàm một trong nhiều hàm của chương trình của chúng ta và chỉ đạo cách chương trình phải chạy.
isBoardFull ()
Khi được cung cấp trên tàu làm đầu vào, phương thức này sẽ chỉ trả về True nếu bảng đầy và nếu không thì là False.
playerMove ()
Trong phương pháp này, chúng tôi sẽ yêu cầu người dùng di chuyển và xác thực nó. Lá thư sẽ được thêm vào bảng nếu việc di chuyển là hợp pháp. Nếu không, chúng tôi sẽ tiếp tục yêu cầu phản hồi của người dùng.
CompMove () - AI
AI bây giờ sẽ bắt đầu. Chuyển động của các máy tính sẽ được điều khiển bởi chức năng này. Nó sẽ đánh giá hội đồng quản trị và chọn nước đi tốt nhất để thực hiện.
Sau đây là danh sách các thuật toán mà chúng tôi sẽ sử dụng để thực hiện việc này.
- Nếu bước hiện tại không thể hoàn thành, hãy chuyển sang bước sau.
- Hãy di chuyển chiến thắng nếu bạn có thể.
- Di chuyển vào vị trí đó ở lượt sau nếu người chơi có nước đi có khả năng thắng.
- Chọn một góc và xoay nó. Chọn ngẫu nhiên nếu có nhiều tùy chọn.
- Đặt mình ở giữa.
- Hãy xem xét một trong các cạnh. Chọn ngẫu nhiên nếu có nhiều tùy chọn.
- Nếu không có cách nào để di chuyển, trò chơi kết thúc với tỷ số hòa.
selectRandom ()
Đưa ra danh sách các vị trí tiềm năng, chức năng này sẽ chọn ngẫu nhiên hành động cần thực hiện.
Trò chơi bắt đầu
Trò chơi hiện có thể được bắt đầu ngay bây giờ khi chúng tôi đã hoàn thành tất cả các nhiệm vụ của mình. Tất cả những gì chúng ta cần làm là gọi main nếu chúng ta chỉ muốn chạy trò chơi một lần.
Nhưng trong tình huống của chúng tôi, chúng tôi muốn trò chơi tiếp tục chạy cho đến khi người dùng quyết định họ không muốn chơi nữa, vì vậy chúng tôi sẽ thêm một vòng lặp while nhỏ vào dòng chính.
Hoàn thành mã
Đây là toàn bộ mã cho trò chơi của chúng tôi, hiện đã hoàn thành.
Đầu ra
Kết luận
Tiếng hoan hô!
Một trò chơi mà bạn đã làm hoàn toàn từ đầu. Nó không phải là một trò chơi mà chúng tôi chơi một cách thường xuyên. Nhưng nó hỗ trợ việc viết logic và duy trì cấu trúc rõ ràng trong mã.
Chúc bạn viết mã vui vẻ!
Bình luận