全国服务热线:400-6263-721

位置:南宁童程童美少儿编程培训学院 > 学校动态 > 图形化编程 井字棋游戏

图形化编程 井字棋游戏

来源:南宁童程童美少儿编程培训学院时间:2022/1/9 11:29:53

  提到井字棋,想必大家都不陌生,就是两个玩家轮流在一个井字型的 9 宫格里画 x 和 o,当某一方的棋子连成了一条线(横向,竖向和对角线),那么该方获胜,如果格子被填满也没有人成功连线,则平局。这次我们来学习如何用 micro:bit 实现一个井字棋小游戏。

  通过 「图形化编程」Micro:bit 井字棋游戏(一) 我们实现了光标移动,A B 玩家轮流下棋的逻辑,通过 「图形化编程」Micro:bit 井字棋游戏(二) 我们学习了处理异常情况,比如当前光标位置已经有棋子了,显示一个 X,不让玩家再在当前位置下棋,当棋盘满了没有玩家获胜就显示一个 “Draw Game” 表示平局,这节教程我们将会实现井字棋游戏剩下的部分,判断输赢,这节教程会稍微难一些,涉及到一个简单的算法来算输赢,我会用一些图形来解释原理方便理解,不要被算法两个字吓到,没那么难啦,如果实现的过程中碰到什么问题可以在我的公众号给我留言,让我们开始吧

  首先打开 makecode 网站,载入 「图形化编程」Micro:bit 井字棋游戏(二)已经做好的部分,或者你没有来得及看上节教程,可以直接在 这个地址 获取 「图形化编程」Micro:bit 井字棋游戏(二) 的 hex 文件,然后上传到 makecode 网站接着实现。

  当开机时

  创建一个变量,命名为 jifenliebiao

  设置 jifenliebiao 为 空数组

  从 循环 分类下拖入一个 重复 x 次 模块,把 x 改为 8

  从 数组 分类下拖入一个 将值 x 添加到结尾 模块 到循环体中,把 变量改为 jifenliebiao,把 x 改为 0,意思是 添加 8 个 0 到 jifenliebiao 里

  修改 luozi 函数

  创建一个新变量,命名为 fenshu

  如果 Axiaqi 为 true,则设置 fenshu 为 1

  否则 设置 fenshu 为 -1

  添加一个新的函数,命名为 jifen,我们会在下面实现它

  在 调用 jianchashengfu 之前调用 jifen 函数

  计分函数

  这里我们需要一个新的函数,用于计分,计分规则上面已经讲过了,一共 8 个规则,我们分别实现这 8 条规则

  创建一个新变量,命名为 x,设置值为 dangqianbu 的 x 坐标

  创建一个新变量,命名为 y,设置值为 dangqianbu 的 y 坐标

  如果 x 为 0,则 将数组 jifenliebiao 中索引 0 的值设置为 从数组 jifenliebiao 中取得索引 0 的值 加上 fenshu,即符合编号 1 的规则,给编号 1 对应的 数组元素 0 计 1 分或 -1 分

  同样的,实现编号 2 的规则,如果 x 为 2,则 将数组 jifenliebiao 中索引 1 的值设置为 从数组 jifenliebiao 中取得索引 1 的值 加上 fenshu,这里有个小技巧,可以在代码区选中 上一步实现的 如果 x 为 0模块,按一下 ctrl+c 复制,然后再 ctrl+v 粘贴,然后修改一下相应的数字就可以实现剩下的规则了

  实现编号 3 的规则,如果 x 为 4,则 将数组 jifenliebiao 中索引 2 的值设置为 从数组 jifenliebiao 中取得索引 2 的值 加上 fenshu

  实现编号 4 的规则,如果 y 为 0,则 将数组 jifenliebiao 中索引 3 的值设置为 从数组 jifenliebiao 中取得索引 3 的值 加上 fenshu

  实现编号 5 的规则,如果 y 为 2,则 将数组 jifenliebiao 中索引 4 的值设置为 从数组 jifenliebiao 中取得索引 4 的值 加上 fenshu

  实现编号 6 的规则,如果 y 为 4,则 将数组 jifenliebiao 中索引 5 的值设置为 从数组 jifenliebiao 中取得索引 5 的值 加上 fenshu

  实现编号 7 的规则,如果 x 等于 y,则 将数组 jifenliebiao 中索引 6 的值设置为 从数组 jifenliebiao 中取得索引 6 的值 加上 fenshu

  实现编号 8 的规则,如果 x + y 为 4,则 将数组 jifenliebiao 中索引 7 的值设置为 从数组 jifenliebiao 中取得索引 7 的值 加上 fenshu

  检查胜负函数

  zui后一步,修改检查胜负函数,我们需要检查 jifenliebiao 数组里有没有一个元素为 3 或者 -3,如果有一个元素为 3,代表 A 赢了,如果为 -3,代表 B 赢了,如果都没有,就走原来的逻辑,判断棋盘是不是满了,如果满了就平局,如果没满就什么也不做,因为棋还没有分出胜负

  新建一个变量,命名为 fen,这是个用于访问 jifenliebiao 的变量

  从 循环 分类下 拖一个 将数组 x 中的元素逐个取出,以 fen 引用每次取出的值,意思是把 jifenliebiao 中的元素一个一个取出,并把元素的值赋值给变量 fen,然后执行循环体

  判断 如果 fen 为 3,显示字符串 A Win,游戏结束

  判断 如果 fen 为 -3,显示字符串 B Win,游戏结束

  到这里就完成整个井字棋游戏啦,快和你的小伙伴一起下井字棋吧,这里也要给自己鼓鼓掌呦,因为你已经实现了个算法,棒棒哒

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/961/news/472351/违者必究! 以上就是南宁童程童美少儿编程培训学院 小编为您整理 图形化编程 井字棋游戏的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721