LEGO EV3打地鼠程序参考讲解

      今天豆豆给大家分享的是打地鼠这个用EV3编写的程序,这个不需要任何搭建,只需要一个EV3砖和EV3软件即可。地鼠会在EV3屏幕上的四个对角出现,我们按下相对应的按钮,地鼠会被敲打,然后消失,再次随机在某个位置出现。今天在公众号分享出来,不足之处还请各位多多指正。

NO.1 首先下载一张地鼠的图片

LEGO EV3打地鼠程序参考讲解

NO.2 需要把这张图片导入EV3程序中

LEGO EV3打地鼠程序参考讲解
      选择菜单–工具–图像编辑器

LEGO EV3打地鼠程序参考讲解
      将地鼠的图片导入进去,但是需要地鼠在EV3屏幕上的一个对角出现,因此需要对图片的大小进行调整。

LEGO EV3打地鼠程序参考讲解
      通过缩小图标和鼠标的拖动,将图片缩小成一部分,然后剩下的步骤就很简单了,这里就省略了。

LEGO EV3打地鼠程序参考讲解
      最后保存即可。(如果软件无法导入图片,请升级固件版本尝试解决该问题)

NO.3 接下来是要程序的任务和分析的步骤

      任务:地鼠会随机在EV3屏幕上的四个角落出现,然后按压下相对应的按钮(这里用EV3砖上的上下左右按键表示),地鼠图片便消失,然后又随机出现在另外一个角落。这个地鼠游戏有一定的时间限制,当时间到达之后,游戏结束。最后需要统计每个角落地鼠被打的次数。

分析步骤:

(1)EV3屏幕上四个角落的坐标我们需要确定,即地鼠出现的位置坐标;

      这里先设定参考数值:

      左上角坐标:X=0,Y=0

      左下角坐标:X=0,Y=60

      右上角坐标:X=80,Y=0

      右下角坐标:X=80,Y=60

(2)每个角落需要设定一个变量值,这个值作为地鼠被打的次数;

      左上角=变量值1

      左下角=变量值2

      右上角=变量值3

      右下角=变量值4

(3)地鼠会随机出现在某个角落;

(4)按压下EV3按键上相对应的按键,该角落的地鼠的图片消失;

      左上角=EV3左侧按键

      左下角=EV3右侧按键

      右上角=EV3上侧按键

      右下角=EV3下侧按键

      哈哈,看到这里会不会晕啊,没事,那支笔记录下来就好,如果习惯了一眼就能看出来。

(5)地鼠每被打压一次,相对应的变量值将会执行+1的运算;

(6)地鼠游戏有一定的时间限制;

(7)时间结束后,在EV3屏幕上的每个角落会显示地鼠被打的次数;

      注意:

(1)假如地鼠出现在EV3屏幕上的左上角,但是按键失误(不是相对应的按键按压),地鼠将不会消失,直至正确的按键被按压才会消失,同时该角落的变量值才会执行+1的运算;

(2)地鼠出现的时间限制,如果在一定时间内地鼠没有被正确打掉的话,那么地鼠将会消失,同时又随机出现在另外一个角落位置。关于这点,不做解释,如果需要按照这种方法来写程序的话,后面会有简单介绍,但是这次写的程序不会让地鼠在一定时间消失,即程序任务是直至地鼠被正确打掉才会消失并同时随机在下一个角落出现;

(3)可以通过4个触动传感器来执行按压任务,但是由于一套EV3 SET里面只有2个触动传感器(我只有一套/(ㄒoㄒ)/~~),因此这里选择EV3砖的按键来执行。

(4)本程序仅供参考。

NO.4 程序的编写

(1)首先定义四个变量

LEGO EV3打地鼠程序参考讲解
      图中分别定义了1、2、3、4这四个变量,变量的初始值设定为1,为什么不是0?因为我想试一下从1开始,然后最后进行减1运算看看行不行哈,好笨哈。当然初始变量值设定为0是可以的。接下来是显示模块。

LEGO EV3打地鼠程序参考讲解

(2)地鼠显示及数据统计

      然后随机模块,随机的范围是1-4,这个1-4的范围包括1、2、3、4四个随机数字,这个数字跟变量值的1、2、3、4不一样,不一样,不一样!

LEGO EV3打地鼠程序参考讲解
     随机数值定义为一个变量值0,然后通过切换模块-数字模式进行数据连接,数字模式下,我们选择了5种,即下图:

LEGO EV3打地鼠程序参考讲解
      为了方便观看,我选择了选项卡视图,这里的5种情况,0表示默认情况,这只是一个很简单的过度没有任何意义,在默认情况下地鼠不会出现,但是由于随机值的范围是1-4,因此这个默认情况也是不会出现的,哈哈,有点多余的赶脚。

情况0:

      这个鸡肋的程序模块还是放一个显示模块吧,如下图:

