粉丝433获赞6217

同学们大家好,今天我们学习的内容是排列小星星,好简单,复习一下上节课内容啊, 上一课我们学习了,嗯,两个,一个是这个猜数字小游戏,我们用到了一个 ram 和拍摄里面自带的 radent 函数随机生成的一个整数,对吧?然后还学了什么知识点是 input 获取键盘,键盘值的这个函数 和这个三次的 if 判断。 if 是什么判断是条件判断,对吧?如果,那么怎么怎么样和 vr tro, vr tro 循环呢?在 我们之前有一节课叫做猜猜拳,就是石头剪刀布啊,那一节是不是也说过无要处,一直循环是不是?那如果我不想循环,这怎么办? 输,输出一个特殊的字母,然后唤醒 break 关键字,结束循环,所以要记好了, break 是修在英文当中是休息的意思,中断的意思,那在这里呢,就用的就是什么结束循环,如果想继续循环呢?用的什么 ctr 好?第二个呢,就是水仙花术和 c 玫瑰树,这属于呢在数学当中的一些特殊数字。那什么是水仙花术? 他是这样解释的,就是一个三位数,每个位置上的数字三次方之和等于他本身, 也就是说个位的三次方,十位的三次方,百位的三次方加在一起还是等于这个数,那么就是什么水仙花树,那同样的四位四叶玫瑰树也是一样的,如果同样忘记的话,可以把上节课内容再看一遍。那么不管是水仙花树还是四叶玫瑰树, 他们的重要的知识点就是如何提取位置上的数字,比如说我想提取百位上的数字,怎么提?我想提取千位上的数字,怎么提, 对吧?那这里有两种方法,第一种是用 int 括号取整,然后百分号取余,这是第一种。第二种呢,用的是双斜杠取整,然后再取余。那么这是我们上一节课的内容,那今天呢,我们学习这个图案,用小星星来排图案, 好看到了吗?我这里有三,有三个,是不是?第一个是左边的,是直角的小星星,第二个是右边,是直角,第三个是什么?嗯,等腰,或者说是金字塔类型的都可以啊。 那么首先看一下做左边的,先做第一个,怎么做出来呢?那有的同学这时候肯定想到了,那很简 简单,我们用 print, 因为老师说过 print 是什么输出,然后呢? print 还自带什么换行是不是?那有同学是不是就想用这种方法, 对吧?那就是比较麻烦一点,那因为今天给的是十行,你还可以用,那如果我给你一千行怎么办?你也用这种方法吗?那肯定是不行的,那我们找一找规律好不好?首先我发现从第一行到第十行,他们的图案都是一样的,都是什么 星星?像这种小星星,对吧?那这个小图案我们知道在我们拍摄里面,他可以比作什么成号,是不是? 但是加上引号,他就是什么字符串了,那么发现他除了每行比上一行多一个之外,其他的没什么改变,通过这种类似的图案,对吧?大家都一样的图案, 那我们很自然想到了什么?重复执行,对吧?十块钱,你们也说过重复执行,是不是?那拍摄里面就不叫重复执行?拍摄里面叫什么循环?那循环呢?说到循环呢,有两点,第一个负循环,第二个是无药循环, 是不是好 for 循环,无限循环,你们自己选,随便选个做啊,我今天用 for 循环先给你们做一下好不好? 好 for 循环好,第一个我们想循环肯定是要有一个变量的对不对? four 循环格式不能忘记了啊。好,在这里要注意一下,它总共是十行,所以我要用十一,为什么?因为 four 循环它属于范围循环,它是取左不取右的,所以取不到十一。好,我们今天用的什么星星?是不是打 打引号的?就是字母叉,不打引号代表乘号,我们乘以我们今天的变量 i 就可以了,看是不是就做出来了。当然你也可以用什么 无药循环来做,那无药循环呢?就首先也要建立一个什么变量 a, 比如说 a 等于一,然后 will a 小于等于什么十, parent 输出信号引号乘以这个变量,但是记好了,每循环意思 a 的自变量都要加一 好。两种循环方式是不是自己?我刚刚教你们是用第一种方法,你也可以用第二种方法再试一下好不好?刚刚教你们是什么?正向直角三角形,那反向怎么办?像这样反向怎么办?给你提示了,是不是反向,我们是可以这样看的,你看啊,他这个反 像,我们把它给补充,用空格给它补充起来,那这时候我们发现左边是不是有个倒过来的直角 空格,是不是图案?然后呢,第一行呢,是不是九个空格加一个星星,第二行呢?八个加两个对吧?一直到最后零个加十个,是不是,对吧?那这样的话, 这个空格我是不是也可以把它意味着一种变量?只不过这个变量是空格,但不是真正意义上的空,什么都没有的意思,知道吗?只是一个空格,那这样话也很简单,那我同样也可以用什么变量来做,是不是? 好,我给同学们在这里可以暂停一下,然后你可以自己思考一下怎么做。好吧,那我这里就直接说了。好,还是一样的啊, four 循环和 vr 循环你们自己选,对吧?那我这边我可以用 four 循环做,当然如果你们想用 vr 循环,你们可以用 vr 循环来做。好,首先我们总共是不是有十行?是不是?而我的星星呢? 我的星星呢?它是是不是从第一行开始变的?是不是从第一行开始变的?比如说 for i in 软件。 好,那这里你可以直接写十一,你也可以直接写什么 a 加一都可以,因为 a 是十嘛,十加一就是十一嘛, 对吧?好,第一个 i 它是我们星星的变量,是不是今天空格还有一个变量,比如说上面有 a 的,是不是?我就用 b 吧。那 b 呢?第一行是不是十个空格?九个空格啊,总共是十个。九个空格加一个星星,是不是总共是十个?那理论上我是不是用十减什么什么?但是今天我第一行已经给你 a 了,是不是我直接用 a 来减就可以了? a 减我们的什么 i? 因为 i 从一开始,当 i 取一的时候,那么就是 a 减一, a 等于十,十减一等于九,当 i 取三的时候,那么就是 a 减三,是不是?当然你这里不写十,不写 a, b 呢也可以直接写十,也没有问题, 对吧?但只是为什么今天写十呢?因为今天我用的就十行。那如果某一天我用一百行怎么办?那这里就变成什么一百了,好,输出。 那刚开始他是空格,是不是,对吧?你们看一下这是不是空格,好,给他空一格,那空格 乘以我的 b, 因为 b 第一次是九,你看 a 减 i, i 是一, a 是十,十减一等于九,九乘 b, 那必须代表九个空格吗?好,这时候我们要进行什么不换行?如果你再用 print, 在这里 再用 print 的话,那么它就会什么自动,什么换行了,是不是? 那不换行之前我说过,在九九乘法口诀表里面说过的吧,叫 the end 加引号,那么就是什么不换行。好,我们运行一下看看对不对啊? 好,你看是不是,对吧?当然你也可以用什么,用 we are 也行,那 we are 的话,那同样的跟上面一样的,对吧? a 等于十,然后鉴定两个变量对不对?你们可以自己去试一下好不好? 好,我们看一下啊,它组成原理就是第一行就九个空格键加一个星星键,然后最后一行就是零个空格键加十个星星键,是不是?那么今天我们的空格数用 b 实减键,嗯,也行啊,实减键这个变量是无所谓,你自己取。 好吧,当借取一时,我们就打印一颗星星,九个空格加一颗星星,当借等于八时,就打印什么八个星星,是不是?所以说 a 等于十呢?我们需要设置它的行数十行,然后从第一次循环开始,循环十次,那就不 做了,因为循环结束了就停止了,明白吧?好,再一次说一下啊, for 循环,这个也就是范围循环,它包含 a, 但不包含 b, 因此我们真的要给点什么?给它加一, 给这个 b 加一,那 print 呢?语句呢?我们会自动换好,所以要使用 and 就可以使不换好,这个都说过了,是不是?我希望你们能记住啊?好,来到最后一个最难的这个叫金字塔小星星, 那么金字塔小星星怎么做呢?这里我给同学思考一下,你们可以暂停思考一下,我就直接说了啊, 好,精打小细。我们是不是可以把它分割成两个 这样的直角三角形, 你看能看明白我的意图吗?我们是不是可以直接把它分成两个直角三角形?是不是跟刚刚的是不是相反?那现在有一个问题,就是我怎么就是怎么找到, 怎么找到这每行的关系,你看第一行是一个,第二行是三个,第三行是五个,第四行是七个,是不是?那他们的关系是什么呢?随着每一层的增加,星星的数量和每一层的层级有什么关系呢? 有谁知道吗?好,那是不是有这样的一个关系?我直接说了,每一层它的数量是不等于 二, n 减一啊?比如说第一层,当 n 取一时,正的 n 一定要是大于等于一的,知道吧?好,比如说当 n 取一时,那二乘一减一是不等于一?当 n 等于三十二,三得六,六减一等于五,你看第三行是不是五个,对吧?好,那我们今天的第一个知识点, 星星的这个数量和层级关系啊, 数量它等于什么?嗯,比如说数量 c 吧,等于二, n 减一,括号,嗯,大于等等于一,是不是?这是我们星星的数量关系, 对吧?找规律嘛。好,和我们刚刚相反,刚刚的那个反向直角三角形是不是很像,对不对?好,现在我们是不是已经找到这个关系了,对吧?那找到关系之后呢?那我们就开始做 删掉 so 循环,它也是什么?我们也是可以把它从一开始循环,是不是? 好,比如说今天我需要做的是十行,对不对?好, for 循环,我们的乘数 n, 第一层,第二层,第三层,我们用 n 来表示 for i in range, 好, 没忘记吧。啊?为什么到十一?我这里就不解释了啊。好,他还是要空格,是不是?那我们就给他空格吧。 嗯,给它空格,比如说给它个 be 空格,总共是十行,对吧? 减去个 n, 那第一个就是什么九行?因为 n 取一嘛,十减一等于九行嘛,是不是 好输出? 第一个是星星, 我们插入这个啊,插入这个空格不用形象。第一行是左边,你们看。好啊,这个左边是不是空格的?是不是?把补充一下,是不是空格的,你们看一下。所以第一行是空格是不是 a? 我的空格是不是空大了呀?啊?不是。 好,第一行空格空完之后呢?不能换行,不能换行用什么?用? end 型号不给它换行, 对不对?然后找到我们刚刚每一行有几个,我们知道每一行的这个数量,它也是个变量,是不是?那它的变量是什么关系呢?是二 乘 n 减一,因为 n 是从什么一开始的?我这里的 n 是从一开始的,可知道?然后我们 print 输出。 好,我们看一下有没有问题啊? n 是从一开始的到第十行结束,第一行开始到第十行结束,所以我取十一,对吧? b 呢,代表的是空格,那第一行空格是几个呢?我们用十减 n, 那就是十减一,十减一等于九,对吧?所以第一行是九乘 b, 然后不换行,然后写他的什么数量,星星的数量,星星的数量,我们刚刚已经找到这个关系了,最后我们输出看一下 有没有问题,你看是不是没有问题,对吧?其实那老师你把左边的这个做完了,右边怎么你怎么不做这个空格的呀?同学们想个问题啊,右边他本来不就是空的吗?干嘛还要做呢?所以说你在这一题啊当中,你只要考虑什么,左边这个就 ok 了, 你只要把左边这个做出来就 ok 了,右边这个不用做,因为右边他本来就是空的,知道吧?所以你只要把左边做出来就行了,然后找到他们的数量关系就行了。右边他本来不就是右边,这么多距离不都是空白的吗? 是不是就像我这样,右边是不是都是空白的,所以他会自然就会产生了,就不用考虑右边这个了? 好,我们看一下它也是找出什么 r、 n, 对吧?循环打印星星。 好,这里有人说,哎,老师他怎么就用了一个 a 呀?他跟你不一样啊,你不是一到十一吗?他这里的 a 默认的是从零开始的,如果他什么都没有,只有一个数字 a 的话,就默认从零开始的,所以他这里是二 n 加一,你看二 n 加一的话,这个 n 呢,是大于等于零的,他最小是取的是零, 你看当 n 为零时,是不是第一行就有一个星星,当 n 为一时,那就第三行,是不是?所以找关系,你 rn 加一和 rn 减一,它的区别就是后面这个范围不一样,一个是 n 大于等于一,一个是 n 大于等于零,知道吗?取值范围不一样。 好,那今天呢,我们的内容就上到这了啊,然后给大家布置两个作业,想一想这两个倒过来的直角三角形改 如何修改这个代码?你看倒过来的怎么修改这个代码? 好,这是我们今天的作业啊, 如果作业做出来的或者不会的话,可以在后台私信我,问我好不好?好,同学们再见。


