Scratch第65讲:24点小游戏 想象版

来源:互联网 编辑:wan玩得好手游小编更新:2024-11-03 01:21:29 人气:


什么是想象版,就是CC哥光用脑子想了,没有真的编程!是不是有点尴尬,不过CC哥以后还是会抽时间把程序写出来的,大家放心。不过这一讲里可真的是只有想象,没有代码。

 

相信大家都玩过24点,CC哥就特别不擅长24点,我觉得24点就是跳跃思维的一种能力,能够迅速的尝试不同的算法,就是经验加跳跃思维的能力。CC哥的逻辑思维能力很强,但是跳跃思维确实不够,而跳跃思维往往也是人生发展过程中的一个重要能力。因为跳跃思维往往能帮忙你打破现有的思维框架,找到另辟蹊径的解决方案。不论是搞科研,做生意,甚至玩金融,跳跃思维都是你致胜的一个有力武器。

 

不说废话,CC哥今天想用脑子想想编一个Scratch24点游戏,两个关键词:一是用计算机来算24点,一是用脑子想,而不是动手做。

 

之所以用脑子想,而不是上来就动手,是想告诉大家,知道怎么做,比动手做要重要很多。让我们一起来尝试一下这个思维的旅程吧。

 

用计算机来做24点,首先就要限定好条件,编程是严谨的,没有边界,那么就没有程序。我们平时做事情的时候,往往会忽略一些条件,其实条件是真实存在的,只是因为是常识,我们把他忽略而已。好比如果我问你早上醒来第一件事是什么?有人说起床,有人说上厕所,有人说洗脸刷牙,五花八门的答案,但实际上醒来的第一件事是睁眼!但是因为睁眼是常识,common sense,所以很多人就把它忽略了。而计算机不行,他需要我们在做每一个程序的时候,都要先做第一件事,把边界确定下来,如果不这样做,你的程序就可能有bug了,想象一下,早上醒来,你闭着眼去上厕所,刷牙会有什么后果。



如果想免费获得CC哥的讲座中的程序代码以及游戏素材,可以通过扫描二维码关注《跟我学Scratch编程》,然后点击获取代码即可。


 

24点的编程边界是什么:先确定规则:

1:数字,我们只做1~10。(其实也可以做到K,无非是多算几种组合,计算机也没所谓的)

2:运算方法,我们只用加减乘除(除法只算整除)的四则运算的整数运算。(排除乘方开方以及分数运算)

 

限定这两个条件是因为,这是我们正常经常玩24点的规则,另外编程也相对简单些。

 

有了规则,那么最关键的问题来了,算法呢?计算机该用什么方法来算呢?

 

如果是人,通常这会我们首选用的是经验和技巧,这里面有一些固定的思路:

 

常规的好比:

3*8=244*6=242*12=2424*1=24

频率略低一些的:

25-1=2423+1=2422+2=2415+9=2428-4=2436-12=24

有了这个思路,再想法子把四个数字尽量往上面的去靠,看能不能找到解。

 

但是计算机不会象人一样思考,计算机最厉害的就是速度快,但是并不聪明,所以计算机就用最笨的方法来做,穷举法!把所有的组合都来一遍,就知道答案了。

 

根本宗旨知道了,那么穷举法怎么做呢?仔细思考,其实这就是一种排列组合的穷举,只不过就是一种相对有些复杂的排列组合,如果把这个排列组合的方法想清楚了,那么程序就很容易编了。

 

24点的组合方法看似很乱,其实还是有规律的,首先:

124点最终是由两个数字运算得来的,我们假定是AB

2:那么AB的任意一个数字,要么是4个初始数字之一,要么是其中两个数字,或是3个数字运算得来的,我们假定这个由三个数字运算得来的数字是C

3C如果是由3个数字运算得来,那么这个C也可以理解成其实是由2个数字运算得来的,其中一个是初始数字,另一个是另外两个初始数字运算得来的。



理解了之后,我们就可以考虑用程序怎么实现这种算法了:

1:给出的四个数字中,首先调出两个数字来,由这两个数字进行加减乘除所有运算,再把得出的数字跟剩余的两个数字组成三个数字。

这样一共会得到多少组是3个数字呢?48组!

解:4个数字取两个有多少种取法呢?小学学奥数的就知道,用C(4,2)的公式做,C(4,2)=A(4,2)/A(2,2),答案就是6种。但是考虑到取出来的数字,减法和除法还是有顺序的,所以取出来的两个数也需要考虑顺序,所以还要乘以2。所以一共有12种。考虑到取出来的数字要进行加减乘除4种运算,那么我们一共得到48组三个数字,所以我们的问题就变成了如何把这12种三个数字来通过运算得到24的结果。

2:如果只有三个数字,我们该怎么做呢?还是取出任意的两个数字,进行加减乘除的所有运算,再把得到的数字跟剩下的一个数字组成两个数字。

这样一组3个数字可以得到多少组2个数字呢?24组!

解:一样的C3,2),答案是3,考虑取出的两个数的顺序再乘以2,所以可以有6种取法,然后考虑到加减乘除,那么就是242个数字。

 

3:如果只有两个数字该怎么办呢?

到这一步就只有两种情况了,要么AB做一遍加减乘除,或者反过来BA再做一遍加减乘除。所以一共有8种可能,如果8种可能中有得到24的运算结果,那么就成功,但是如果没有得到24的运算结果。

 

所以一共也就是48*24*8了,一共有这么多种情况有机会组成24的运算结果。这对计算机是很小的计算量了,秒算!

 

现在大家对编程思路已经比较清楚了,那么用什么技巧呢?

1:用自定义命令的嵌套组合

2:取随机数的技巧

 

技巧有了,那效果呢?

124点肯定用扑克牌来表现啦。所以需要在网上找找扑克牌的造型。

2:显示答案可以用个角色去说出答案,也可以用个列表变量显示,或者做漂亮点,用造型来表现的漂亮些。


该想的都想差不多了,就剩动手做了,要不大家自己也动手做做试试。


不过事先说好,可能CC哥想的有bug,CC哥也不知道,只有过几天CC哥编程验证了才知道哈。



·END·

跟我学Scratch编程

不用花钱成为Scratch高手

长按二维码关注 





历史课程:

Scratch第64讲:英雄难过棍子关的棍子

Scratch第63讲:小动画—我和我的祖国

Scratch第62讲:火柴人PK

Scratch第60讲:赛车-CC哥版

Scratch第58讲:植物大战僵尸-CC哥版

Scratch第五十六讲:自动走迷宫

Scratch第五十二讲:开心消消乐(CC哥版)

Scratch第五十讲:超级玛丽(一)

Scratch第四十六讲:台球(高级版)

Scratch第四十四讲:微信跳一跳(一)

Scratch第四十二讲:别踩白块儿

Scratch第三十九讲:俄罗斯方块

Scratch第三十八讲:英雄难过棍子关

Scratch第三十五讲:捍卫萝卜(一)

Scratch第三十三讲:钟表小程序-电子钟

Scratch第三十一讲:自动走迷宫

Scratch第二十九讲:经典系列——贪吃蛇



欢迎玩家到【wan玩得好手游】查看最新变态版手游攻略,只需要在百度输入【wan玩得好手游】就可以浏览最新上线送满vip的变态手游攻略了,更多有关BT手游的攻略和资讯,敬请关注玩得好手游!

更多...

热门推荐

更多...

相关文章