LEGO EV3打地鼠程序参考讲解
情况1:

      即地鼠在EV3屏幕的左上角落出现,将这个角落的坐标值定义为x=0,y=0。地鼠出现,设定对应的EV3按键为左键,等待左键碰撞(按压也可以,下同),地鼠图片消失,然后这个角落的变量值记录地鼠被打压一次。程序如下图(点击图片可查看大图):

LEGO EV3打地鼠程序参考讲解
      程序的顺序:EV3左上角角落出现地鼠,碰撞EV3砖左侧按键,地鼠图片消失,然后左上角落的变量值1进行+1的运算,形成一个新的变量值1。

      注意图中红圈的地方,选择的是左键,状态是碰撞,数学运算的地方执行的是+1的运算。

情况2:

      即地鼠在EV3屏幕的左下角落出现,将这个角落的坐标值定义为x=0,y=60。地鼠出现,设定对应的EV3按键为右键,等待右键碰撞,地鼠图片消失,然后左下角落的变量值记录地鼠被打压一次。程序如下图(点击图片可查看大图):

LEGO EV3打地鼠程序参考讲解
      程序的顺序:EV3左下角角落出现地鼠,碰撞EV3砖右侧按键,地鼠图片消失,然后左下角落的变量值1进行+1的运算,形成一个新的变量值1。

      注意在写第二种的情况下,地鼠出现的坐标值要改,同时对应后面地鼠消失的显示模块的坐标值也需要更改,同时变量值这个时候是2,不是1。

情况3:

      即地鼠在EV3屏幕的右上角落出现,将这个角落的坐标值定义为x=80,y=0。地鼠出现,设定对应的EV3按键为上键,等待上键碰撞,地鼠图片消失,然后右上角落的变量值记录地鼠被打压一次。程序如下图(点击图片可查看大图):

LEGO EV3打地鼠程序参考讲解
     程序的顺序:EV3右上角角落出现地鼠,碰撞EV3砖上侧按键,地鼠图片消失,然后右上角落的变量值1进行+1的运算,形成一个新的变量值1。

      需要注意的是仍然是坐标值,变量值的选择,千万不要被这些数字给弄混了。如果不好记忆,可以给变量值编写英文数字即可。

情况4:

      即地鼠在EV3屏幕的右下角落出现,将这个角落的坐标值定义为x=80,y=60。地鼠出现,设定对应的EV3按键为下键,等待上键碰撞,地鼠图片消失,然后右下角落的变量值记录地鼠被打压一次。程序如下图(点击图片可查看大图):

LEGO EV3打地鼠程序参考讲解
     程序的顺序:EV3右下角角落出现地鼠,碰撞EV3砖下侧按键,地鼠图片消失,然后右下角落的变量值1进行+1的运算,形成一个新的变量值1。

      注意的地方还是很前面的一样。

      好了,到这里,已经将这5种情况都写完了,下面提供完整的图参考:

LEGO EV3打地鼠程序参考讲解

LEGO EV3打地鼠程序参考讲解

(3)循环的添加

LEGO EV3打地鼠程序参考讲解
      从随机模块开始,把程序模块都嵌入循环模块内,设置的循环条件是时间循环,这里设定了20秒的时间。

(4)游戏结束后,数据的统计

LEGO EV3打地鼠程序参考讲解
      首先是在循环后面添加显示模块,这里清除屏幕选择伪。然后需要对刚才四个角落的变量值让其在EV3屏幕上显示,但是,有没有发现,起初设定的变量值的初始值是1,不是0,也就是说所有地鼠被打压的次数都比真实情况多了一次,那么在这里显示的话,就应该进行-1的运算。

LEGO EV3打地鼠程序参考讲解
      用分支程序来写程序,需要注意的仍然是坐标值!变量值要对应相对应的角落坐标值。不用往前翻,我这里挪下来。

      左上角——变量值1——X=0,Y=0

      左下角——变量值2——X=0,Y=60

      右上角——变量值3——X=80,Y=0

      右下角——变量值4——X=80,Y=60

      这是一个需要注意的地方,还有一个需要注意的地方,即在这所有的显示模块的清除屏幕全部选择伪。

      然后给这添加循环模块,为了更好的观看次数数据。

LEGO EV3打地鼠程序参考讲解
NO.5 整个程序及说明

LEGO EV3打地鼠程序参考讲解
      o(╯□╰)o,不能截下整个屏幕啦,只要将上面的程序连接一起就行啦。

说明:

(1)本程序仅供参考;

(2)如果要地鼠在某个时间段内,没有被打掉或者按键错误,导致地鼠在这个区域消失,并随机出现在另外的区域内,可以通过时间等待或者添加一个循环和循环中断即可,这里不提供参考程序,需要注意的是,这种情况下,变量值是不会增加的;

(3)屏幕清除的真伪需要注意;

(4)如果变量的初始值设定为0,那么将不需要运算模块,直接数据连接即可。