终于用 python 完成了柏林噪声动画展示效果,今天让我们来继续探索 mini, 用 python 编程来制作这样的三 d 动画,点赞收藏,相信你一定有所收获。话不多说,开始编程, 打开 vs code 之后,将上一次的随机地形文件复制一份,作为我们本次引入柏林噪声地形 copy, 这个可以删除,前面改成四, 还没安装纳米膜的小伙伴可以从合集中找到前面的教程。那我们首先来进行第一步,要使用柏林超声的话,要首先在 python 里面安装柏林超声 p i p install 柏林超声 noise 回车。如果你之前没有安装过的话,接下来下面会显示安装的过程, 我这个地方展示的是我之前已经安装过了哎。 requirement already satisfied 已经安装好了,那怎么使用呢?我们在上面加上一行代码 from 下面柏林噪声这个模块 import 这样一个类,这是我们这一次要用的, 接下来在我们代码的基础之上,哎,这是之前的标题,如果想改的话也可以我们改成柏林噪声地形动画演示。 接下来的改动点其实就是把我们之前用普通的随机数 random 模块生成的高度呢,换成用柏林噪声来生成。那我们首先来促使化一下柏林噪声,它的用法是刚才你 import 进来的这样一个类,促使化一下, 里面呢要填两个参数,我们直接把它填成二或者四都可以。 seed 是 一个种子,如果你填固定的数值,那下一次生成的也是固定的随机数。前面这个参数呢是决定了地形的丰富程度,我把这个注字呢写到这个地方来, 可以灵活的来调整。 seed 呢是一个随机种子,如果你固定的话,每一次效果都是相同的,生成好之后呢,我们把它存到一个变量里,给它取一个名字叫 noise generation, 进吧,后面呢我们就用这个变量就可以了, 在什么地方使用呢?在每一次生成高度之前,哎,把它注射掉,我们都要去调用一下我们这个变量,去生成一个由柏林噪声算法控制的这样一个随机数,它里面呢要有两个根据,我们的 i 和 j 不 一样,加上中括号 i 除以一个,我们叫缩放因子,这个缩放因子呢大一点的话,它的效果就会不同,可以灵活来调整,保持都是三点零 生成的。这个结果呢,我们把它存到一个新的变量里面,这个变量它的范围呢就是在柏林照射的负零点五到零点五,这是一个默认的范围, 那我们的高度显然不应该是负零点五到零点五,对吧?我们之前也专门做过这样的一个处理, radum 呢,它默认是零到一,我们这样处理之后呢,它就是零点五到二了,那我们这个呢是负零点五到零点五,所以呢还是要处理一下,我们可以简单的怎么来做呢?把这个变量 它等于它加上零点五,是不是跟之前的 random 一 样,就是零到一了?在它的技术之上,我们把原来的这个调整给它拿过来,这样其实就可以了。我们把柏林噪声的理念呢,就已经用到我们的程序里面来了,可以运行一下,让它生成动画视频来看一下效果, 视频生成好之后呢,我们来看一下效果,会发现虽然我们的标题变了,说明我们的程序呢,它生效了,但是呢它的效果呢,并不是那么理想, 主要是两个原因。第一个我们的这个立方柱是不是太少了呀?看起来呢,他就不够密集,而且虽然能看出来他的高度呢,相对变化呢,没有那么跳跃了,但是还是不连续。 这个不连续体现在什么地方呢?比如说这两个,他们两个可能高度,比如说一个是一点六,一个是一点五,虽然离得很近,但他依然是从一点六突然变成一点五的,而不是从一点六慢慢的滑向一点五,导致呢,我们这个效果并不是像一开始展示的那样一个平滑的曲线, 那提到这个曲线呢,这就是 menu 里面另外一个跟我们之前讲过的立方体,还有这种长方体不一样的另外一个对象了。我们接下来的改造呢,就是在这个基础之上引入曲面的概念,让它更加的平滑。这里面就需要安装另外一个模块 pip install, 这是一个在数据处理里面经常用的模块 number pip。 好, 那这一次呢,我们用它呢,就是配合我们生成曲线来用的 import number p y 给它起一个简写,这是这个模块通常的用法,引入进来之后起个别名, s 就是 起别名的意思叫 n p, 以 后你但凡想用 number p y 这个模块,用 n p 就 可以了。好的,接下来呢,我们再来修改,这个地方我们保持不变,接下来要改的是不用两个 for 循环依次来生成 block 的 方式了,我们这一次把这些代码就可以全部删除掉了, 我们要用刚才我们生成的柏林方程的这个变量呢,用到一个叫曲面函数的这个逻辑里面去生成曲面 surface。 好, 我们定义这样一个函数,它有两个参数, u 和 v, 是 生成曲面的时候要用的这个地方,我们把这个变量复制过来,它里面的参数呢,跟刚才我们用 i 和 g 来表示是一样的,我们用 u 和 v 曲面里面的两个参数的固定用法,生成好之后,我们跟之前一样把它存到一个变量里面,跟之前一样可以起这个名字。 接下来就是高度的计算,刚才我们删除找了啊,其实还是要用到计算高度的这个变量的,在原来的基础之上,我们是负零点五到零点五啊,刚才讲过了,我们在它基础之上加上零点五之前我们是乘以一点五再加上零点五,这样的话它的高度呢,就是 我们先写上吧,一点五加上零点五,待会呢可以再来调整这个计算公式。最后一步我们要在这个函数后面加上一个返回值, 用到了刚才我们提到的 number p y, 它需要返回的是由三个变量组成的这样一个列表,好, u 和 v 曲线,再加上不断变化的这个高度。好,没问题,下面刚才没删除的。接下来就是创建一个曲面的叫 surface 对 象了,地形这个变量 surface 名字。然后呢,我们在这里面写上曲面函数,是刚才我们建的这个函数,它的 u 的 变化范围,我们让它是 负二到二,这些是创建曲面固定的一些用法,那详细的解释呢?我们在这个地方就不重复了,大家可以先模仿一下,感兴趣的话也可以再去 deepsea 里面详细问一问这些参数它到底是什么作用。这个呢, opacity 我 们用过很多次了,它是一个透明度对不对? 再往下我们也可以设定曲面的一个颜色变化,它呢有一个自己的函数 color, 跟之前是一样的,我们可以指定三个颜色, blue, green, 还有 yellow。 接下来就到动画的程度了,我们之前呢是标题,坐标轴,还有我们创建的很多个 blocks, 现在 blocks 没有了,我们就把这个 blocks 删掉,我们要把它改成把曲面给显示出来,所以新建一个 self 点 play, 还是要播放一个显示的效果。不过这一次我们 create 出来的就是曲面这样一个变量。然后呢,我们可以延长一下它的时间,让我们能够更清楚的看到这个曲面是如何创建出来的。 曲面创建,然后我们再往下看,哎,之前是不是还有一个 rotate 旋转我们这些之前生成的 blocks 的 代码呀?把这个呢也去掉,当时持续的是五秒钟,我们把 blocks 给它去成刚才新建的曲面地形曲面。好的,到这里呢,我们就可以生成了。走你 之前提过有一个 config 点 quality, 给它配置了一个叫 low quality, 这样的话它生成的在这个地方 media 能看到 videos 里面就是四八零,四八零 p 就是 分辨率低一些,它的质量低一些, 如果你想生成高级别的它清晰度更高的幺零八零 p 的 话呢,把这个代码注视掉就可以了,它默认生成的是清晰度比较高的效果,当然花费的时间也会比较长。你的电脑如果好的话,它会进度快一点,慢的话就选这个 low quality, 会更快速一点,看到效果哈, 能明显的感觉到,我们用上了曲面之后呢,它生成的速度就变慢了很多,然后你仔细看到也能看到这里面有 service of 九百。之前呢,我们虽然是两个负循环,但是呢,他就是二十五个立方体,相对来讲还是对象比较少的。那现在呢,要形成这样一个曲面,其实他要生成的元素呢,比之前是多了很多的,他只有足够多足够小的组合在一起,才能形成这个曲面的效果,所以这一步呢,要稍微耐心一点, 马上就可以了。好的,视频已经生成好了,我们能看到标题变了,我们生成柏林噪声地形也没问题,一点点生成,并且最后呢有一个旋转的效果 啊,非常不错。好的,那我们用 mini 探索三 d 动画的这个过程就到这里了,感兴趣的小伙伴呢,可以尝试把我们前面做的这几个部分呢整合到一起, 就是一个简单的介绍柏林招生概念的动画视频了,对不对?下一集做什么内容呢?欢迎小伙伴们积极留言,都看到这里了,别忘了点个赞哦, goodbye, 下期见!

