【问题标题】:Creating a boolean for Tic Tac Toe Java GUI to tell if the player wins为井字游戏 Java GUI 创建一个布尔值来判断玩家是否获胜
【发布时间】:2014-08-16 23:28:38
【问题描述】:

我是编程新手,一直在尝试制作 GUI 井字游戏。因为将显示我的一个愚蠢的程序,其中单击了四个按钮,它将打印“X”或“Y”。每当一个按钮时,我都可以为我的 GUI 游戏更改“X”和“Y”被点击。不过,我一直在努力创建一个 char 数组来检测玩家是否赢了。

 class Board extends JPanel{

    // char[][] cells = new char[2][2];
    //boolean won(char token)....?
    //any clue to construct a boolean to tell if cells[0][0] === cels[0][1]?

    private char token = ' ';
    char turn = 'O';
    char getToken(){
        return token;
    }

    void setToken(char token){
        this.token = token;
    }


    JButton b[] = new JButton[4];

    public Board(){
        setLayout(new GridLayout(2,2,0,0));
        for(int i = 0 ; i < 4; i ++){
            b[i] = new JButton();
            add(b[i]);
        }
        listener();

    }
    void listener(){

            for(int i = 0; i < 4; i ++){
            b[i].addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                turn = (turn == 'X') ? 'O': 'X';

                System.out.println("Button Clicked" + turn);
          //add if(won(turn))....?

            }
        });
    }

【问题讨论】:

  • 问题是什么?
  • 有什么问题?
  • 如何运行代码(没有main()
  • public void answer() { yourQuestion.wait(); }
  • 需要一个布尔值来检测 if(cell[i][j] == cell[i][j]),该玩家获胜。

标签: java boolean logic


【解决方案1】:

通过代码,我猜您正在创建一个带有按钮和字符矩阵的 3X3 正方形。 因此,要检查玩家是否获胜,您需要检查

[0][0] == [0][1] == [0][2] OR
[1][0] == [1][1] == [1][2] OR
[2][0] == [2][1] == [2][2]

[0][0] == [1][0] == [2][0] OR
[0][1] == [1][1] == [2][1] OR
[0][2] == [1][2] == [2][2]

对角线

[0][0] == [1][1] == [2][2] OR
[0][2] == [1][1] == [2][0]

PS:OR = ||

【讨论】:

  • 非常感谢乔纳斯·迈耶。
  • 您对构建更好的动作监听器有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多