陈新龙
荣道,一款益智游戏,以其多变、永无止境的特点,与魔方、钻石棋并称“益智游戏界的三大奇迹”。我们今天要做的数字华容道和传统华容道有一些区别。在《超脑》中,何猷君曾经在21秒内完成了4×4的数字华容道挑战。常见的数字华容道有3×3、4×4、5×5三种尺寸。3×3游戏界面共9格,需要从1到8依次排列8个数字;4×4有16个正方形。应该排列从1到15的数字。其实只要掌握基本的解题技巧,数字对游戏难度影响不大(图1)。1.剧本策划
我们以华容道这个最简单的3×3数为例。在游戏开始的时候,数字会完全混乱。然后用空位一次移动一个数,最后按顺序还原所有数。玩这个游戏的时候,只能通过移动盒子里的数字来打乱数字的顺序,而不是把数字拿出来随意放回去,这样可能会无解。网上有很多数字华容道。我们可以参考它们的外观和操作方式,用Scratch编程做一个。2.材料制备添加一个自定义的方形字符,在方形中填入8个数字,总共9个形状。添加游戏胜利(你赢了)的背景,保留小猫角色。3.绘制界面我们使用小猫代码来完成界面布局。首先将方块按顺序放入预设位置,创建两个列表分别存储“X坐标”和“Y坐标”,通过循环将列表中九个方块对应的坐标依次存储(具体坐标轴见图1)。数字103、0和-103分别通过三次循环添加到X坐标列表中,Y坐标列表的内容分别通过三次循环添加到列表中(图2)。对方角色被编程,九个方块被克隆移动到预设位置。默认的初始克隆序列号为0,重复9次。克隆开始时,形状按要求显示,形状号等于序列号。克隆的位置是从先前创建的X坐标列表和Y坐标列表中提取的(图3)。
同时在方格中随机填入数字,建立“位置号”列表。数字1-9由随机数填充在列表中(图4)。4.与空白色方块交换位置
我们还需要创建两个自制的积木“利用位置号计算行列数”和“计算行列差”,为数字华容道的建成做最后的准备。当我们点击数字方块希望它移动时,这个方块必须紧挨着空白色方块才能改变位置。需要找到相邻方块的行列之间的数学关系,才能判断鼠标点击的方块与空白色方块之间的位置关系。最后我们通过计算数字块和空白块的行列差来判断空白块是否相邻。如果列号差加上行号差的值等于1,则表示点击的数字块和空白块是相邻的,可以移动。我们已经多次这样做了,使用临时条目的方法(图5)。根据胜利时华容道的位置号(1-8),可以确定每个号的行数和列数。例如,数字1在第一行第一列,数字5在第二行第二列...列数更容易确定。将位置数除以3的余数。如果结果等于0,则为第三行,其他为第一行和第二行。行数的确定比列数稍微复杂一些,第一行中的行数小于4,第二行中的行数小于7,其余的在第三行中(图6)。
确定了行值和列值之后,我们就可以根据行值和列值来计算出行次数和列数的差值了。当数字块的列数大于空白块时,列数之差为数字块的列数减去空白块;否则,差值等于空白色块减去数字块中的列数。同样,线数的区别也是同样的方法,根据数字块和空白块的线数(图7)。5.判断获奖条件。
检查是否恢复的方法其实很简单。当“位置号”列表中的数字按从1到8的顺序排列时,将触发一个成功的图片(图8)。虽然制作数字华容道的难度不低,但这是一款做好了可以玩很久的益智游戏。玩华容道要掌握整体解题的方法,尽早部署,尽量在最短的时间内将棋盘上的数字方格恢复到原来的位置。
评论列表()