粉丝64获赞230

好今天我们来做这么一个小游戏啊之前呃这个玩具我自己也有啊但是我把它要搬到呃 scratch 里面来做啊他就是一个数字我还用到就是这里呃他的数字你要把它摆回一到十五摆 摆好他的顺序啊但是他只有一个位置能移啊如何快速的移啊你也可以增加一些呃步数啊嗯之类的统计啊来做嗯我能不能做好呢好来展示一下我能不能做好哈哈这个玩起来也是要会玩啊 他错起来你会做了玩的时候另外一回事啊一二三三要跑到这里来那三怎么过去呢先让他转一圈 好哦不对三在这里啊四要过来哎这不就好了吗对吧好五要跑来这里 推推推推推五六我的七七也要上去好五先到位好六 哦八要回到这里来八怎么回去呢哎八怎么上去呢哎这个问题 我点快点看看你们能不能看懂哈哈好了他会有他自己的方法啊最后而且难点还在后面那至于怎么玩呢我们做出来之后你自己再研究一下这个 东西应该怎么玩他有什么技巧啊这个游戏啊比较简单啊。呃我大概就分三节课来做啊应该很快就能做完。那我们开始来做一下吧。啊那我们现在来开始做这个小游戏啊一开始第一步还是猫大哥拜拜啊把它删掉啊然后我们复制一个 首先我们要绘制一个就是我们的数字卡片啊就数字卡片啊这个名字改不改无所谓啊数字卡片也非常简单啊我们就画就行了啊 啊我们画呃画正方形啊正方形啊,我们中间,嗯,可以画大一点啊,这里的颜色我们稍微调啊,我们用个灰一点的底吧,一点点灰的,对吧?然后呢我们在中间写数字就可以了。好,我们这里写数字 好一哦,这个颜色改回去 on it 啊,我们可以调大一点啊,把它放在中间啊,这个应该差不多了啊,我们把这个造型名字改成一。嗯,然后呢我们先复制啊,十个出来啊,我们一共需要十五个啊 你你复制十五个出来也可以。好,我们先改了前面的一到十啊,把这里改了,改成二三 四五六七八九。好,为什么我我,呃 先复制到第十个呢?因为第十个啊,这里要稍微调整一下啊,因为他会摆出去的啊,然后第十个之后呢,我们再从第十开始复制啊,十一、十二,十三, 十四、十五,我们需要到十五个。好,我们同样的把后面的改一改,这样子的话你的十一十二就不用挪位置啊,否则你一下的都要挪一下,把它挪到中间去 啊。到目前这一步都非常简单啊,我们就是把十五张卡片啊,都把它的造型都放出来,对吧?我们把它弄好就可以了。那就是说第一步啊,把这个卡片弄好,第二我们把它放出来, 对吧?啊,那当然放出来,他肯定是用克隆体啊,我们先把它放出来啊,这个是本体啊,这个本体我们现在先 讲个最简单的,嗯,本体啊,如果你大小需要调节的话,你要加这一个,如果你不需要不需要调节,你可以不理他啊。然后呢?呃我们把它呃本体隐藏起来, 对吧?本体隐藏起来,那我们待会克隆的时候啊,我们直接把那个也先写了,克隆器启动的时候我们把它显示出来。 好,那我们,呃待会怎么克隆呢?这个位置啊,你可以随便调啊,反正尽量在中间就比较好,因为这个控制中间也不好调。那你大概在中间就可以了。那我们把它移动到这里来。 好,移动到这里,我们慢慢来调啊,移动到这里,然后呢?我们,呃一行一行来,我们是每一行有前面三行是四个,对不对? 呃,那我们重复四次,我们每一次啊,我们单独这样子拿啊,放在这里吧,然后呢?我们放到这里来。是不是一开始就克隆,哎?克隆自己 克隆完之后呢,我们就让它,呃往右走, x 坐标增加。 好,这一个我们要作为呃尝试啊。呃,先来个五十五看一看吧。啊? 我们来运行一下。嗯,这里你看它贴在一起了,说明这个五十五不够啊,我们调到六十 这里你针对你的大小啊,调到他差不多就可以了。嗯,有点点缝就可以了。好,这是完成了一行,对吧?那第二行。好,我们这样就知道了。我们刚才画的是正方形啊,所以这个六十待会就有用了。那 我们画完一行是不是让他重置到左边去啊?就是这个这里的负一百,那我们就把 x 坐标设为负一百,然后呢往往让他往下移一下, y 坐标增加,让他走到下一行,让他减六十,是不是下一行?那这样子他就来到下一行,那这里呢?这里就完成了一行。我们是不是要让他做三行啊? 好,我们让他做三横,看看现在是什么东西。哎,你看他是现在是这样子的。呃,三四十二,是不是我们后面还有三个格,因为我们不是满十六个格的,我们是要画十五个,所以呢后面的三个我们单独再把它做一做。 好看啊,这里是完成了,我们刚才已经完成了十二个,那下面是不是还要加三个,对不对?我们 在这里后面再加三个,接到后面就可以了。好,我们来运行一下。哎,你看十五个就做好了,看到没有?这里十五个就做好了。好,但是呢,我们,嗯, 这里他需要是不同的号码。哎,我们能不能这么做啊?让他,呃,随机啊,随机,就是说当他生成的时候,我们让他换成一个一到十五的随便的造型,我们可以这么做吗? 哎,他是不同了,但是呢他偶尔有些相同的,而且呢我们找不到我们的一到十五,对不对?好了,这里呢可能有很多种方法啊,我们我这里就呃想了一个,可能理解起来容易一点,但是实际上也是有点,用什么大用大炮来打蚊子啊。 好,那我们这里怎么来确定让他不重复呢?那我们就拿一个列表来把这十五个编号写出来,然后把它列好。好,那我们在这里就说每一次游戏开始的时候,我在这里插一个字字积木进去把号码 排序啊,就说让他在游戏开始的时候做这么一个事情。 好,这个事情要做什么呢?嗯,我们单独来研究一下,首先我需要把嗯,一到十五先放进一个列表里面。好,我们现在去建立一个列表 号码,我随便建一个了啊,就是说这个号码呢,我们每一次游戏开始的时候,我们把号码先清理干净, 然后呢我们需要把一到十五放进来,对不对?哎,一到十五,那我需要建立一个,嗯,一个变量来给我报数 啊,给他给我一个一个报数。首先我一开始先把报数设为零,然后呢我把它不停的增加,然后把它把它往里放,那我是不是要重复十五次啊?因为我有十五个数字啊,我让它重复执行十五次, 每执行一次我们就让这一个变量啊,让这个报数增加一,增加一之后呢就把这个数字放进去,哎,我们的号码里面 把这个报数放进去,你看我增加一次他就变一把一放进去,再增加一个他就二把二放进去,对不对?好,我们运行一下看看,你看现在我们把一到十五全放进去了,而且是 按顺序放进去的,对不对?一到十五,好,那这个游戏呢,就需要我们把这个序号啊给打乱,对不对?好了,那我们下面如何把它打乱呢?打乱也有很多方法啊。嗯, 我用一个简单的方法,就是,呃,搞一个随机数,每一个从一到十五号,每一个号码都给他都 呃跟任意一个位置调换一下数字,就换位置啊,换位置我们需要有什么呢?首先我要有一个随机数,就是说我随机出来的随机数,我要暂时把它记录下来,而且呢我需要有一个, 好,我们写的明白一点,暂时记一下,好,记一下这个是什么?这是这拿来干什么呢?好,我们下面 属于这里就要打乱他,怎么打乱他呢?那我们同样的也是从,呃,从零开始啊,我们继续用这个报数,那我们执行十五次。好,这个丢掉就是说我们 现在,你看我们慢慢来,这里现在是零的,我们现在增加一之后是不是对应的就一号啊?好,一号要跟谁换呢?好,我们现在来给他随机一个,我们一到十五,他有可能随机到自己啊,但是我不相信每个都数的。那么巧啊,首先我要获得一个随机数, 把我们的随机数先随机一个出来,就例如啊,我们随机出来啊,我们让他随机一下 这个随机数啊。我,我举个例子啊,如果我们现在随机到啊, 随机数,我们随机数来,例如一个是十号,对吧?那我们现在要做的事情就是把一号的内容, 呃,就是第一位啊,就是说第一个格应该写清楚啊,把第一个格的数值 跟第十个格的数值调换啊,换位置啊,我们要做的就是这样子的事情啊,你像现在我随机到十,那我们呢?调换位置呢?我就需要有一个,呃,这一个 暂时,暂时的数字暂时记一下,我记一下谁呢?嗯,我先记一下第啊,这里现在的第十个,那我们把第十个呢找出来啊,号码里面的 我们刚才的随机数,那现在是不是第十项啊?第十项我们先让他记一下,他记下来他就不怕他丢了,不怕他丢,那我们就把它替换掉了,那我们就把 这里,对吧?我们把这里的,我们刚才是不是说把第十个替换掉?我们现在的随机数就是把第十项替换成什么呢?我们把它替换成我们的第一项,我们现在是在报数里面的第一项, 我们要把现在就把第一项塞到第十项里面去。好,第十项没了,第十项跟第一项一样了。好了,那然后呢,我们现在再把呃 号码里面的第一项,第一项变成谁呢?就是这个暂时记一下的这一个, 这样子,呃,第十项就会跟第一项互换掉啊,那这样子就换过来了,这就换了一次,那我们继续这样子,让他一起干十五次,让他就把它换过来。好,你看我把这里运行一下。 好,我们来看看这一个列表,你看一到十五还在里面啊,但是呢,他每一个他的位置就很随机啊,我也不知道我随机到什么, 他就是把他每一个啊,就说他随便跟一个换一下,第二号随便跟一个换一下,第三号随便跟一个换一下啊,他就把他打乱,这就是我我想的一个随便打乱的一个方法。好了,有了这么一个,就说我每次, 我每次一开开始游戏就会把这一个号码打乱啊,你看我运行一下这里就会有一个乱 的号码,我乱的是用来干嘛呢?好,这里呢?呃,还有这里已经用完了,我们再一次把这个报数设为零,设为零我待会用在哪里呢?因为这里我已经用完,他现在还是零,那我在这里用。 当我们每生成一个克隆体的时候,我们把我们的报数增加一对吧。第一个克隆生成是不是他对应的就是这个一号,我让他把一号的这个取出来,那我们就把他的造型换成,换成第几个造型啊? 换成我们的这一个列表里面变亮,我们这个列表里面的报数第几项?你这第一项,第一个那就是五号,你给我第二项呢,就把它给我 切成九号,这样子他们换成了造型,他就不会重复,他是按照这里来的。好,我们运行一下。好,我们来看看啊,你看我一号就是二,第二个就是十,第三个呢?六,第四个呢?九,你看他就是按照这里的顺序啊,你看最后一个是五, 对不对?这就是我们啊。安排好一到十五,现在你可以检查一下啊,他是没有重复的,这就是我们把这个游戏啊,这个,呃东西给他立好,就是我们游戏的开端啊,把它立好。好,那这个游戏的第一大步就已经完成了,我们 我们明天会接着编,如何来啊?操作他。那今天就先讲到这里,我们明天继续,拜拜。

