Java 我的设置方法是';件';在Tictaoe中,游戏不起作用
在main方法中调用方法setPiece(intx,inty,char-piece)时,我希望用参数中给出的字符填充电路板,但由于某些原因,在调用方法后打印电路板时,我没有得到预期的结果Java 我的设置方法是';件';在Tictaoe中,游戏不起作用,java,tic-tac-toe,Java,Tic Tac Toe,在main方法中调用方法setPiece(intx,inty,char-piece)时,我希望用参数中给出的字符填充电路板,但由于某些原因,在调用方法后打印电路板时,我没有得到预期的结果 public class TicTacToe { private char[][] board; public TicTacToe() { board = new char[3][3]; for (int r = 0; r < 3; r++) { for (int
public class TicTacToe {
private char[][] board;
public TicTacToe() {
board = new char[3][3];
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
board[r][c] = ' ';
}
}
}
public void setPiece(int x, int y, char piece){
board[x][y] = piece;
}
public String toString(){
String result = "";
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
board[r][c] = ' ';
System.out.print(board[r][c] + " | ");
}
System.out.println();
}
return result;
}
public static void main(String[] args) {
TicTacToe board = new TicTacToe();
board.setPiece(1, 2, 'x');
System.out.println(board); //I am expecting here the board to be filled with 'x', but it won't work so.
}
公共类TicTacToe{
私人char[][]董事会;
公共交通{
board=新字符[3][3];
对于(int r=0;r<3;r++){
对于(int c=0;c<3;c++){
董事会[r][c]='';
}
}
}
公共无效设置块(整数x,整数y,字符块){
板[x][y]=件;
}
公共字符串toString(){
字符串结果=”;
对于(int r=0;r<3;r++){
对于(int c=0;c<3;c++){
董事会[r][c]='';
系统输出打印(板[r][c]+“|”);
}
System.out.println();
}
返回结果;
}
公共静态void main(字符串[]args){
Tictaoe板=新的Tictaoe();
板。设定件(1,2,'x');
System.out.println(board);//我希望在这里用“x”填充board,但它不起作用。
}
}
我做错了什么?我应该如何重写我的方法以获得我想要的结果?在
toString
board[r][c]='';这是错误的
public String toString() {
String result = "";
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 3; c++) {
System.out.print(board[r][c] + " | ");
}
System.out.println();
}
return result;
}
公共字符串toString(){
字符串结果=”;
对于(int r=0;r<3;r++){
对于(int c=0;c<3;c++){
系统输出打印(板[r][c]+“|”);
}
System.out.println();
}
返回结果;
}
这里有两个问题:
setPiece()
只更改电路板中的一个正方形。如果您想更改电路板中的所有内容,则需要迭代整个电路板,但这对方法的名称和参数没有意义toString()
方法会变异数组并将其设置回'
。对于每个元素。这种行为通常是不明智的块分配给板[x][y]
。。。(首先是将2d字符分配给单个字符。)
这里有太多的错误。在该行中,tostring方法将数组中的每个元素再次设置为“”,以便指定的x值发生更改
public void setPiece(int x, int y, char piece){
board[x][y] = piece;
}