Java Tictatcoe游戏-如何为每个用户更改阵列输入

Java Tictatcoe游戏-如何为每个用户更改阵列输入,java,Java,我试图创建一个简单的井字游戏,作为阵列等的练习 我在下面想到了如何编写代码,但是我在用户输入方面遇到了问题 问题 如何使每个用户输入X或O的数组输入发生变化 import java.util.Scanner; public class TicTacToe { public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] array; ar

我试图创建一个简单的井字游戏,作为阵列等的练习

我在下面想到了如何编写代码,但是我在用户输入方面遇到了问题

问题

如何使每个用户输入X或O的数组输入发生变化

import java.util.Scanner;
public class TicTacToe {
   public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      String[] array;
      array = new String [9]; 

      int uInput;
      int pCounter=1;
      while ( uInput <= 9) {
         System.out.println("Enter X coordinate:");
         uInput = input.nextInt();
         array[uInput] = ("x");

         System.out.println("Enter X coordinate:");
         uInput = input.nextInt();
         array[uInput] = ("o");

         for (int yCounter = 0; yCounter < 6; yCounter++) {
            System.out.print("--");
         }
         System.out.println();

         for (int fCounter=0; fCounter<(3); fCounter++) {
            for (int xCounter=0; xCounter<1; xCounter++) {
               for (pCounter=1; pCounter<4; pCounter++) {   
                  System.out.printf("  %d| ", array[pCounter]);
               }
            } 
         }
         System.out.println();

         for (int zCounter=0; zCounter<4; zCounter++)  {
             System.out.print("---");
         }
         System.out.println();
  }
  System.out.print("0  1  2\n3  4  5\n6  7  8\n");
    }
}
import java.util.Scanner;
公共类Tictatcoe{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
字符串[]数组;
数组=新字符串[9];
输入输出;
int pCounter=1;

而(uInput逻辑应该是这样的(伪代码):


我不明白你的问题你的缩进很奇怪,B你是怎么看待大小为3和3的字符串[]而不是大小为9的字符串[]的?我还要提到二维数组会容易得多。你还应该在用户2输入正确后检查win或tie?就像在while循环结束之前一样。
boolean win = false, tie = false;
String winner = "";
while(!win && !tie){
  getInputFromUser1();
  updateBoard();
  if (win || tie) break;
  getInputFromUser2();
  updateBoard();
}

//check if win or tie and display message respectfully
displayEndMessage();
return;