我是一名经验有限的新程序员,希望在此基础上进行扩展。这是我将在校外尝试的第一个项目,所以我的资源波动很大,因为我根本不知道我需要知道什么。但是,我对使用 Java 的基本 GUI 有一些小的基础。
我想创建一个国际象棋游戏,然后实现一个人工智能。然而,目前我只是在构建游戏本身。现在,我想要一个简单的 GUI 框架,它不必看起来漂亮或复杂。只需显示棋盘,棋子在哪里,单击棋子,它将突出显示您可以去的地方,然后单击正方形,瞧,移动完成。
这是我在 GUI 界面设计中的主要问题。它是否与逻辑部分分开?换句话说,如果我创建一个 Piece,我是否需要有一个 .jpg 或其他东西,或者我是否可以有一个单独的类,如果这个正方形中有一个棋子,则在这些坐标中显示一个棋子图片。构建 GUI 我需要知道什么?我主要使用谷歌环顾四周,但如果有一个起点,我将不胜感激,同时知道是否可以继续在棋盘上工作,同时以不同的速度处理 GUI 部分。
提前谢谢,如果我提出的任何问题很容易找到信息,我很抱歉。我可能已经触及它,但没有认识到它对我想做的事情的重要性。
再次感谢 :)
我会为任何有兴趣的人更新这个。我对我将要做的事情有了更好的形式,并且在我的脑海中有这个结构并在纸上翻译。现在,为了简单起见,一切都将使用 Java。
无论如何,很抱歉发了这么长的帖子。没有人必须阅读此内容。:)
我将尝试使用 MVC 格式,尽管它仍然可能让我有些困惑。
模型-我将创建一个拼板[8][8]。Piece 将是一个抽象类,由坐标和我现在调用的抽象方法 canMove(x,y) 组成。我最初也有 move(x,y) 但我意识到这些碎片不会移动。因此,我坚持使用 canMove 方法,让控制器查看 Piece 是否确实可以执行该操作。
控制器-在这里我将创建板并设置所有部分。我认为这将是最大的课程,因为它将几乎规范一切。
查看 - 这基本上是 GUI。
这就是我认为控制器/视图协调应该如何工作的方式。
控制器中会有一个变量叫做hand。当我第一次点击一块时,它会检查它是否是黑色/白色,这是一块本身的参数。如果它是正确的颜色,它被分配到手。然后它将检查双精度数组中的每个正方形。如果 canMove() 为真,则在视图中突出显示该方块。然后第二次单击将检查 canMove()。如果为真,检查它是否被相同颜色的一块占据,如果不是,则移动到那里。如果是假的,什么都没有。如果你点击手,手就会变成空的。对我来说,问题在于视图如何与控制器交互。以后会想办法的。
在每一步结束时,检查每一个棋子的 canMove() 看是否有国王在里面。如果是这样,请检查。对于将死,我想我会有一个完整的方法来标记国王周围的方块,看看它们是否都被标记了,包括他所在的那个。
所以我有几件事我也意识到我没有考虑到我必须弄清楚的事情。典当捕获和典当移动将非常具体。铸造。应用 canMove 时,必须没有任何障碍物,以防出现某些碎片。
构建视图将是一种痛苦,因为我的课程都没有教给我任何关于它的东西。我想,我会坚持到最后。Idk 我将如何在没有视图的情况下进行测试,但可能不会持久。