这次作品的名字叫做随机亮动的小星星,在这一个五乘五的点针屏上,随机的让赖的点亮,显示出来闪动的小星星的效果, 好,看一下程序。

大家好,我是李晨晨。今天我们学习了这些,第一个是随,随机整数 一到十,第二个随机取范围整数,这里是零到一百之间,我们的倍数读二十五,二十三十五的,这里是随机生成五点数, 这个是零到一的,这个是二十到二十的。

大家好,我叫王天宇,今天我带大家认识拍摄里一个有趣的魔法功能随机数,还有用它做一个超好玩的游戏,让我们一起解锁变身新技能吧。有没有玩过猜大小的游戏, 比如说猜我手里的糖果有几颗,或者猜骰子抛出的点数。其实电脑也能像魔法一样随机变成一个数字,这就是随机数。在拍摄里,我们只需要一句简单代码语言 就可以召唤出这个随机魔法。首先我们要告诉电脑,我要用到随机数工具了,就像画画要先准备彩笔一样,代码是这样的, 这里的 red 就是 开在你的随机数工具箱,您或者就是拿来用的。接下来让电脑从一到一百之间随机选一个数字当做秘密数字代码敲出来, 这里的 y、 e、 t 就 像是随机选择的森林,会从一和一百之间,我们一个不告诉任何人的数字场景, a, 这个电量有。然后就是猜数字的环节吧,我们会先让 我们先让玩家, 然后咱们看这个数字,如果数字比神秘数字大,告诉玩家数字太大了,如果这个数字比这个神秘数字小,那么就告诉玩家太小, 如果抄袭,那就恭喜他猜对了。然后咱们来看一下讲话版的核心流程。第一步,先拿来随机数工具箱 input 编码。第二步,生成一个一到一百的随机数 a 等于二点 a 编码一个都跑一半,然后让玩家猜数字。 三,玩家输入 int input, 如果有玩家他的数比神秘数字大,那就输入他家, 如果猜的数比神秘数字小,那就说出它小,如果神秘数字和猜的数一样,那就输出东西,并且结束就完, 那游戏是不是很简单?我们不仅学会了用 y 字母随机模块生成随机数,还用到了之前学到的变量打印、输入功能。等会我们可以一起众筹试试,还能修改自己的数字范围,比如说改成一到五十, 呃,让使游戏更简单,或者改成一到二百,增强难度。编程就像搭积木,一个个简单的计算机拼在一起,就能能做出超好玩的游戏。希望大家都能爱上 python 和随机数做朋友,以后还能做出更有趣的编程作品。现在你要不要一起动手来试试运行这个猜数字游戏,看看谁能更快猜对神秘数字啊?