(共25张PPT)
第18课
石头剪刀布
学习目标
巩固与扩展
项目讨论
逻辑编程
1
2
3
4
1
Ai时代,人机大战,是人类战胜Ai,还是Ai碾压人类。我们通过“剪刀石头布”的经典PK项目,来感受一下人工智能吧!
2
3
4
巩固“ 到鼠标指针距离”、“ 击打乐器音符 ” 、“ 颜色特效“等脚本
学习“变量”、“广播消息” 、“等于” 、“减号” 等新脚本
综合应用所学脚本完成编程项目并扩展
新脚本:
巩固脚本:
1.本节课用到的角色
2.本节课用到的背景
石头
Blue Sky 2
剪刀
布
Cat
机器
《石头剪刀布》
1.大家都玩过石头剪刀布的猜拳游戏吧,谁能说一说它的游戏规则呢?
2.将鼠标指针划到玩家出拳的三个图片时,观察一下效果发生了什么变化?这是如何实现的?
3.舞台上的小猫是起到了什么作用?
4.我们还可以增加什么效果,让游戏变得更好玩呢?
角色底部出现了橙色圆圈。这是通过切换角色造型实现的。
小猫是这个游戏的裁判,最终的胜负由小猫来公布。
增加对战双方胜负的次数。
《石头剪刀布》
1.游戏的胜负判断逻辑
1.胜负判断逻辑
1、石头胜剪刀
我们以1、2、3的数字来分别代表石头剪刀和布
2、剪刀胜布
3、布胜石头
4、出拳相同则为平局
1
2
3
1.游戏的胜负判断逻辑
2.胜负判断逻辑
由此,我们也可以得出:
1 - 2= -1
2 - 3= -1
3 - 1 = 2
玩家
机器
玩家胜:
(1)玩家 机器 = -1
(玩家石头,机器剪刀;玩家剪刀,机器布)
(2)玩家 机器 = 2
(玩家布,机器石头)
机器胜
(1)玩家 机器 = 1
(玩家剪刀,机器石头;玩家布,机器剪刀)
(2)玩家 机器 = -2
(玩家石头,机器布)
平局
玩家 机器 = 0
2.设定变量
1.根据以上的分析,我们知道需要设定“玩家”和“机器”两个变量。通过比较二者的大小,来判断胜负。
变量的赋值
3.给玩家编程(以石头为例)
1.选择出拳角色
在选择过程中,当鼠标指针碰到角色时,角色的造型发生了变化,鼠标离开时,造型复原。
效果在以上两种效果中切换,以代表准备选择该角色。
以上效果,根据是否“碰到鼠标指针”为判断条件,如果“碰到”那么...否则...
3.给玩家编程(以石头为例)
碰到指针,则显示造型1,未碰到则显示造型2;
以上效果需可重复执行;
2.出拳
当玩家确定选择某个角色出拳后,点击鼠标,则系统出拳。
当角色被点击后,我们通过声音(Crunch)播放增加效果,确定玩家已出拳。
3.给玩家编程(以石头为例)
2.出拳
根据赋值原则,将玩家赋予对应的值。
并通过广告,启动机器出拳及启动裁判判断胜负结果。
剪刀和布的程序与此相同,仅需要修改对应的造型,以及玩家的赋值。
4.给机器编程
1.机器出拳的效果
机器出拳是在玩家出拳后启动的,即接受玩家的广播后开始
机器自带了三种出拳的造型,分别是“石头” “剪刀”和“布”。当机器出拳启动时,迅速的切换造型可营造更好的出拳效果。
4.给机器编程
2.机器出拳
机器出拳为随机出拳,而根据之前的赋值原则,由1~3的数字分别代表“石头剪刀布”
如果随机数为1,则说明机器出拳为“石头”,则切换机器造型为“石头”,并将赋值石头的对应数字。
将“机器”的变量,在1~3中随机赋值。
剪刀和布的程序与此相同,仅需要修改对应的造型,以及对应的赋值。
4.给机器编程
3.机器完整程序
该段程序接左侧程序之后
5.给裁判(cat)编程
1.裁判的启动
裁判的启动,也是随着玩家出拳后,和机器一起启动的。即接收到广播后启动。
等待一秒的效果,是为了等待机器出拳以获得机器的出拳值并做出胜负的判断。
等待一秒后,玩家和机器的结果都已得出;根据之前判断原则;二者相减的得数来判断胜负
2.判断胜负
5.给裁判(cat)编程
3.多种情况的判断
根据之前的分析,一共会有5种结果,不同的结果判断(裁判的说)不同。
玩家胜
玩家 机器 = -1 玩家 机器 = 2
平局
玩家胜,播放胜利(Win)音效
5.给裁判(cat)编程
3.多种情况的判断
根据之前的分析,一共会有5种结果,不同的结果判断(裁判的说)不同。
机器胜
玩家 机器 =1 玩家 机器 = -2
机器胜,即玩家失败,播放失败(Lose)音效
5.给裁判(cat)编程
4.裁判完整程序
以上程序,按从左到右的顺序,从上到下依次连接在左侧程序的下方即为裁判的完整程序。
Q1:如果将裁判程序中的“等待一秒”不存在,你觉得对程序有没有影响?
A1:有影响。当机器还未最终显示出拳效果时,裁判已经将胜负结果公布。裁判就变成了“黑哨”了。
Q&A
删除“等待1秒”
Q2:将裁判程序中的“等待1秒”删除,我们还可以通过什么方法不让裁判变成“黑哨”呢?
A2:增加一个新的广播消息,放置在机器程序最尾部,裁判程序接收到新消息后启动。
Q&A
机器程序
裁判程序
(1)
(2)
变量有几个非常重要的属性:1、有自己的名称;2、初始值需要赋值;3、能被运算。
数学运算模块,可以直接输入数字,也可以加入其他的脚本进行比较哦。这节课就用到了变量-变量的数值进行检测,检测是玩家获胜还是机器获胜。
知识点巩固
游戏舞台右上角所显示的“玩家”和“机器”对应的数字代表什么?( )
A
B
C
D
机器与玩家的胜负次数。
机器与玩家的出拳赋值。
是随意乱显示的数字,无需管它。
是游戏者玩的次数统计。
源码测试
答案:
解析:
程序中设定了两个变量,机器与玩家。后面的数字分别代表的是此次游戏二者出拳所对应的数字。
B
源码测试