使用电路板连接4

时间:2014-11-11 18:27:22

标签: java arrays

我们目前正在编写一个没有任何GUI的Connect 4游戏。我在使用电路板填充芯片时遇到问题('X'或'O')。我按说明书中的说法制作了一个char数组来绘制一块电路板,我对如何用芯片填充电路板毫无头绪。这是我的代码:

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

1 个答案:

答案 0 :(得分:0)

有一些方面需要注意:


  • 您在两个范围中定义/重载变量 board ,一个是全局的,一个是本地的。

一种选择是在本地方法中设置全局值:

char[][] board = new char[7][8];

public void sBoard()
{
 board = new char[7][8];
 ...

另一种选择是通过

返回
public char[][] board() {
   ...
   return board;
}

并通过

使用它
void bEingabe(char[][] board) {...}

  • 如果您想在之后再次阅读,请不要提前关闭System.in,因为您无法再访问它。

    in.close();

当游戏结束时,即在主()

的末尾,更好地关闭它
  • 你的翻译不够,因为你的代码没有以当前的形式编译。

因为这可能是学校的任务,所以实现这一点很好,学习java基础知识imo。

编辑(对不起,很难在手机上格式化):

看来你是德国学生,所以也许可以自学一些关于范围的东西: http://www.scalingbits.com/java/javakurs1/methoden/variablen-sichtbarkeit-lokal-global