二进制游戏 =============== 描述 ------------- 你知道二进制吗? 二进制是计算技术中广泛使用的数字系统,因此了解二进制数是了解计算机世界的重要一步。 点击绿旗开始。 屏幕中间会出现一个随机数,你需要知道对应的二进制数。 比如5,对应的二进制数应该是0101,按右边的熊掌确认。 如果正确,分数将增加1。 .. raw:: html 或者点击 `Binary Game `_, 然后在Scratch官网学习在线教程。 所需组件 ------------------------------- - A RasPad 3 - Scratch 3 (either online or offline) 你将学会 --------------------- - 二进制数基本概念。 - 如何将二进制数转换为十进制数。 课程指南 -------------- 在屏幕底部布置一个小的二元算盘。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 首先,我们删除之前的角色。 上传角色列表中之前从 `raspad3.git `_ 下载的的 **Zero.png** 文件和 **Enter.png** 文件。 然后我们在 **Zero** 角色的 **Costumes** 选项中上传 **One.png** 文件,让 **Zero** 角色拥有 **Zero** 服装和 **One** 服装。 .. image:: img/binary1.png :width: 550 :align: center 然后我们用鼠标右键复制 **Zero** 角色,舞台区域就会出现3个新的 **Zero** 角色。 .. image:: img/binary2.png :width: 600 :align: center 将四个精灵的默认服装设置为 **Zero**,分别用变量“num1”、“num2”、“num3”和“num4”进行记录,并初始化四个角色的位置。 下图中的程序是 **Zero** 角色的程序。 其他三个 **Zero** 角色则修改变量名称,并将X坐标增加80,使效果从左到右依次排列。 .. image:: img/binary3.png :width: 400 :align: center 当我们点击变量前面的 √ 符号时,变量将从舞台上消失。 .. image:: img/binary4.png :width: 400 :align: center 通过单击并记录二进制值来改变形状。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 如果点击 **Zero** 角色,它会切换它的服装到下一个服装,并切换变量 num1 的值,如果 num1 = 0,则将 num1 更改为 1。 这样每次 **Zero** 角色切换服装时,num1变量就可以实时记录黑板上的数值。 复制其余三个 **Zero** 角色的程序并修改变量名称。 .. image:: img/binary5.png :width: 400 :align: center 二进制数和十进制数的转换。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 在开始编程之前,我们先来了解一下 `二进制数 `_。 二进制数是以 2 为基数的数字系统或二进制数字系统表示的数字,它只使用两个符号:通常是“0”(零)和“1”(一)。 如何将二进制转换为十进制? 对于 n 位二进制数: .. code-block:: dn-1 ... d3 d2 d1 d0 十进制数等于二进制数字的总和 (dn) 乘以它们的 2 次方 (2^n): .. code-block:: decimal = d0×2^0 + d1×2^1 + d2×2^2 + ... 如果二进制是1000,对应的十进制应该是1x2^3+0x2^2+0x2^1+0x2^0=8 那么,1010的十进制数是多少? 1*2^3+0*2^2+1*2^1+0*2^0=10。 为背景编程 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 游戏开始时,我们的屏幕中间会出现一个1-16之间的随机整数,作为一个十进制数,需要进行二进制转换,存储在变量random中。 .. image:: img/binary8.png :width: 600 :align: center 无论我们收到“正确”的结果还是“错误”的结果,我们都必须重新生成随机数并开始下一轮游戏。 .. image:: img/binary9.png :width: 600 :align: center 为Enter角色编程 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 了解了二进制数和十进制数的转换后,我们来编写 **Enter** 角色。 首先,我们创建一个结果变量,当点击 **Enter** 角色时,我们将num1变量、num2变量、num3变量和num4变量组成的二进制数转换为十进制数,并将结果保存在 **result** 变量中。 .. image:: img/binary10.png :width: 750 :align: center 然后比较这个 **result** 变量和随机变量的值,如果相等就返回一个“正确”的消息,否则返回一个“错误”的消息 .. image:: img/binary11.png :width: 750 :align: center 现在,点击舞台区域上方的绿旗开始游戏并探索神奇的二进制! 挑战 ----------- 我相信你很快就能掌握并实现这个游戏。 接下来,可以添加一些额外的内容来使你的游戏更丰富。 - 添加一个 **Zero** 角色来转换 1-32 之间的随机整数。 - 当您单击 **Zero** 角色时,将播放流行音乐。 - 答错扣1分!