二进制游戏
===============
描述
-------------
你知道二进制吗? 二进制是计算技术中广泛使用的数字系统,因此了解二进制数是了解计算机世界的重要一步。
点击绿旗开始。 屏幕中间会出现一个随机数,你需要知道对应的二进制数。 比如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分!