项目说明

总结

在这个项目中,你需要完成一个井字游戏代码。可以在此处下载游戏 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

  1. Game.java 是保存所有游戏逻辑代码的文件。
  2. GameUI.java 是保存所有用户界面代码的文件。如果愿意,也可以看一下 GameUI.java。不过不需要更改任何代码也可以完成项目。

你的任务是在 Game.java 文件中实现 checkGameWinner() 函数。

字符串 checkGameWinner (char [][] grid) 的输入参数是一个二维字符数组,表示游戏网格(详见下图),会返回一个字符串消息,表明谁赢了游戏(X 赢、O 赢、平局或由于游戏没有结束,尚无结果)。

doChecks() 是玩家每次轮流时,另一个负责调用 checkGameWinner 的函数,因此不用担心将该函数添加到程序的其余部分,该函数已经处理好了。

Grid 以二维字符数组表示,索引如下:

二维数组索引

要求

在 checkGameWinner() 中,你需要访问二维数组中的这些网格,通过检查是否有 3 个相同的 X 或 O 形成一条水平、垂直或对角线,了解 X 或 O 是否赢得了游戏。

  1. 如果你发现某人赢了,根据获胜的玩家将变量结果设置为 “X 赢” 或 “O 赢”。
  2. 如果游戏以平局结束,那么将结果设为“平局”。
  3. 如果游戏还没有结束,结果就是“无”。

然后确保结束时函数返回该变量结果(如果发现谁赢得了比赛或出现平局,也可以直接返回字符串字面量)。

如果需要,还可以创建和使用额外的函数,但是没有必要这样做。

一定要通过多次玩这个游戏,产生不同的结果(X 赢、O 赢、平局)来测试代码。如果发现错误,请记住,可以使用 IntelliJ 中的调试功能来修正错误。

 

 


转载链接:

https://learn.udacity.com/courses/ud282/lessons/5c13f85e-b69a-438a-8045-ac4a15f16e7d/concepts/dc2afd56-4ffb-45db-914f-80878a8742e6

 

 
posted @ 2023-10-01 20:15  杨百顺  阅读(11)  评论(0编辑  收藏  举报