java - 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” .
解决方案
我想您是在问如何将 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;
推荐阅读
- css - 让反应滑块在 R Shiny 中使用 css 样式标签,而不是忽略它们
- sudo - sudo 保存环境变量
- r - R:将“group_by”与“nls()”一起使用
- java - 使用 Apache Commons vfs2(spring boot)的 SFTP 文件传输失败并出现 IOException:错误
- terraform - Terraform:如何处理可选输入变量
- terraform - 使用外部数据从 terraform 中的 bash 脚本接收变量
- python - 如何按月分隔此数据框列?
- node.js - 响应 sgMail.send 的自定义参数
- docker - 如何在远程 docker 主机上部署本地 docker 映像?
- java - 如何使用spring boot在没有模型或实体的情况下将mysql数据库表中的数据读入elasticsearch