你好, 欢迎回来｡
在这节课上, 我想 给予你另一个挑战
这与功能有关, 但是
这个挑战更多的是分而治之｡ 它在走
更多关于围绕模块组织程序的信息, 更多地关注解决问题｡
我要你做的是 你写一个井字游戏｡
这将帮助你
成为一个更好的问题解决者, 它会帮助你组织 您的程序围绕函数｡
您还将使用阵列,
您必须了解 如何格式化某些数据,
但这将是一个 井字游戏的模拟｡
我们不打算写一台计算机｡
这将是玩家 1号对2号｡
所以我想让你写一份 玩井字游戏的程序
希望大家都是 我应该说,
对这个程序或者这个游戏很熟悉｡
这只是一个游戏 两个人在3 x 3的格子里｡
你们轮流｡
X是鼻子｡
希望你能想起来｡
我不想去 解释一下这个游戏, 希望你熟悉井字游戏｡
我将提供一点 演示它是如何工作的,
以及我希望输出的结果是如何的｡
但这是个基本的井字游戏｡
我想做的是 可能需要创建一个数组来表示
实际电路板, 3 x 3网格｡
我觉得你只要 从而创建一维阵列｡
您可以创建一个 2D数组来表示行和列｡
2D可能会更
直观, 但在代码中可视化可能有点困难｡
但无论哪种方式都行得通｡
编程的好处是 一个问题有很多解决方法｡
我要告诉你我的一个 解决方案和我的设计方法, 但您可以随时更改设计｡
只要你用的是 c构造正确, 这就是我所关心的.
我想让你学习如何使用c｡
只要程序是模块化的 它是有组织的,
易于维护, 而且是高质量的代码, 这就是我担心的
所以一种方法实现只有一种方法 是将棋盘表示为具有十个元素的一维数组｡
我之所以在这里有十个元素 我不希望你们用零｡
这十种元素
代表董事会, 但他们也会代表 板上的坐标｡
我将演示一下 你知道我是怎么想的｡
但你现在的做法
来选择你想画的盒子 基于元素编号｡
除了为 董事会, 你必须试着想想如何解决这个问题
你要如何组织它｡
我想至少 你至少需要三个函数,
甚至更多
但你至少要有一个 函数来检查获胜者｡
这基本上就是 如果一个人赢得了游戏,
或者他们甚至可以检查平局｡
你应该有一个函数 用来画棋盘｡
因为你要画 在每个玩家的回合之后,
你要... 你会重复使用这个｡
标记的另一个功能
当使用者实际上想要将 x或o的字符串｡
您需要一个函数来设置 那个框是x或o
你可能会 用x或o填充数组｡
这样你就可以看到 数组来查看您是赢了还是输了｡
而在标记板上, 它 还允许您检查是否存在无效选择｡
因此, 如果 从1到9,
用户输入了10, 你会说, 嘿, 你不能这样做, 再试一次｡
游戏应该是用户友好的,
从用户的角度来看应该是直观的 应尽可能从方案拟订的角度来安排｡
好好想想这个｡
做一些计划, 做一些计划, 做一些文件, 开始写一些关于如何解决这个问题的设计
您将需要使用的函数｡
我想的是 我来演示一下｡
我不会给你看任何 代码, 但这是我想象的游戏将是什么样子,
当我们运行它｡
也许是个小标题 上面写着, 嘿, 游戏
然后还有点 有关玩家的信息｡
参与人1是x 参与人2将是o
请记住, 这并没有 玩电脑｡
你可以把每一个回合都放进去｡
所以你得玩这个游戏 坐在你旁边的朋友, 他们必须
告诉你把号码放在哪里｡
如果你真的
雄心勃勃, 你可以写游戏玩电脑｡
但你会注意到3 x 3 网格中最初有数字
您可以使用这些数字输入｡
所以如果你想 他们代表x,
这取决于 他们输入的数字, 这就是x的位置｡
所以我们打印网格, 显示 然后我们告诉用户轮到谁了
我们告诉他们输入一个数字｡
所以在这个例子中, 我将继续 然后输入第二个数字并按回车键｡
我撞上后会发生什么
2, 然后返回, 它会看是否有人赢了 它会清空屏幕并重新绘制棋盘｡
我按2键输入后, 您将 注意我还有头衔,
还有参与人1和2
但现在在第二个盒子里, 我有一个x｡
那我还应该做什么
我应该在展示黑板之前检查一下 我们有赢家或平局｡
很明显这是第一次 所以我们两者都没有｡
既然我们没有赢家
或者是听牌, 我现在要玩家输入一个数字, 然后 他们可以在这里选择任何数字｡
现在如果我输入了无效的 像10这样的数字, 它应该告诉我它是无效的｡
这样我就能 也许会有新的行动｡
如果我输入2, 2 也应该无效｡
所以如果我输入2, 它也会显示无效 因为2已经被x占用了｡
所以如果程序允许我 再试一次, 您可以取消他们回合,
但这并不公平｡
所以现在我只想说 我想把o放在哪里？
我会说5, 我会把 无效的移动,
它将重绘公共牌, 出现一个o和5｡
现在是参与人1.
你一直这样直到 你有一个赢家或平局｡
我就说9｡
这里有一个x, 有效 条目是1､ 3､ 4､ 6､ 7和8｡
我猜是3｡
让我们试着让x
所以现在x的余数是8我用0和6来表示 这个游戏只有赢家才能玩
然后我用7代表x, 这个博弈 现在应该结束了｡ 我按了回车键｡
一号参与人赢了 甚至为我放了一点声音, 我在那里做了一些花哨的东西｡
游戏结束了, 一方获胜｡
而且如果 2号玩家赢了或者是平局｡
所以想想你想要 来解决这个问题｡
不错的小程序｡
我将介绍一个解决方案并提供 下一节课的源代码｡ -谢谢—谢谢