总结
在这个项目中,你需要完成一个井字游戏代码。可以在此处下载游戏 GUI 和计算机逻辑的源代码。虽然可以马上开始编译和玩游戏,但代码并不完整,因为游戏永远都不会检测到获胜者!
游戏规则
井字游戏是一款 2 个人玩的棋盘游戏。一个玩家用 X,另一个玩家用 O。游戏从 9 个空网格 (3x3) 开始。玩家轮流用 X 或 O 来标记每一个网格。X 玩家的目标是在一条垂直、水平或对角线上获得 3 个 X。而 O 玩家的目标是在一条垂直、水平或对角线上获得 3 个 O。
X 通过形成直角线而获胜
O 通过形成水平线而获胜
形成一条线后游戏结束,形成这条线的玩家获胜!
有时也没有获胜者。如果所有网格都被填满,但仍没有出现 3 个 X 或 3 个 O 成一条线的情况,就没有获胜者。这种情况经常发生,尤其是当双方都是高手时。在这种情况下,游戏以平局结束。
游戏以平局结束
代码设计
源代码包括 2 个主 Java 文件,Game.java 和 GameUI.java。
- Game.java 是保存所有游戏逻辑代码的文件。
- GameUI.java 是保存所有用户界面代码的文件。如果愿意,也可以看一下 GameUI.java。不过不需要更改任何代码也可以完成项目。
你的任务是在 Game.java 文件中实现 checkGameWinner() 函数。
字符串 checkGameWinner (char [][] grid)
的输入参数是一个二维字符数组,表示游戏网格(详见下图),会返回一个字符串消息,表明谁赢了游戏(X 赢、O 赢、平局或由于游戏没有结束,尚无结果)。
doChecks() 是玩家每次轮流时,另一个负责调用 checkGameWinner 的函数,因此不用担心将该函数添加到程序的其余部分,该函数已经处理好了。
Grid 以二维字符数组表示,索引如下:
二维数组索引
要求
在 checkGameWinner() 中,你需要访问二维数组中的这些网格,通过检查是否有 3 个相同的 X 或 O 形成一条水平、垂直或对角线,了解 X 或 O 是否赢得了游戏。
- 如果你发现某人赢了,根据获胜的玩家将变量结果设置为 “X 赢” 或 “O 赢”。
- 如果游戏以平局结束,那么将结果设为“平局”。
- 如果游戏还没有结束,结果就是“无”。
然后确保结束时函数返回该变量结果(如果发现谁赢得了比赛或出现平局,也可以直接返回字符串字面量)。
如果需要,还可以创建和使用额外的函数,但是没有必要这样做。
一定要通过多次玩这个游戏,产生不同的结果(X 赢、O 赢、平局)来测试代码。如果发现错误,请记住,可以使用 IntelliJ 中的调试功能来修正错误。
转载链接:
https://learn.udacity.com/courses/ud282/lessons/5c13f85e-b69a-438a-8045-ac4a15f16e7d/concepts/dc2afd56-4ffb-45db-914f-80878a8742e6
标签:java,游戏,项目,网格,玩家,说明,checkGameWinner,平局 From: https://www.cnblogs.com/xumeng2022/p/17739224.html