首页 > 解决方案 > Java中的井字游戏设计级别1

问题描述

我需要有关如何开始“玩”游戏的帮助,例如如果用户输入 1-9 中的任何数字,该数字将被“X”或“O”替换。

到目前为止,这是我的代码:

import java.util.Scanner;

public class TicTacToe {
   public static char[][] board = new char[3][3];
   public static void main(String[] args){
      Scanner kb = new Scanner(System.in);
      
      Player player1 = new Player("John");
      Player player2 = new Player("Jill");
      initBoard();
      int turn = 1;
      int choice = 0;
      while(choice != -1){
         printBoard();
         Player currentPlayer = player1;
         if(turn % 2 == 0){
            currentPlayer = player2;
         }
         System.out.print(currentPlayer + ", pick a box: ");
         if(choice == 1){
            board[0][0] = 'X';
         }
         turn++;
         choice = kb.nextInt();
      }
   }
   
   public static void initBoard(){
      for(int r = 0; r < board.length; r++){
         for(int c = 0; c < board[r].length; c++){
            board[r][c] = (char)((r*3)+(c+1)+48);
         }
      }
   }
   
   public static void printBoard(){
      for(int r = 0; r < board.length; r++){
         for(int c = 0; c < board[r].length; c++){
            System.out.print(board[r][c]+" ");
         }
         System.out.println();
      }
  }
}
class Player{
      String name;
      int wins = 0;
      int losses = 0;
      int draws = 0;
      
      public Player(String s){
         name = s;
      }
      
      public String toString(){
         return name;
      }
}

注意:我不是要求任何人为我完成作业,我只需要提示如何放置“X”和“O”并检查其中一个板上是否已经有“X”或“O” .

标签: javaarraystic-tac-toe

解决方案


我想您是在问如何将 1-9 转换为矩阵索引。

在这种情况下,如果您使用矩阵 `

|0|1|2| -----> j - 列

|1|2|3| 0

|4|5|6| 1

|7|8|9| 2

`

您可以找到允许您将数字转换为索引的模式。 i = (input - 1) / 3; j = (input - 1) % 3;


推荐阅读