[英]How can I write the winner's logic in a Tic Tac Toe game on Java?
[英]tic tac toe game how to replace the board with x's and o's?
好的,这是我第一次上计算机课,我遇到了一些麻烦,我需要做一个井字游戏,要用老师给我们的方法做一次井字游戏,我不能更改主要方法。 我想创建一个询问用户是否需要4x4 5x5或6x6的板,并使用'-'来显示它。 我已经正确地完成了这一部分,但是我不知道如何用用户要移动的行和列的用户输入来替换板。
我的主要问题是在getMove方法中。 我不知道如何获取输入以将x或o替换为“-”。
import java.util.Scanner;
import java.util.Random;
public class Lab7 {
public static int currentPlayer;
public static void main(String[] args) {
char [] [] board; char win; char player;
Random randy = new Random();
int size = getBoardSize();
while(size >= 4) {
board = createEmptyBoard( size );
player = getStartingPlayer(randy);
do {
getMove(board, player);
player = player=='O'?'X':'O';
win = checkForWin(board);
} while(win == 'N');
if(win == 'F'){
System.out.printf("\nThe board is Full: no Winner\n");
} else {
System.out.printf("\nThe winner is %c\n", win);
}
displayBoard(board);
size = getBoardSize();
}
}
public static int getBoardSize() {
int retval;
Scanner keyboard = new Scanner(System.in);
do {
System.out.printf("Enter board size 4, 5, 6 or -1 to quit: ");
retval = keyboard.nextInt();
} while(retval != 4 && retval != 5
&& retval != 6 && retval != -1);
keyboard.nextLine();
return retval;
}
public static char getStartingPlayer(Random rangen){
char retval = 'X';
System.out.printf("\n\tNew Game. Starting player is %c\n", retval);
return retval;
}
public static char [][] createEmptyBoard(int size) {
char [] [] board = new char [size][size];
// two loops to fill cells with '-'
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++)
if ((board[i][j] == 'x') || (board[i][j] == 'o'))
System.out.print(" " + board[i][j]);
else
System.out.print(" -");
System.out.println();
} return board;
}
public static void getMove(char [][] board, char player){
int row;
int column;
System.out.printf("Player %c move\n", player);
System.out.print("Enter Row:");
System.out.println();
displayBoard(board);
}
public static void displayBoard(char [][] board) {
}
public static char checkForWin(char [][] board){
char retval = 'F';
return retval;
}
}
如果您知道如何操作,请清除屏幕并重新绘制电路板。 我怀疑这在开始计算机课程时是必需的。 只需每转一圈重新打印一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.