在游戏中学会进制转换

有什么好的办法让学生在开心愉快的氛围里不知不觉学会进制转换呢?我首先想到了玩游戏。因为在游戏中规则总是第一个被记住的。如果我把规则变成进制转换的知识点,那么学生就会在第一时间记住这个知识点!我想网上一定也有人这么干。于是,我开始搜索网上的进制转换游戏,发现确实很多。有通过数字计算生日的(如图1)。也有通过二进制猜生肖属相的(如图2)。也有通过翻卡片的(如图3)。还有通过数手指的(如图4)。搜索了很久,发现大体就是这4种游戏。这些游戏都非常好,学生可以掌握二进制。但总感觉好像缺点什么。直到我搜索了几节数学课的进制转换上课视频,发现这几个游戏数学课也在用,而且数学的这节课和我想要讲的内容感觉是一样的。当我看完这几节课,不禁陷入了对人生深深的思考,我什么时候变成了数学老师?如果是这样上课,计算机组成原理课和数学还有什么区别呢?迷茫与困惑中重新回顾我们计算机组成原理课的几个核心素养,而数学的核心素养:数学抽象、逻辑推理、数学建模、直观想象、数学运算、数据分析。两者一对比,我从中渐渐找到了答案。进制转换是在做计算,而计算机组成原理学科与数学学科在这节课核心素养的不同就是我们计算机组成原理要突出数字化学习工具与创新。我们应该给学生营造一个数字化学习环境,这样一来问题解决了!想要学习进制转换,不如在平板上玩个游戏,让学生在游戏中玩会进制转换就好了!传统的这些游戏如果移植到平板上,交互项和娱乐性较差,而玩游戏最重要的就是有个情感反馈。让玩家能够在游戏里面获取到一定的感情体验,更多的是舒适性的体验,比如满足感,成就感,虚荣心,这才是一个好的游戏的体现。而传统的几个游戏刚好欠缺这些。我又开始在网上搜索进制转换的电子游戏,发现网页版的有弹球游戏,可是要用电脑玩才可以。苹果商店里有几个进制转换小游戏,发现这几个游戏学生也很难玩到,因为除了苹果商店这几个应用收费外,更重要的是学生平板都是Android系统,和iOS系统不兼容。即使偶然找到了一个Android版本的小游戏,可是游戏安装完后占用空间太大。对学生平板造成了运行卡顿。这让我大失所望。算了,求人不如求己。我决定与其耗费大量的时间寻找别人的作品。不如多花点时间自己做一个简单好玩适合自己学生的二进制小游戏。

图1

图2

图3

图4

我们说二进制有两种状态,灯泡的亮和灭可以用二进制表示,我的游戏想用灯泡的亮、灭转化为二进制数,会读二进制了还要会算,计算其实是进制转换最核心的东西,前面说到的几个游戏也都是基于二进制的计算设计出来的,比如二进制到十进制的转换,涉及到从右到左按位依次乘以20,21,22……2n。以二进制数11011为例,它转化为10进制的过程应该是(如图5)。我们发现二进制从右往左对应的十进制依次应该是,1、2、4、8、16、32……2n。当二进制位是1的我们就记下这一位对应的十进制数,二进制位是0的我们就记为0或者不记数。最后把数字一加,就可以得到我们的二进制数对十进制数。我们只要记住了这个规律,不论是什么样的二进制数字,都可以轻松转换。十进制数转换为二进制数,我们只要看这个十进制数字由1、2、4、8、16、32……2n里面哪几个数字相加得到,用到的数字记为1,没用到的数字记为0,从右往左依次写出来就好了。以十进制数17为例。它的转化过程(如图6)。有了这个进制转化方法,我接下来考虑的就是怎么把方法变成游戏规则。
                

图5

图6

我之前和学生一起看过《拆弹专家》这部电影,情节跌宕起伏,特别是记得拆炸弹线路的瞬间。我和同学都屏住了呼吸。如果爆炸,轰隆的响声,最让人惊心动魄。这一次我决定,做成一个连环拆弹游戏。游戏也用灯泡的亮灭代表二进制的数值,规定亮是1,不亮是0。游戏开局随机出现6组灯泡,每一组灯泡前面显示红色炸弹,游戏需要玩家将每一组二进制数代表的十进制数在脑海中计算出来,然后选择下面的十进制数字。如果选择对,红色炸弹变绿色,再进入下一组灯泡继续选择。如果6组都拆对,完成拆弹任务。如果中途选错,炸弹直接爆炸(如图7)。

图7

我用Android studio开发了这个拆弹游戏1.0,发到学生平板上以后。学生玩得很快心。很多学生游戏拆弹失败炸弹爆炸了,又立马学规则继续拆弹。后来学生发现,我只要慢慢算数,算对为止,就不会爆炸。看来我需要增加更多的游戏规则。于是我收集了学生们对这个游戏的修改建议。后期2.0版本添加了启动页(如图8)。

如图8

又对软件限制了游戏时间,要求拆弹时间只有40秒钟,超过40秒,就算前面的炸弹都拆除完毕了,你也会爆炸。这样更符合真实情景。同时还剩10秒钟的时候响起倒计时音效,让这个游戏可玩性大大增加!我又添加了成功时动图显示,恭喜过关,同时显示拆弹用时(如图9)。

如图9

失败时随机出现鼓励性的动图,同时附带一句:大侠,请重头再来。再显示做对的题目数量(如图10)。

如图10

重新发给学生体验,结果大大超过了我的预期。学生们对这个游戏爱不释手。不仅在计算机组成原理课上大家比拼拆弹时间,争当拆弹专家。课下大家一有空就打开平板,玩玩拆弹游戏,没事比一比,既丰富了学生的课余生活又让大家在游戏中学会了进制转换。游戏取得的效果比我直接在黑板上单纯讲解进制转换方法快太多了!现在,软件一传十,十传百,全校的学生平板上都安装了这个游戏,学生下课后有时间都在拆弹打榜,比排名,争做校园拆弹专家。在教育里,很多时候,很多事情,你做之前根本想不到取得的效果,当你亲身经历后才会发现,学生会赋予你无限可能!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
在Python中,可以使用多种方法进行进制转换。其中比较常用的是使用内置函数进行转换。一般的做法是先将输入的字符串或自定义的字符串转换为十进制,然后再将十进制转换为其他进制,如二进制、八进制、十六进制等。常用的内置函数有bin()、oct()和hex()。例如,使用bin()函数可以将十进制转换为二进制,使用oct()函数可以将十进制转换为八进制,使用hex()函数可以将十进制转换为十六进制。示例代码如下: ```python dec = 42 bin_num = bin(dec) oct_num = oct(dec) hex_num = hex(dec) print("Binary:", bin_num) print("Octal:", oct_num) print("Hexadecimal:", hex_num) ``` 输出结果为: ``` Binary: 0b101010 Octal: 0o52 Hexadecimal: 0x2a ``` 另外,如果要进行任意进制间的转换,可以使用format函数。在format函数中加上'b'、'o'、'x'可以将其他进制转换为二进制、八进制或十六进制。示例代码如下: ```python binary = "{:b}".format(int(input(), 8)) octal = "{:o}".format(int(input(), 8)) hexadecimal = "{:x}".format(int(input(), 8)) print("Binary:", binary) print("Octal:", octal) print("Hexadecimal:", hexadecimal) ``` 这样就可以实现任意进制间的转换了。 #### 引用[.reference_title] - *1* *2* [python常见进制转换方法](https://blog.csdn.net/frighting_ing/article/details/127857708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python进制转换](https://blog.csdn.net/2203_75758128/article/details/129662202)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

babyai997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值