Tic tac toe kiểm tra người chiến thắng C++

Gần đây tôi đã được hỏi một câu hỏi để kiểm tra xem người chơi X có thắng trò chơi Tic Tac Toe không. Đây là cách triển khai mà tôi đã cung cấp, một cách tiếp cận vũ phu

  1. Kiểm tra tất cả các hàng cho X
  2. Kiểm tra tất cả các cột cho X
  3. Kiểm tra 2 đường chéo cho X

// Giả sử Trình xây dựng của lớp khởi tạo mọi thứ đúng cách. Tất cả các giá trị được đặt thành // null

bool?[][] board; // X = true, O = false, empty space = null
bool XWon[]{
// Check All Rows for truefor[int i=0;ix] return true;
}
// Check All Columns for true

for[int i=0; i " X " " " "O " "O " "OO " "OOX"

ví dụ 2
Đầu vào. di chuyển = [[0,0],[1,1],[0,1],[0,2],[1,0],[2,0]]
đầu ra. “B”
Giải trình. “B” thắng

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "

ví dụ 3

Đầu vào. di chuyển = [[0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2]
đầu ra. "Vẽ tranh"
Giải trình. Trò chơi kết thúc với tỷ số hòa vì không có nước đi nào để thực hiện

1
2
3
"XXO"
"OOX"
"XOX"

"XXO"
"OOX"
"XOX"

Ví dụ 4

Đầu vào. di chuyển = [[0,0],[1,1]]
đầu ra. "Chưa giải quyết"
Giải trình. Trò chơi vẫn chưa kết thúc

1
2
3
"X  "
" O "
"   "

"X  "
" O "
"   "

Hạn chế
1 "XO " " " " " " " " " " " "O "0

Bảng đã được khởi tạo thành ma trận 3×3 với các giá trị bằng không

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
1____3_______2

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
3

Ngoài ra, chúng ta có thể sử dụng std. lấp đầy[]

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
1____3_______5

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
6

Tìm người chiến thắng trong trò chơi Tic Tac Toe

Một trường hợp đặc biệt là kiểm tra xem còn chỗ cho lần chơi tiếp theo hay không – có thể là Hòa hoặc Đang chờ xử lý nếu không có người chiến thắng

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
7
"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
8

"X  "    "X  "    "XX "    "XXO"    "XXO"    "XXO"
"   " -> " O " -> " O " -> " O " -> "XO " -> "XO " 
"   "    "   "    "   "    "   "    "   "    "O  "
9

–EOF [Blog máy tính & công nghệ cơ bản] —

Xếp hạng sao GD
Đang tải

732 từ
Bài cuối. Triển khai PUSHD/POPD trong Pure Windows Batch
Bài tiếp theo. Thuật toán để xóa khoảng thời gian khỏi phân đoạn

URL Vĩnh viễn là. Thuật toán để tìm người chiến thắng trong trò chơi Tic Tac Toe [Phiên bản AMP]

bài viết liên quan

  • Làm thế nào để thiết kế một trò chơi Tic-Tac-Toe?

    Thiết kế một trò chơi Tic-tac-toe được chơi giữa hai người chơi trên một n x n…

  • Áp dụng thuật toán Naive Bayes trong trò chơi Rock-Scissor-Paper

    Thứ Sáu tuần trước, @justyy đã tổ chức cuộc thi oẳn tù tì nhóm wechat cho cộng đồng CN và cuộc thi…

  • Thuật toán 24 trò chơi sử dụng Tìm kiếm theo chiều sâu

    Bạn có 4 thẻ mỗi thẻ chứa một số từ 1 đến 9. Bạn cần phải…

  • Dạy Lập Trình Cho Bé - Giải Game Nhảy Bằng Thuật Toán Tìm Kiếm Theo Chiều Sâu

    Hôm qua, chúng ta đã nói về Thuật toán tìm kiếm theo chiều rộng đầu tiên. Chúng tôi đang giải cùng một Jump…

  • Độ phức tạp của thuật toán

    Độ phức tạp của thuật toán có thể được biểu thị bằng ký hiệu Big O, ví dụ: đoạn sau của…

  • Thuật toán để tìm sự ám chỉ dài nhất

    Đưa ra một danh sách các từ chuỗi chữ cái viết thường, trả về độ dài của từ liền kề dài nhất…

  • Thuật toán giao nhau giữa các khoảng

    Đưa ra một khoảng thời gian danh sách số nguyên hai chiều có dạng [bắt đầu, kết thúc] đại diện cho các khoảng thời gian [bao gồm], trả về…

    Mẹo để chiến thắng tic tac toe là gì?

    Khi bạn là người đầu tiên tham gia, có một chiến lược đơn giản để giành chiến thắng trong trò tic tac toe. đặt dấu 'X' của bạn vào bất kỳ góc nào . Nước đi này gần như sẽ đưa bạn đến vòng tròn của người chiến thắng mọi lúc, miễn là đối thủ của bạn không đặt chữ 'O' đầu tiên của họ vào ô trung tâm.

    Làm cách nào để kiểm tra người chiến thắng trong tic tac toe Java?

    Trong tic tac toe, người chơi thắng nếu họ có 3 biểu tượng trong một hàng, cột hoặc đường chéo . Hãy bắt đầu với các hàng. Chúng ta có thể sử dụng vòng lặp for để lặp qua từng hàng i. Bên trong vòng lặp for, chúng ta có thể sử dụng một điều kiện để kiểm tra xem board[i][0] có bằng board[i][1] không và board[i][1] có bằng board[i][2] không.

    Bạn có thể đảm bảo giành chiến thắng trong trò tic tac toe không?

    Hầu hết những người chơi tic tac toe có kinh nghiệm đều đặt chữ "X" đầu tiên vào một góc khi họ bắt đầu chơi lần đầu tiên. Điều này tạo cho đối thủ nhiều cơ hội nhất để phạm sai lầm. Nếu đối thủ của bạn phản ứng bằng cách đặt một chữ O ở bất kỳ đâu ngoài tâm, bạn có thể đảm bảo chiến thắng .

    Tic tac toe có bao nhiêu kết thúc?

    Trên thực tế, người chơi tic-tac-toe điền vào mỗi mục trong số chín mục bằng một trong ba giá trị duy nhất. dấu X, O hoặc để trống. Đó là tổng cộng 3*3*3*3*3*3*3*3*3 = 3^9 = 19.683 các cách khác nhau của lưới 3x3 .

Chủ Đề