我正在尝试创建一个简单的井字游戏模拟,其中2个玩家可以玩,直到其中一个获胜或者棋盘已满。到目前为止,我已经完成了一个简单的结构。 我需要一些模拟它的帮助。 (P.S.我是一个菜鸟,所以请体谅)
public class tictactoe {
public static void main(String[] args) {
int[][] board = new int[3][3];
Random r = new Random(12);
for (int row = 0; row < board.length; row++) {
for (int col = 0; col < board[row].length; col++) {
board[row][col]= r.nextInt(3);
}
}
PrintBoard(board);
boolean xwinner = CheckWin(1,board);
boolean owinner = CheckWin(2,board);
System.out.println(xwinner + "-" + owinner);
}
public static boolean CheckWin(int player ,int[][] inboard){
int PCNT;
for (int row = 0; row < inboard.length; row++) {
PCNT = 0;
for (int col = 0; col < inboard[row].length; col++) {
if (inboard[row][col]== player) { PCNT++;}
}
if (PCNT==3) {return true;}
}
return false;
}
public static void PrintBoard(int[][] inboard){
String letter="";
for (int row = 0; row < inboard.length; row++) {
for (int col = 0; col < inboard[row].length; col++) {
switch(inboard[row][col]) {
case 0: letter= " "; break;
case 1: letter= "X"; break;
case 2: letter= "O"; break;
}
System.out.print(letter + " ");
}
System.out.println("");
}
}
}
答案 0 :(得分:1)
除了例如国际象棋,TTT是一种有限的游戏。换句话说,它非常简单,您不需要实施策略。让我们简单地计算字段,例如“1”是最左边和最顶部的字段,“5”是中心字段。您现在可以进一步简化规则,因为“1”,“3”,“7”和“9”是角落字段,而“2”,“4”,“6”,“8”是边缘字段, “5”是中心场。从角落场的角度来看,可能只有5种不同的移动:相邻边缘场,属于同一边缘的角落场,不属于同一边缘的边缘场,跨越角落场和中心场。说“1”是角落区域,然后提到的字段将是“2”,“3”,“6”,“5”和“9”。其他一切都是纯粹的对称性,就像数学上的简单方形一样。
对于所有其他人来说,周围有很多来源,只是google的“tic tac toe strategy”。
如需更精细地编写游戏,请尝试“Othello”/“Reversi”;)