好,实际上啊,这个游戏我们到现在啊是已经可以玩的了啊。好,那我们先来闻一下啊,看看我能不能快速的把它弄好。一二三四在哪四在下四怎么上去呢? 好,这样子就完成了,现在就是这样子能玩的了,但是如果呃要判定胜利的话,这只能人工检查啊,你玩你自己给自己检查啊,如果我们平时的玩具都是这样子,但是我们希望让 呃电脑自己来跟我们判定啊,那如何让他判定呢?我们我这里有一条思路啊,就是说 这里应该排列好了,而且呢我们每一个呃数字走的位置都是固定的啊,加六十减六十,加六十减六十说明呢他的位置是固定的,那我们就就来 呃记录下来一在什么位置,二在什么位置,三在什么位置,如果全部位置都对那我们就算胜利了啊。 好,那我们怎么来?我们先来获得他的所有的位置啊,这样需要我们来玩一次啊,玩完之后呢我们怎么弄呢? 那我们来到这里我们去一个空白的地方,那我们需要记录下来哦,为了记录方便一点那我们就简单的我们建两个列表,一个就是他们的 x 坐标,一个是他们的 y 坐标。好,就说答案 x 坐标,就 说每一个的 x 坐标还有个答案 y 坐标。嗯,其实你也可以写成同一个啊。呃,我想这个游戏都快完成了,就多一个列表无所谓啊,重点就是要简单粗暴啊。 好,那首先呢我先要把呃这里先填填十五个数据进去啊,这里不用写在呃我们的程序里面啊,我们另外手动写一写就可以了。 好,我们运行十五次,十五次。然后呢?我们把什么什么加入进去啊?先把个空的加入进去啊?什么东西加入到 y 坐标。好,刚才这里点了两下,那我们需要把它 清理掉,好,删除掉,好,删除掉,我们点他一下,他运行一下,他就没有了,现在两个坐标都没有,对吧?那我们运行 十五次,我们点一下这里。好,现在可以看到啊,我们这里面有十五个数据。十五个数据啊,实际上呢,我就希望他待会对应的就是我们十五个坐标。好,我们先来获得这十五个坐标。 我不能从这里发指令啊,因为这里有十五个人,这个角色,现在看看是一个角色啊,他实际上是有十五个角色在这里啊, 所以呢,我如果从这里发消息的这十五个人在发消息,所以呢?我建一个空的,呃,角色出来。嗯,这个你可以不改名字也可以改的啊,他就是一个指挥。那我们指挥一下啊,那我们教你 这里随便发一个广播,一个消息一啊,这里你写也行,不写也行啊。这个没用的,我只是用来这个过度用的,我用来计数据的。那这里当收到消息一的时候,这时候呢?收 到消息的是有十五个人,对吧?十五个人。那我就把我们对应的啊,那我们就问了啊,就是说我们拿出你的造型编号,因为现在他们都有自己的造型编号啊,那我们就把它 取代掉,把什么什么?把这一个 x 坐标啊,还有一个 它的 y 坐标,对吧?它的第几项啊?如果你是一号,你就去换掉第一号的东西, 对不对?你是一号就换掉 d 号,把它换成什么呢?就换成我们这个一号的 x 坐标,如果你是还有呢?把你的一号的 y 坐标换成我们的 y 坐标, 就是说,呃,每一个克隆体收到了,他都会对应自己的编号去换掉我们这里的东西。好,我来这一边,我刚刚刚才这边有个消息,他来发,按他一下。好,这边呢,每一个克隆体都会收到消息以后他换掉了啊,看到没有? 我们这里换掉了,例如你看看啊,这里有可以看得出来什么呢?首先这里一号,它的 y 坐标 二号, y 坐标三号四号,就是第一排他的 y 坐标是不是同都一样的?一样高度 y, 对不对?但是他 x 呢?他是减,减六十,减六十啊,哦,不对,加六十啊,加六十往右,对吧?你看看。所以呢,这里现在对应的就是, 呃,第几号对应的,呃坐标,它在哪里? x 坐标在这里, y 坐标在这里。哎,那就是这里就是它正确答案了。好,现在这一个我们刚才写了这个东西就可以不要了,你放着也无所谓啊。啊,这个可以丢掉。 好,这就是现在我们这个两两个列表,我们就对他不进行处理了,他已经有答案了。好,那我们是不是那就要问了,机器要帮我们判断。每一次我们点击完啊,就这里,你看我们克隆体每一次点击完 到了这里,我们这不走动了,那我们这里给他,呃,点击完我们让他在这里广播依据。 好,这里有个新问,他就会自己问一下,我们都对了吗? 就是我没按一下,他按完他移动完之后都会都会问一下问一下啊,你可以理解成啊,这个角色,我们空的这个角色叫,呃,裁判吧, 对吧?裁判他就会收到,他就问我们问这裁判我们都对了吗?好,这时候呢,你来问我对不对?哎,那我们我就作作为一个裁判,我就来统计一下,我们给自己弄一个变量,对了多少个, 好,那我们每一次都会从头开始算对了多少个啊,我们先把这个对了多少个, 对了多少个设为零个,然后我就对你们这十五个学生到了问一句,我又我又反问过来了啊, 你们各自检查一下,好,而且呢,呃,我知道你们会检查很快的,所以我只给零点一秒钟时间,你们检查 好,那这时候这一零点一秒钟这边在干嘛?呜呜呜。你,你来叫我们这个卡片自己检查是吧?那我就会说, 呃,当你收到叫我们每个人检查一下的时候,这时候呢,这是十五个克隆体啊,都收到这个消息的,那我们就来干了啊,那我就拿出我自身的这个造型编号,我就来问了啊, 我的 x 坐标,我自身的这个 x 坐标等不等于呃我这 一个他在我们的答案里面这个答案的第几项,因为如果造型一号我是不是去看第一项啊,是吧,我就问一下,哦,我在我跟这一个对不对? 我是我的,呃,一号,我的 x 坐标是不是跟答案里面的一号的坐标一样啊?同样的,那就会有 也同时要问啊,我们的 y 坐标是否跟我们答案里面的 y 坐标啊,一号的 y 坐标相等,如果这两个啊,我们写一个余,如果这两个 都对了,都对了,那就是说这里写一个如果,如果这两个你的 x 坐标跟答案里面的 x 坐标相等, y 坐标跟 y 坐标相等。 呃,如果对了,那我就说,老师,我这里对了,请给我们增加一分,对了多少个增加一分, 这样子呢?每一个都给都会给自己检查一下,这十五个人都会检查一下,分别对老师进行报数, 对吧?好,这老师是说,哎,等待了零点一秒之后啊,你们报完数了,那我们我来看检查一下你们报上来的这一个,现在这个对了多少个这个变量啊?如果你等于十五个,十五个都对了, 那我就呃恭喜你们,呃,我们,呃选一个声音,我们的 win 的声音。好,那我们就呃 拨一个 win 的声音。好,同时啊,这里我们判断完,我们告诉那边啊,恭喜恭喜啊,我们给那边发一个消息啊,我检查完了,我发一个消息给你们听一下啊,恭喜恭喜, 全对了,对吧?然后拨一个声音,拨完之后呢,我们就,哎简单的来结束这个游戏了。 那这里我为什么要呃发这个消息呢?我就是要让这一边的卡片, 当你收到恭喜全对的时候,我们就停止 这个角色的其他脚本,就是让他不要再移动了啊,你不要再移了,因为你已经对了,你别移了,移了你待会就不对了啊。 好,那我们来试一试啊,因为我现在没点过,我一点好看到没有,现在已经告诉我,嗯,我现在把这个变量给遮住 啊,所以现在可以看到我对的十四个,你看如果我再把这个拿下来,那他又会少一个,对吧?他告诉我是十三个对吧?哎,你看我对上来就十四个如果我我把它怼过来,好, 胜利结束了啊游戏结束对吧。好,我们可以再来试一试看啊我们重新开始游戏。好,只要我一点我一点他就会进行这个就会变啊好,只对了一个啊谁对了 要一二三哦啊对了好,那现在我慢慢的把它凑好一上 去好一对了啊对了两个还有谁的啊五也对了对吧你看他每一步都会帮我检查我到底对了几个。好那我们继续三和四。 好三也对了好四怎么上去 哦是好,我对了这已经对着几个后面还有一个对的 哦五六七八好,不管我现在先对了后面还有一个对的哦十一对了好,不管七八上去上去 好一到八对了后 这个十也对了所以一共有九个十十一九十十一十二在这里的。 哎呀这下面这几个不对怎么把它纠正过来呢?好,先把这个几个挤在一起十二十三十四好,对了, ok, 完成。好这里呢我会给大家提出一个疑问因为我也不知道啊因为我这个随机数啊这个随机数呢啊我试过几次啊 到了后面会出现呃最后的十四十五倒过来了然后呢我没办法把它给弄回来是不是这个事情是无解的呢?好,等一下我 快进一下然后找找一下这个答案。 two hours later 由于我用的是随机数的原因啊我不知道是不是会出现这种情况当我 一到十三我都摆好了就剩一个十四十五他倒过来了我没办法把它调过来我试了很多次,那这一个 是否能真的在我们这个华容道里面啊?他自己我们切来切去,这样子切来切去能否把十四、十五给换过来?能不能做到呢?这一个到底是因为这是一个无解 的题,还是我不会?这个问题交给大家请教教我,他能不能把它给弄回来?如果遇到这种情况我们怎么赢?好,那这个游戏就做到这里。那希望你们玩的开心,那我们下个游戏见,拜拜。

