작은 틱택 토 게임을 만들었습니다. 힙이 다시 지나갈 때마다 객체 위치를 변경하여 'X'와 'O'사이를 전환해야합니다 :루프에서 객체가 업데이트되지 않습니다. (자바)
int m=0;
while(m<=3){
Test t=new Test();
User use= t.turn();
System.out.println(use);
char[][] board=new char[3][3];
System.out.println(" 1 2 3");
for(int y=0;y<board.length;y++){
System.out.print(y+1);
for(int x=0;x<board.length;x++){
board[x][y]=use.getMark();
System.out.print("|"+board[x][y]+"|");
}
System.out.println();
m++;
}
}
}
그러나 항상 'X'가 출력되는 것처럼 보입니다. 왜 그런가요? 어떻게 고칠 수 있습니까?
UPDATE :이 필요한 경우 잘 모르겠지만, 내가 사용하는 오브젝트 내 차례 방법의 코드 결정이 :
public User turn(){
User use;
PlayerX playX=new PlayerX();
PlayerO playO=new PlayerO();
Board board=new Board();
int xturn=playX.getTurn();
int oturn=playO.getTurn();
if(xturn<=oturn){
use=playX;
System.out.println("X");
xturn++;
}else{
use=playO;
System.out.println("O");
oturn++;
}
System.out.println(xturn);
System.out.println(oturn);
return use;
}
package TicTacToe;
공용 클래스 사용자 {
private int XCoord;
private int YCoord;
private int Turn=0;
private char Mark;
public int getX(){
return XCoord;
}
public int getY(){
return YCoord;
}
public int getTurn(){
return Turn;
}
public char getMark(){
return Mark;
}
}
업데이트 2 :
그래서 난 내 문제의 대부분을 나는 아직도 오전에만 일을 해결했습니다 궁금한 점이있다면 (미안하지만 어리석은 질문이라면) 루프가 실행될 때마다 루프를 다시 생성하는 대신 루프 내부에서 객체를 재사용 할 수 있습니다. 매번 내 회전 변수를 0으로 새로 고치지 않기 때문에이 질문을합니다.
'Test'와'User' 클래스를 보여주세요. 질문에 대한 답변을 얻을 수있는 정보가 충분하지 않습니다. – flakes
매번 새로운 보드를 만드는 이유는 무엇입니까? – Li357
'System.out.println (use);'print는 무엇을합니까? –