在java中将字符串坐标转换为数组中的位置

时间:2017-02-11 13:48:28

标签: java

您希望能够帮助我阅读我正在构建的tic tac toe游戏的价值观背后的逻辑。

1 个答案:

答案 0 :(得分:1)

您只需在开头设置默认值,如:

int row = 0, column;

或者写另一个whileLoop来阻止这个

接下来,您可以更轻松地设置row(并小心驾驶,将Stringchar进行比较,在我的计算机上它不起作用) :

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()