scratch编程走迷宫(51.Scratch青少年编程实例教程)
上一节Scratch编程课程,我们讲了如何判断横向左右两个方向是否五子连珠。
实际上,我们一共需要判断8个方向,包括:上、下、左、右、左上↖、右下↘、右上↗、左下↙。
那么,在上一节课代码基础上,稍加修改就能实现其它6个方向的判断了。
可是,你会发现每个方向的代码相似度非常高,也就是说我们可以从中找出一种规律,从而大大简化代码。在介绍我的优化代码之前,我们先解决下落子点棋子重复落子的问题。
解决落子点棋子重复落子问题大家看下图,增加一个判断,判断当前落子点的列表编号在列表中对应的值,如果值为0,说明该落子点可以落子;反之,不为0,说明该落子点已经有棋子了。
图1
如何将8个方向的代码,优化成一个自定义积木?大家看下图,我把它们的计算格式进行了统一,然后用红色标出了不同的地方。不同的地方有两处,我们分别在自定义积木中设置参数a和b 。大家结合下面的代码慢慢理解。
图2
图2是图3中重复执行程序的执行终止判断代码,我把他们拆开,方便大家理解。
①是判断是否找到相同颜色的棋子;②③④⑤判断是否超出棋盘范围。当没有相同棋子或者超出了棋盘范围,那么,重复执行就终止了,因为没必要再继续在这个方向上查找了。
图3
图4
虽然是8个方向,但是我们计算连珠总数的时候,是两个相对方向一起计算的,所以得两个方向结合起来计数。具体程序见下图。如果,总数超过4,那么发出“五子连珠”的广播。接收广播的角色,根据当前落子是“黑棋”还是“白棋”,经过判断后显示“黑棋胜”或者“白旗胜”。
图5
最后,我们两个两个地组合,对所有8个方向进行判断。
图6
演示效果教程写到这里,我们的五子连珠游戏已经可以正常判断胜负了,我和糖果两个人玩了一局,感觉还真不错。
本次Scratch编程课程就讲到这里,后续课程见!
本文所有图片、视频及文字内容,均为原创,转载时请保留版权信息。
查看更多Scratch编程教程,请点击下一行的了解更多,进入程序员猪猪的头条主页。
点击关注,每天接收更新哦。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com