典型的newb在这里。尝试为我的第一门编程课构建所有强大的井字游戏网格。
我一直在尝试从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尺寸?
感谢您的帮助!
最佳答案
我假设您的目标是编写一个简单的命令行程序,而不是带有用户界面的程序。正确的?如果是这样,那么您需要从计算机的角度考虑问题。井字游戏板是一组9个对人,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个十进制数字),然后编写一种方法即可在屏幕上的所需位置绘制一个矩形。