好,这就完成了第一部分游戏的开始第二步,我们是不是要操作他啊,要点他好点他如何让他走来走去呢?好,这里呢我们用,我就用一个简单的,就是用了一些碰撞啊,检测。 好,你看举举个例子,如果我点他,他能不能转到七这边呢?不能,因为他会碰到七啊,碰到十二,所以不能。哎,那如果这边呢碰不到就出去了吗?所以呢,我要在外面给他照点颜色啊,所以我来到背景这边,我来到背景这边,我们给他先画一个框, 我们现在就是呃将就的这里来画框啊啊,我们画啊,不是中间,我们画白的,中间画白我们的框画, 我们框画蓝色。 那先把这个框画出来, 这个画可以画粗一点。好,我们要留意,我们现在慢慢画,慢慢调整,让他套住,就是说从背景来将就前面我们就不用调啊啊,这个应该是正方形啊,我们可以画正方形,然后调他的大小。 好,自己慢慢调好。这个 ville 看不清楚,我们可以把它边框粗细调大一点 啊,我们现在用外面的框来将就里面,让他好看一点。好,大概这样子就可以了啊,边可能有点歪啊,这个无所谓。 好,我们画完这个之后呢啊,我们还需要把外面一大个框啊给他给弄起来。 那我们现在再画一个,我们再选一个正方形框,然后呢我们这里用呃,他的 中间把它调成这个蓝色,跟上跟这边一样。那我们画一个大的啊,这样子不是遮住了吗?不把它往后放,把这个白色的框把它往前顶,就是说他在前面,我们刚才画了一个大的在后面,这样子的话就能形成啊,外面整个区域啊都是蓝色 啊,如果你想这个前面那个好看一点,你也可以把那个边框颜色弄不一样。好,最主要这个我弄这个颜色是为了到时候他做啊,这个碰撞颜色的时候有用的。 好,那我们回来这里的卡片这边。好,那说明了。呃好,前面这些没有用了, 现在就是一个操作的问题,我们这个克隆体启动之后他会呃准备被我们点击,对不对?好,那我就他就有一个重复执行,然后呢?如果,那么如果什么 我点击他和我碰到他还有点击他的时候按下鼠标的时候,就是我点他的时候他要产生反应啊,我们这里要写个语,就是碰到他并点下鼠标的时候 我们要进行一个啊,要里面要做事情啊,我们把它放在这里面。好,里面呢?呃,为了避免我们连点啊,我们这里 有一个在这里插一句就说在里面要运行的事情,就说等待按下鼠标不成立啊,注意这个是条件了啊,让他按下鼠 标不成立,就是说我们点击它并且等待我鼠标弹起来之后就开始执行命令,对吧?好,执行什么呢?我们用一些很很简单的逻辑来做啊。呃,就是 让电脑以一个我们右眼看不到的速度啊,先去探一下路啊,左一一右一一看看他能不能移啊,给我反馈回来对吧?好,所以呢我这里写个积木自制积木探路啊,这个先探路, 注意这里一定要运行是不刷新啊,不能让让他看到我们探路啊,就说这里没点下之后都他就很快的去探一下路,好,怎么探呢?探完路他有结果,对不 好?我们我们返回一下啊,例如我们建立一个变量啊,例如就是说可走的方向 你可以用数字代表啊,为了明白一点,我越用用文字来代表啊。好,那他怎么探路啊?如果我点一个,点一个五,对不对?那你点我的时候他探路什么?他呢?好简单。 好,这里要留意,我们刚才是有,你看 x 坐标是加六十减六十的,就是说它移动一格用六十啊,对吧?好,我先向上啊,把 y 坐标增加六十, 增加六十。之后呢,就问一下他,如果你,如果你,呃,两种情况,如, 如果你是碰到了啊,碰到什么颜色?例如你碰到什么颜色呢?好,我们吸一下外面的蓝色,如果你碰到蓝色或者你碰到了另一个牌, 另一个牌是这一个灰色,对不对?你碰到外面或者碰到蓝色,都是说明什么?你走不通, 对不对?好,这里呢?啊,他说明他走不动,所以呢,如果我把这一个写成 不成立,就说都没碰到,都没碰到,说明什么?说明可以走,那就是说现在我就把,呃方向可走的方向,因为我是向上的,说明什么?上可以走,对不对?这就说明上面可以走 好,这里呢?呃,后面我为什么要再写一个呢?那就说啊,这里探完了,我就把它缩回来,对吧?那举个例子啊,如果我往上走之后呢?呃,碰到了灰色, 说明这里就不会不能走,所以呢,这个啊,那我们这里还要还要搞一个,我们探路之前要把这一个可走的方向设为零, 对吧?要,要么是零或者是空,我们写个空吧,对吧?是不是空?那你看如果碰,碰到他不成立,就两个都碰不到 啊。不,我移一下啊,碰不到绿色啊,碰不到蓝色,碰不到灰色。灰色。所以说明什么?上面是空的,那我就可以走上面啊, 就利用这一个东西。那我们同样复制,那我们先往下走六十,这里是往回走六十,这个就往回走啊。那我们现在可走的方向是不是往下走?可以走啊?就往下的,对吧?好,同样的方法。 呃,但是这里就不能用 x 坐标了,我们用啊。不,不能用 y 坐标,我们用 x 坐标增加六十, 再把 x 坐标减少六十,这个是往右走的。如果说哦,你右边能走,那说明了什么?右边是可以走的。好,同样的 减六十,然后这里返回来叫六十。就是说我现在用了这么一个啊,这里是王 左走,用了这么一个简单的一个操作啊,你左走一下,上下左右都给我走一下,对吧?你点的那一个都给我走一下,看看哪个方向能走,告诉我对不对?是不是很简单很简单粗暴的一个操作。 说明了我们这里走完之后呢,他有两种情况,要不就上下左右会会有反应,或者说例如我点这个一他是上下左右都得不出来,他就很仍然是空。好,那探完路那我们是不是可以走了?那我们这里也很简单,就说根据我们探路的 呃方向,例如我们现在可走的方向等于 等于了 sun, 那我们是不是 往上走啊?那就用把 y 坐标增加六十。 好,那我们这里是不是可以往他自己走了哦我们这里还给他呃加个声音啊这有一个声音呢啊就说能走的时候没移就一步我们让他播一个声音对吧? 好,那如果它是可以往下走呢那我们就让它 y 坐标减六十。好,同样的我们的它如果是往左走往左走那我们的 x 坐标 减六十如果可以往右走 那你就 x 坐标加六十。好, 这就是他的。呃点完之后他该该往哪走就往哪走如果他是空他就哪个都走不掉。好我们来套进去之后呢我们来重新开始一下游戏。好,看看我能不能点他啊。回, 哎你看我只要点他一下他自动就往那个空的那方向走了因为我没点他一下例如我点一下四他会 电脑以很快的速度上下左右的走一遍发现告诉你。哎我可以往上走然后呢就根据哦可以往上走啊那我就往上走 y 增加 对吧这样子我们就可以实行啊实现我们的移动对吧?我想怎么移啊但是你看如果我移这个呢他有反应吗你看我点这一个他的结果是空的可走的方向是空的但是我点这个呢啊可走方向是下看到没有所以这样子的话我们就可以 实现玩到的这种移动。好,那这个游戏做到这里呢实际上已经可以玩了我们明天还有最后一节课呢啊是用来自动的判定你是否完成啊是否做完了这个拼图啊如果你不需要那一个你现在就可以玩但是呢你要手动去判断啊一二三四五 一直到十五啊他是否啊一对了啊那就算是完成啊。对啊。好,我们今天先讲到这里,我们明天见,拜拜。

