视频: iOS10 实战开发 Swift3.0 S2 井字棋第一期 2024
如果您决定接受它,您的任务是创建一个Java程序,可以与用户一起玩井字游戏。你可能知道,井字棋是一个简单的游戏,通常用纸和铅笔玩。首先,在纸上制作一个简单的3 x 3网格。然后两名选手轮流在网格上的空白处标记X和O.在水平,垂直或对角线上打出三个他或她的分数的第一个选手获胜。如果网格中的所有空格在任何玩家连续三次标记之前被填满,则游戏是平局。
<! - 1 - >
以下是这个挑战的规则和说明:计算机与人类对抗。人为先移动,为X.计算机为O.
-
程序首先显示一个简短的欢迎信息,然后提示玩家第一次移动。例如:
-
欢迎来到Tic-Tac-Toe。请输入您的第一步:
要指定网格的正方形,请使用字母A,B和C作为列,并使用数字1,2和3作为行,如下所示:
-
<!因此,为了将X置于左上方,当玩家在程序提示玩家输入时,人类玩家将输入文字A1移动。
在人进行移动之后,程序应该在控制台上显示该板的当前状态。用X标记人类的戏剧,用O标记电脑的戏剧。使用垂直栏字符(在键盘上找到反斜杠字符,在输入键上方)和连字符以简单的网格绘制板。
<! - 3 - >
例如,如果用户第一次输入A1,程序将显示以下内容:
-
X | | --- | --- | --- | | --- | --- | --- | |
人类的移动之后,程序决定移动,向用户发布,显示更新后的棋盘,然后提示用户移动。例如,您可能会看到:
我将播放A2:X | O | --- | --- | --- | | --- | --- | --- | |请输入您的下一步棋:
-
继续进行游戏,直到一名玩家连续得分三次,或者所有棋子都没有赢家。您的程序必须能够确定任一玩家是否连续获得了三个并赢得了游戏。 (这是编程挑战中最困难的部分。)
游戏结束后,程序显示一条消息,指出游戏的结果:“你打我! “如果玩家赢了,”我揍你! “如果电脑玩家赢了,或”这是一个平局! “如果比赛以平局结束。
人类和电脑玩家只能在没有被任何一方玩家占据的方格里玩。
-
当任一玩家赢得比赛或该比赛是平局时,程序结束。如果你想再次玩,你必须再次运行程序。
-
请注意,您可以自由使用任何方法来确定计算机如何进行移动。我建议你有电脑总是在第一个空的广场玩。玩Tic-Tac-Toe显然不是最好的方法,每次玩的时候你都不会打电脑。但是选择这种简单的游戏策略可以让你专注于编程的其他方面,比如如何在内部表现网格,以及如何确定玩家何时赢得比赛或何时游戏结束。
-
(在“Java编程挑战:添加数组到简单的井字游戏程序”中,您需要为程序提供一个更好的策略来确定它的播放。)
-
下面是一个例子控制台显示一个完整的游戏:
欢迎来到Tic-Tac-Toe。请输入您的第一步:
A1
X | | --- | --- | --- | | --- | --- | --- | |我将在A2:X |上玩O | --- | --- | --- | | --- | --- | --- | |请输入您的下一步行动:
B1 X | O | --- | --- | --- X | | --- | --- | --- | |我将在A3:X |上玩O | O --- | --- | --- X | | --- | --- | --- | |请输入您的下一步行动: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | |你打败了我! 下面是一些启动的提示: 表示网格的最好方法是使用数组。现在,使用九个变量,分别命名为A1,A2,A3,B1,B2,B3,C1,C2和C3。 如果对网格变量使用int类型,则可以使用1来指示正方形包含X和2,以指示正方形包含O.
八个可能的行可以导致赢。如果以下任何一个正方形的组合都是1(对于X)或2(对于O),则玩家获胜:
-
A1-A2-A3 A1-B1-C1 A1 -B2-C3 B1- B2- B3 A2- B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
-
确定游戏是否为平局有两种方法。首先是检查所有九个方块:如果没有一个方块是空的,而且没有一个玩家赢了,那么这个游戏就是平局。第二个是数数:如果有九个动作都没有赢,那么这个游戏就是平局。
-
您可以在
Java All-in-One傻瓜版的
-
第4版产品页的“下载”选项卡上找到针对此编程挑战的解决方案。祝你好运!