您希望能够帮助我阅读我正在构建的tic tac toe游戏的价值观背后的逻辑。
答案 0 :(得分:1)
您只需在开头设置默认值,如:
int row = 0, column;
或者写另一个whileLoop来阻止这个
接下来,您可以更轻松地设置row
(并小心驾驶,将String
与char
进行比较,在我的计算机上它不起作用) :
1。比较答案的第一个字母(或.equals("a")
):
if (string.charAt(0)=='a')
row = 0;
if (string.charAt(0)=='b')
row = 1;
if (string.charAt(0)=='c')
row = 2;
2。制作一个开关案例,因为你总是比较相同的东西:
switch(string.charAt(0)){
case 'a':
row=0;
break;
case 'b':
row=1;
break;
case 'c':
row=2;
break;
}
3. 使用他们的ASCII值:
row = string.charAt(0)-97;
所以:
public void askPlayer(char player) {
Scanner instruction = new Scanner(System.in);
int row, column;
do {
System.out.printf("Player %s please enter an instruction (a-c): ", player);
String string = instruction.next();
row = string.charAt(0)-97;
System.out.printf("Player %s please enter a column (1-3): ", player);
column = instruction.nextInt();
} while (!inBounds(row, column));
makeMove(player, row, column - 1);
} // end of ask player method
请注意,如果您的inBounds()
已得到很好的实施: 如果坐标正确 ,它将返回true但是如果条件为真,您需要在坐标不正确时循环,因此您需要!inBounds()