首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用板连接4

使用板连接4
EN

Stack Overflow用户
提问于 2014-11-11 18:27:21
回答 1查看 823关注 0票数 0

我们目前正在编程一个小连接4游戏,没有任何GUI。我在使用板来填充芯片(‘X’或'O's)时遇到了问题。我按照说明书中的说明制作了一个字符数组来绘制一个板,我不知道如何用芯片填充板。下面是我的代码:

代码语言:javascript
复制
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填充它。

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-11 19:42:42

有一些需要注意的方面:

  • 在两个作用域中定义/重载可变板,一个是全局的,另一个是本地的。

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

代码语言:javascript
复制
char[][] board = new char[7][8];

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

另一种选择是通过

代码语言:javascript
复制
public char[][] board() {
   ...
   return board;
}

并利用它

代码语言:javascript
复制
void bEingabe(char[][] board) {...}

  • 不要过早关闭System.in,如果您想在以后再次阅读它,因为您不能再访问它了。 in.close();

当游戏结束时,最好关闭它,即在main()的末尾。

  • 您翻译的不够,因为您的代码没有在当前表单中编译。

因为这可能是学校的作业,所以可以通过学习java基础知识来实现这一点。

编辑(很抱歉,很多人很难在手机上格式化它):

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26871840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档