【问题标题】:Tic-Tac-Toe Java井字游戏 Java
【发布时间】:2015-04-01 18:56:24
【问题描述】:

任务是使用二维数组创建一个井字游戏。我在下面为游戏创建了棋盘,但现在我遇到的问题是让用户在棋盘上放置 X 和 O。我必须使用二维数组来表示我的板。如何修改这些值,以便我可以执行以下操作?

这样

1 | 2 | 3 
----------
4 | 5 | 6 
----------
7 | 8 | 9

可以变成这样

X | X | O 
----------
4 | 5 | 6 
----------
O | 8 | 9

基本上,我已经制作了棋盘,我如何制作它以便人们可以玩它? 谢谢。

public class TicTacToe 
{
    public static void main( String args[]) 
    { 
        int [][]board = new int[3][3];

        int row =0;
        int column =0;
        int i=1;
        for (row=0;row<board.length; row++)
        { 
            for(column=0;column<board[row].length;column++)
            {
                board[row][column]= i;
                i++;
                System.out.print (" "+(board[row][column])+" ");
            }

            System.out.println();
        }
    }
}

【问题讨论】:

  • 在下次发布问题之前,请在您的程序上多花点功夫。
  • 您可能需要另一个二维数组,它是 Xs 和 Os 的 String 类型
  • 您可以用三个不同数字的值填充您的数组:0 为空,1O2X。只是一个想法。在遍历数组时,您只需检查值并打印一致的字符。

标签: java arrays dimensional


【解决方案1】:

您最好使用一个 ArrayList,其中包含表示字母和放置它的坐标的对象。它是一个打包的表示形式,它可能更适合您尝试实现的那种游戏。不要认为直观的表示更适合您的需要。无论如何,如果你真的想使用二维数组,为什么不使用二维字符数组呢?

【讨论】:

  • @Bill 分配不应妨碍找到更好的解决方案。如果你看看棋盘是如何实现的,你会更好地理解为什么直观的代表是最差的。
【解决方案2】:

我绝对不能给你一个解决方案,因为这似乎是家庭作业,而且这个家庭作业看起来是在正确的轨道上,只是没有完全完成。但是,您应该在将头撞在墙上的同时聆听您的评论员,因为他们已将您引导到一个非常有用的方向。

我认为,一旦你弄清楚数据结构(即可能使用带有编码整数的数组?),你最大的障碍就是如何让用户与这个程序交互。他们会输入与单元格对应的数字吗?如果是这种情况,我建议您考虑如何在数组中查找值,并弄清楚屏幕上的这些数字如何与此过程相对应。一旦你有了这个,用 Xs 和 Os 填充你的电路板将是一项微不足道的任务。

在你觉得你又遇到了一些死胡同后回来。但我认为你会在此之前解决这个问题。

祝你好运!

【讨论】:

    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多