1、用Scratch编写舒尔特方格游戏本教程适合有一定Scratch基础者By AI20182018.2.1212舒尔特方格游戏简介 舒尔特方格是在一张方形卡片上画上25 个方格,格子内随机填写上数字 1 25。训练时,要求被测者按 1 25 的顺序依次指出其位置,数完 25 个数字所用时间越短,注意力水平越高。舒尔特方格是全世界范围内最简单、最有效的注意力训练方法。寻找目标数字时,注意力需要高度集中,把集中精力的过程反复练习,大脑的注意力就会不断地加固、提高。但是这种训练的枯燥乏味只适合有毅力的特殊人群,对于儿童采用这种方法往往效果很差。本游戏通过记录排行榜功能,通过不断挑战自己的记录,提高趣味
2、性。22022-12-26游戏界面 游戏界面显示如右图 具有5*5,6*6两种方格游戏 每次生成随机排列的方格 简单更改就能生成n*m型方格 具有计时排行榜功能 自我挑战或与朋友比赛,增加趣味性 玩法 玩家选择5X5或6X6类型的方格,然后用鼠标按顺序点击数字,点完最大的数字后,程序根据所用时间,确定是否更新排行榜32022-12-26创建角色 本游戏一共有三个角色:数字、5X5按钮、6X6按钮角色角色创建方法创建方法备注备注从角色库中导入蓝色按钮,在造型页增加标签5X5,并更改角色名称。有两个造型,造型名称更改为“1”和“2”从角色库中导入蓝色按钮,在造型页增加标签6X6,并更改角色和造型的
3、名称。或选择5X5角色,复制后修改标签和名字。从本地文件上传用PowerPoint绘制好的数字角色42022-12-26用PowerPoint绘制游戏角色-绘制数字方块步骤步骤图示图示说明说明1启动PowerPoint 2016,选择“插入”-“形状”-“矩形”工具,按下Shift键绘制一个正方形。2选择画好的正方形,在“格式”-“形状效果”-“预设”,设置如左图的立体效果52022-12-26用PowerPoint绘制游戏角色-绘制数字方块步骤步骤图示图示说明说明3改变角色的填充颜色为深绿色4选择角色,在右键菜单中选择“另存为图片”,选择保存路径和文件名“数字”,保存为png格式的文件5在s
4、cratch中导入前面保存的“数字.png”62022-12-26调整角色的位置和大小 按右图放置三个角色,并调整大小 对于“数字”,将大小设定为边长38的正方形:根据图片大小,在脚本区使用设定角色大小的积木。例如:作者绘制的图片,导入后是边长155的正方形,则使用将角色大小设定为25的积木,角色边长=155/4=38.772022-12-26准备数字角色的各造型 选中数字模块,将造型名称更改为“1”右击数字造型,右键选择复制,复制36个造型,编号自动递增直到36 选择造型“1”,在Scratch内部用T工具做出“1”字标签,并调整大小 依次做出造型2-36的标签,确认造型编号对应2-3682
5、022-12-26变量表 根据程序需要,建立如下变量变量名变量名作用作用状态指示当选择5X5时,显示5X5表示25个数的舒尔特方格,当选择6X6时,显示6X6表示36个数的方格记录显示当前模式的最快记录时间显示当前游戏的时间行数方块显示的行数,可实现行列数不同的舒尔特方格列数方块显示的列数分数内部变量,用于控制按顺序点击,按分数递增控制数字顺序最大数中间变量,用于控制循环次数,最大数=行数*列数,m中间变量,在排行榜中搜寻时计数用。n中间变量,随机列表序号变量,用于显示控制显示随机数字Temp中间变量,生成随机数列表用的中间暂存92022-12-26变量表 根据程序需要,建立如下列表变量名变量
6、名作用作用5X5排行榜记录5X5型舒尔特方格的Top 10记录6X6排行榜记录6X6型舒尔特方格的Top 10记录随机列表用于存储1-25或1-36的随机数字的列表102022-12-26编写5X5按钮角色的脚本模块模块说明说明游戏开始时,显示按钮。5X5按钮和6X6按钮点击后,都会广播“开始”,收到“开始”消息后,为了防止游戏过程中点击按钮造成错误,因此要隐藏按钮按顺序点击到最大数时,角色“数字”会广播“挑战完成”,显示按钮,给重新选择的机会当完成游戏后,如果所用时间小于排行榜时,角色“数字”会广播“刷新排行榜”,按钮收到“刷新排行榜”消息时,会显示3秒刷新排行榜提示112022-12-26
7、编写5X5按钮角色的脚本模块模块说明说明1、按钮被点击时,切换按钮造型2,作为反馈;2、初始化:状态指示,行数,列数,最大数;3、更新记录:因为排行榜是按时间排序好的,最快记录就是第一个记录;4、显示5X5排行榜,隐藏6X6排行榜;5、恢复按钮初始造型;6、广播开始;122022-12-26编写6X6按钮角色的脚本模块模块说明说明游戏开始时,显示按钮。5X5按钮和6X6按钮点击后,都会广播“开始”,收到开始消息后,为了防止游戏过程中点击按钮造成错误,因此要隐藏按钮按顺序点击到最大数时,角色“数字”会广播“挑战完成”,显示按钮,给重新选择的机会当完成游戏后,如果所用时间小于排行榜时,角色“数字”
8、会广播“刷新排行榜”,按钮收到“刷新排行榜”消息时,会显示3秒刷新排行榜提示 两个按钮的脚本几乎是一样的,完成5X5按钮的脚本后,选择复制,再做对应修改即可。132022-12-26编写6X6角色的脚本模块模块说明说明1、按钮被点击时,切换按钮造型2,作为反馈;2、初始化:状态指示,行数,列数,最大数;3、更新记录:因为排行榜是按时间排序好的,最快记录就是第一个记录;4、显示6X6排行榜,隐藏5X5排行榜;5、恢复按钮初始造型;6、广播开始;142022-12-26编写数字角色的脚本模块模块说明说明初始化:点击绿旗,初始化为5X5的方格,因此,前一段初始化与5X5按钮相同;然后初始化时间、分数
9、两个变量;最后初始化“数字”角色的大小和初始位置。152022-12-26编写数字角色的脚本模块模块说明说明当收到“开始”消息时,“数字”角色:1、初始化时间、分数、初始位置2、清空上次生成的随机数列表3、填充新的不重复随机数列表,使用双重循环去重复的方法:先从1至最大数中随机生成一个数,如果随机列表中没有这个数,则将这个数加入随机列表,然后再生成下一个随机数,直到生成不重复的1-最大数的随机列表。这个比较好理解,但不是快速方法。162022-12-26编写数字角色的脚本模块模块说明说明当收到“开始”消息时,“数字”角色:4、初始化控制显示随机数的变量n=15、按照行数、列数设置,克隆自己。每
10、克隆一次,x坐标增加32(按角色边长)。每克隆一行,x坐标设置为初始化位置,y坐标向下移动32(按角色边长)6、在点击“数字1”前一直不计时,计时从点击“1”开始7、当点击到最大数之前,将计时器的数值保留两位小数,用时间变量更新显示8、初始化排行榜中搜寻用的计数变量m=19、如果当前的完成时间小于最快记录,则更新最快记录10、广播“挑战完成”172022-12-26编写数字角色的脚本模块模块说明说明当作为克隆体启动时:1、按照随机列表中的数字,切换造型(与列表对应显示随机数字)2、计数器增加1,为下一个克隆体取列表中下一个数字用。编程者要确保每个数的造型编号与数字相同当角色“数字”被点击时:1
11、、当点到与分数相同的数字时,分数增加1,并删除此克隆体。如果点到不正确的数字,不会有任何反应。182022-12-26编写数字角色的脚本模块模块说明说明当收到“挑战完成”消息时,“数字”角色处理更新排行榜的工作:1、判断最大数是不是252、如果最大数25,则根据m计数器,在5X5排行榜列表中对比当前时间是否小于排行榜中的记录时间,如果小于某个记录时间,插入该记录前面。3、如果插入新记录后,排行榜超过10行了,则删除末尾的记录,保持Top 104、广播“刷新5X5排行榜”消息,停止当前脚本,跳出循环5、如果5X5排行榜项目数小于10个,则比较到排行榜末尾还没有插入的记录,插入到排行榜末尾,并广播
12、“刷新5X5排行榜”消息 排行榜的更新,逻辑相对比较复杂。192022-12-26编写数字角色的脚本模块模块说明说明当收到“挑战完成”消息时,“数字”角色处理更新排行榜的工作:6、判断最大数是不是367、如果最大数36,则根据m计数器,在6X6排行榜列表中对比当前时间是否小于排行榜中的记录时间,如果小于某个记录时间,插入该记录前面。8、如果插入新记录后,排行榜超过10行了,则删除末尾的记录,保持Top 109、广播“刷新6X6排行榜”消息,停止当前脚本,跳出循环10、如果6X6排行榜项目数小于10个,则比较到排行榜末尾还没有插入的记录,插入到排行榜末尾,并广播“刷新6X6排行榜”消息 6X6排行榜的更新,与5X5排行榜处理基本一致202022-12-26生成不重复的随机列表高级方法模块模块说明说明生成不重复随机列表的高级方法:思路:先生成递增的有序数列,然后再随机打乱这个有序数列。1、清空随机数列表2、按递增顺序生成有序数列3、获得一个随机序号4、按顺序交换数列与随机的序号对应的内容5、重复执行,直到交换一遍如下三句是交换两个变量的swap212022-12-26附录:游戏源文件资源文件为不包含脚本的游戏框架222022-12-26