大家好,欢迎来到IT知识分享网。
前言
上一节Scratch编程课程,我们讲了如何判断横向左右两个方向是否五子连珠。
实际上,我们一共需要判断8个方向,包括:上、下、左、右、左上↖、右下↘、右上↗、左下↙。
那么,在上一节课代码基础上,稍加修改就能实现其它6个方向的判断了。
可是,你会发现每个方向的代码相似度非常高,也就是说我们可以从中找出一种规律,从而大大简化代码。在介绍我的优化代码之前,我们先解决下落子点棋子重复落子的问题。
解决落子点棋子重复落子问题
大家看下图,增加一个判断,判断当前落子点的列表编号在列表中对应的值,如果值为0,说明该落子点可以落子;反之,不为0,说明该落子点已经有棋子了。
如何将8个方向的代码,优化成一个自定义积木?
大家看下图,我把它们的计算格式进行了统一,然后用红色标出了不同的地方。不同的地方有两处,我们分别在自定义积木中设置参数a和b 。大家结合下面的代码慢慢理解。
编写判断8个方向是否五子连珠的程序
图2是图3中重复执行程序的执行终止判断代码,我把他们拆开,方便大家理解。
①是判断是否找到相同颜色的棋子;②③④⑤判断是否超出棋盘范围。当没有相同棋子或者超出了棋盘范围,那么,重复执行就终止了,因为没必要再继续在这个方向上查找了。
虽然是8个方向,但是我们计算连珠总数的时候,是两个相对方向一起计算的,所以得两个方向结合起来计数。具体程序见下图。如果,总数超过4,那么发出“五子连珠”的广播。接收广播的角色,根据当前落子是“黑棋”还是“白棋”,经过判断后显示“黑棋胜”或者“白旗胜”。
最后,我们两个两个地组合,对所有8个方向进行判断。
演示效果
教程写到这里,我们的五子连珠游戏已经可以正常判断胜负了,我和糖果两个人玩了一局,感觉还真不错。
本次Scratch编程课程就讲到这里,后续课程见!
本文所有图片、视频及文字内容,均为原创,转载时请保留版权信息。
查看更多Scratch编程教程,请点击下一行的了解更多,进入程序员猪猪的头条主页。
点击关注,每天接收更新哦。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/74346.html