【发布时间】:2017-03-03 02:17:05
【问题描述】:
public class XO {
private String name;
private static int turn = 1;
public XO(String name) {
if (2 % turn == 0) {
turn++;
name = "X";
}
else {
turn++;
name = "O";
}
}
//set method
public void setName(String name) {
this.name = name;
}
//public void setTurn(int turn){
//this.turn=0;
//}
//get method
public String getName() {
return name;
}
public int getTurn() {
return turn;
}
public boolean equals(XO obj) {
return name == obj.getName();
}
public String toString() {
return "You are " + name;
}
}
import java.util. * ;
public class TicTacToeBoard extends Board {
private int turnCnt;
private XO[][] board;
public TicTacToeBoard(int rows, int columns) {
super(rows, columns);
turnCnt = 0;
this.board = new XO[rows][columns];
}
//set method
public void setBoard(XO[][] board) {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
board[i][j] = board.getName();
}
}
}
//get methods
public XO[][] getBoard() {
return board;
}
public int getTurnCnt() {
return turnCnt;
}
//print board
public void printBoard() {
for (int i = 0; i < board.length; i++) {
System.out.println("\n");
for (int j = 0; j < board[i].length; j++) {
System.out.print(board[i][j] + " ");
}
}
}
//add X or O
public boolean add(int r, int c) {
XO[][] j = new XO[r][c];
if (r > 2 && c > 2 || this.board.equals(j)) return false;
else
//setBoard(j);
return true;
}
//check win
public boolean win(XO a, XO b) {
//player 1 wins
if (board[0][0] == a && board[1][0] == a && board[2][0] == a) {
return true;
}
if (board[0][1] == a && board[1][1] == a && board[2][1] == a) {
return true;
}
if (board[0][2] == a && board[1][2] == a && board[2][2] == a) {
return true;
}
if (board[0][0] == a && board[0][1] == a && board[0][2] == a) {
return true;
}
if (board[1][0] == a && board[1][1] == a && board[1][2] == a) {
return true;
}
if (board[2][0] == a && board[2][1] == a && board[2][2] == a) {
return true;
}
if (board[0][0] == a && board[1][1] == a && board[2][2] == a) {
return true;
}
if (board[2][0] == a && board[1][1] == a && board[0][2] == a) {
return true;
}
//now player 2 wins
if (board[0][0] == b && board[1][0] == b && board[2][0] == b) {
return true;
}
if (board[0][1] == b && board[1][1] == b && board[2][1] == b) {
return true;
}
if (board[0][2] == b && board[1][2] == b && board[2][2] == b) {
return true;
}
if (board[0][0] == b && board[0][1] == b && board[0][2] == b) {
return true;
}
if (board[1][0] == b && board[1][1] == b && board[1][2] == b) {
return true;
}
if (board[2][0] == b && board[2][1] == b && board[2][2] == b) {
return true;
}
if (board[0][0] == b && board[1][1] == b && board[2][2] == b) {
return true;
}
if (board[2][0] == b && board[1][1] == b && board[0][2] == b) {
return true;
}
else return false;
}
public String toString() {
return board[0][0] + "\t" + board[1][0] + "\t" + board[2][0] + "\n" + board[0][1] + "\t" + board[1][1] + "\t" + board[1][2] + "\n" + board[0][2] + "\t" + board[1][2] + "\t" + board[2][2];
}
}
你好,我正在做一个关于用 java 创作一个战术游戏的作业。这些是我的代码。该指南说 XO 类应该包含有关“X”或“O”对象的信息。
该类应该有两个属性:一个名称(它是一个字符串“X”或“O”)和一个设置为 0 或 1 的静态 int 变量(它应该被初始化为 1)。您将使用此变量来确定在创建对象时为其赋予哪个名称(例如,如果为 1,则将名称设置为“X”)。
我不确定如何使用 turn 变量,我知道我应该将 X O like 2 对象传递给 2d 数组,但我对如何将对象传递给 2d 数组有点模糊。而且我一开始也想打印一个像空白矩阵一样的板,但它总是 [null null null, 空空空 null null null]
任何帮助将不胜感激。非常感谢!
【问题讨论】:
标签: java arrays computer-science