我们目前正在编程一个小连接4游戏,没有任何GUI。我在使用板来填充芯片(‘X’或'O's)时遇到了问题。我按照说明书中的说明制作了一个字符数组来绘制一个板,我不知道如何用芯片填充板。下面是我的代码:
char player = 'X';
char[][] board = new char[7][8];
public void sBoard()
{
char[][] board = new char[7][8];
for (int i=0;i<board.length-1;i++)
{
System.out.print("|");
for (int j=0;j<board[i].length-1;j++)
{
board[i][j]='.';
System.out.print(board[i][j]+"|");
}
System.out.println();
}
}这就创建了一个板,上面到处都是点,现在玩家1和2将用X或O填充它。
public void userInput() {
System.out.print("Which coloumn? (1-7): ");
Scanner in = new Scanner(System.in);
int input = in.nextInt();
in.close();
for (int i = feld.length; i >0; i--) {
if (board[i][ein-1] == '.') {
if (player == 'X') {
board[board.length - 2][ein - 1] = 'X';
System.out.print(board[board.length-2][input-1]);
}
if (player == 'O') {
board[board.length - 2][ein - 1] = 'O';
System.out.print(input[board.length-2][input-1]);
}
if (player == 'O')
player = 'X';
else
player = 'O';
}
System.out.println();现在,由于char数组已被填充
方法,当我想用X或O填充数组时,数组显然是空的,有没有办法将整个2D数组(值)复制到bEingabe方法中?如果有其他办法解决这个问题,我会很感激的。
编辑:翻译所有变量的英文。给您一个模糊的概念:它基本上将X或O(以X开头)“抛入”用户输入的颜色范围为1-7。
发布于 2014-11-11 19:42:42
有一些需要注意的方面:
一种选择是在本地方法中设置全局方法:
char[][] board = new char[7][8];
public void sBoard()
{
board = new char[7][8];
...另一种选择是通过
public char[][] board() {
...
return board;
}并利用它
void bEingabe(char[][] board) {...}in.close();当游戏结束时,最好关闭它,即在main()的末尾。
因为这可能是学校的作业,所以可以通过学习java基础知识来实现这一点。
编辑(很抱歉,很多人很难在手机上格式化它):
看起来你是个德国学生,所以也许可以教自己一些关于范围的知识:http://www.scalingbits.com/java/javakurs1/methoden/variablen-sichtbarkeit-lokal-global
https://stackoverflow.com/questions/26871840
复制相似问题