我可是从这里创建一个井字程序:如何从一个方法返回一个二维数组索引?
http://programmingbydoing.com/a/tic-tac-toe.html
我有麻烦找出如何从一个方法返回一个数组索引。我想要用户输入2个整数(行,列),并返回索引,并有char'O'或'X'替换空白对应的索引。
我对Java有点新,并且正努力学习它以尽可能快速和高效地赶上我的课程。
import java.util.Scanner;
public class ticTacToe{
public static Scanner in = new Scanner(System.in);
private static int r, c;
private static char[][] board = new char[3][3];
//create a 3x3 array of characters
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
displayBoard();
do{
// user inputs two numbers as indexes
//turn index into "o"
//prompt other user to make move, repeat with "x"
}while(checkLoser());
}
public static void displayBoard() {
System.out.println(" 0 " + board[0][0] + "|" + board[0][1] + "|" + board[0][2]);
System.out.println(" --+-+--");
System.out.println(" 1 " + board[1][0] + "|" + board[1][1] + "|" + board[1][2]);
System.out.println(" --+-+--");
System.out.println(" 2 " + board[2][0] + "|" + board[2][1] + "|" + board[2][2]);
System.out.println(" 0 1 2 ");
}
public static int[] getArrayIndex(){
System.out.println("'O'. Choose your Row...(row, column)");
int r = in.nextInt();
int c = in.nextInt();
return new int[] {r,c};
}
public static void userMove(int[][]){
board[r][c] = 'O';
}
public static boolean checkLoser(){
if (board[0][0] == board[0][1]){
if (board [0][1] == board[0][2]){
return false;
}
}
else if (board[1][0] == board[1][1]){
if (board [1][1] == board[1][2]){
return false;
}
}
else if (board[2][0] == board[2][1]){
if (board [2][1] == board[2][2]){
return false;
}
}
else if (board[0][0] == board[1][0]){
if (board [1][0] == board[2][0]){
return false;
}
}
else if (board[0][1] == board[1][1]){
if (board [1][1] == board[1][2]){
return false;
}
}
else if (board[0][2] == board[1][2]){
if (board [1][2] == board[2][2]){
return false;
}
}
else if (board[0][0] == board[1][1]){
if (board [1][1] == board[2][2]){
return false;
}
}
else if (board[0][2] == board[1][1]){
if (board [1][1] == board[2][0]){
return true;
}
}else{
return false;
}
}
}
你说的是你的getArrayIndex()方法吗?如果是这样,目前的方式有什么问题? – 2014-12-01 20:22:42
没有什么,你可能会发现使用9个元素的标准数组编程TicTacToe游戏比使用2维数组更容易。 – 2014-12-01 20:23:15
嗨,贾斯汀。你已经说过你想从_方法返回一个数组索引_。数组索引只是一个int,从给出索引的函数返回索引,只是将输入返回给方法。您的描述可能会感到困惑。 数组有索引和值 多维数组的值也是数组。 int [] [] foo = {{0,1,2},{3,1,4},{1,1,2}}是一个包含9个条目的2D数组。当访问二维数组中的值时,即首先引用的是'foo [1] [2]',在foo []的索引1处的数组,然后是在'foo [1]'的索引2处的int,它是4 – OYRM 2014-12-01 20:33:38