5

这里是典型的新手。尝试为我的第一个编程课构建所有强大的井字游戏网格。

我一直在尝试从 api 文档中进行所有有意义的操作,但到目前为止还没有运气。

我认为我最大的问题是不了解如何使用方法和参数,并且是一个完全的菜鸟,但我会到达那里。

这就是我所拥有的:

import java.awt.Rectangle;

public class TicTacToe {
    public static void main (String[] args) {
        new Rectangle (0,0,30,30); //create new box
        Rectangle box = new Rectangle (0,0,30,30); // tying the box to a variable

        box.add (Rectangle 0,0,10,10); /* error box can onot be resolved to a variable*/

    }
}

所以我的问题是如何将 9 个宽度为 10 高度为 10 的盒子添加到这个较大的盒子中?当我添加这些框时,我也必须输入新的 xy 尺寸,对吗?

感谢您的帮助!

4

1 回答 1

2

我假设您的目标是编写一个简单的命令行程序,而不是带有用户界面的程序。正确的?如果是这样,那么您需要从计算机的角度考虑问题。井字游戏对人来说是一组 9 个方格,对计算机来说,它只是一组 9 个变量,每个变量可以有 3 种可能的状态:1)填充有 X,2)填充有O,和 3) 打开。因此,您的棋盘可以表示为,例如,一个由 9 个整数组成的数组。

像这样:

int[] board = new int[9];

要跟踪每个方格的状态,您可以声明一些常量:

static final int OPEN = 0;
static final int FILLED_WITH_X = 1;
static final int FILLED_WITH_O = 2;

您的程序的其余部分可以只操作板数组,根据需要更改其状态(即其元素的值)。您甚至可以将此板的字符串表示形式输出到命令行。

您使用 Rectangle 类的唯一原因是您打算在屏幕上绘制板。在这种情况下,我会创建一个白色背景的大矩形并将其绘制在屏幕上。然后我会在上面绘制 9 个较小的矩形,每个矩形都有深色背景,为您提供游戏网格。board最后,我将根据前面讨论的数组状态在适当的位置绘制 x 和 o(圆圈和交叉线段) 。这里的重点是不需要在父对象中包含矩形对象。实际上,您只需要计算出每个要绘制的坐标集(4 个十进制数),然后编写一个在屏幕上所需位置绘制矩形的方法。

于 2012-09-17T03:29:08.323 回答