你小时候玩过这个吗?当时是从新史买的,好多年之后才知道这样的游戏叫划中刀。那时候还小,觉得这个游戏好难呀,每次都是瞎蒙着玩的。长大之后不喜欢新史了,觉得一会更帅一些。 今天偶然刷到了那张旧照片,索性就来做一个 squash 版的华融道吧。一辉版的华融道被我做的复杂了,为了方便大家学习,做一个数字版的简易教程。画方块应该会吧,写数字应该也会吧。把这样的数字方格复制十五份, 做出一到十五的数字方格来。我们来做一个四阶的划容道,因为有一个空格,所以只需要十五个数字格就够了。准备好造型之后开始编码,首先给他找一个初始画的位置,不用很严格,看着舒服就行。图纸造型是数字一,然后先来做出第一 长来,每次克隆之后,把 x 增加相应的长度,比咱们的方格的边长稍微大一点就可以。我的方格是六十,增加的长度是六十二,记得切换下一个造型。末尾多出来的是本体,不用管他,继续找来重复执行,我们是四乘四的。 对,再拿来一个重复执行四次。一行克隆完成之后需要另起一行,那就要调一下母体的位置, x 坐标归位,跟原来一样, y 坐标增加负六十二,两层重复执行,把它套起来。 末尾的本体我们让他隐藏来处理一下。最后一行呢?最后一个位置需要空出来,但把注意点调整。最后一行呢,不放在整体的循环里去绘制了,所以外层的循环次数变成三,而最后一行的重复执行也只需要三次就够了, 棋盘算是有了,接下来解决一下移动的问题。画一个加号造型的角色,大小呢,比我们的方格稍微大一点就可以了,目的是保证他跟上下左右相连的方格都能够接触上, 然后他的初始位置就是那个空缺的位置。接下来做点神奇的操作,在外观里找到虚向特效,把虚向设为一百,这个时候他就消失了, 你在屏幕上看不到他,但是呢碰撞侦测还可以识别到他,就跟隐藏是不一样的,现在是看不见,但是摸得着。回到数字方格的代码, 当他被点击的时候,做一个碰撞侦测,判断一下当前的方格是否碰到了刚才的加号造型,如果碰的到,说明这个方格是可以移动的,那就把方格移到 加号的位置上去,其实也就是空白的位置,这个时候加号本身还没有动,所以下一个问题是要把加号移到新的空白位置上去,建立两个变量 啊,分别用来记录原来这个数字方格,他的 x 坐标和 y 坐标,在这个方格移动之前,就把他的 x 坐标、 y 坐标用新建的变量存下来,这就是新的空白位置的坐标了。等到他移动之后发一个消息通知,我们的加号造型 一到新的空白位置就齐活了。这时候这个华融道游戏其实已经做完了,那我们可以后边的加一点美化的工作,方格移动给一个音效,如果误点了不可移动的方格,给另一个音效做一下区分,同时在显示上做一点特效作为提醒,这样就比 比较完整了,那美中不足呢?是我没有给这个版本做出自动完成布局的功能啊。一挥版本的化用道呢,是做了这个功能的,之所以没有做呢,是因为希望这个版本尽可能的简单,不用到那些数值计算。 那也不用到列表这样的比较复杂的东西。我还没有想好如何在不使用列表,不使用复杂的计算的情况下来实现制动布局。如果你有好的方法,留言给我吧。