典型的newb在这里.试图为我的第一个编程课构建所有强大的tic-tac-toe网格.
我一直在尝试从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*/
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何在这个更大的盒子里添加9盒尺寸宽度10高10的盒子?当我添加这些框时,我必须输入新的xy尺寸吗?
感谢您的帮助!
我假设您的目标是编写一个简单的命令行程序,而不是带有用户界面的程序。正确的?如果是这样,那么你需要从计算机的角度来思考这个问题。虽然井字游戏板对于人类来说是一组 9 个方格,但对于计算机而言,它只是一组 9 个变量,每个变量可以有 3 种可能的状态:1) 填充有 X,2) 填充有O、3)打开。因此,您的棋盘可以表示为一个包含 9 个整数的数组。
像这样:
int[] board = new int[9];
Run Code Online (Sandbox Code Playgroud)
要跟踪每个方块的状态,您可以声明一些常量:
static final int OPEN = 0;
static final int FILLED_WITH_X = 1;
static final int FILLED_WITH_O = 2;
Run Code Online (Sandbox Code Playgroud)
程序的其余部分可以仅操作板数组,根据需要更改其状态(即其元素的值)。您甚至可以将该板的字符串表示形式输出到命令行。
使用 Rectangle 类的唯一原因是您计划在屏幕上绘制板。在这种情况下,我将创建一个具有白色背景的大矩形并将其绘制在屏幕上。然后我会在其顶部绘制 9 个较小的矩形,每个矩形都有深色背景,为您提供游戏网格。最后,我将根据board前面讨论的阵列状态在适当的位置绘制 x 和 o(圆圈和交叉线段)。这里重要的一点是,不需要将矩形对象包含在父对象中。事实上,您只需要计算出每个要绘制的坐标集(4 个十进制数字),然后编写一个在屏幕上所需位置绘制矩形的方法。