Day35 ( 游戏设计 ) 猜数字 ( 几 A 几 B )

猜数字 ( 几 A 几 B )

教学原文参考:猜数字 ( 几 A 几 B )

这篇文章会介绍,如何在 Scratch 3 里使用询问、清单、说话、变数、逻辑判断、重复...等积木,实作用几 A 几 B 猜中四个数字的数字游戏。

相关文章参考:询问清单说话变数逻辑判断

积木程序原理

这个游戏会随机产生四个 1~9 不重复的数字让使用者猜,因为四个数字要分别和使用者的答案比对,所以会透过「清单」的方式来实作 ( 可以参考:清单教学 )。

  • 建立一个名为「答案」的清单。
  • 放入「删除答案所有项目」,让清单的内容是空的。
  • 使用「重复...直到」积木,直到「清单答案的长度」等於 4,如此就能只产生 4 个数字。
  • 在每次重复的时候,从 1~9 中随机取出一个数字,并将这个数字「添加到答案清单」里

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

执行後,会发现四个数字可能有些会重复,所以要加入一个逻辑判断,判断如果「清单答案包含数字不成立」( 清单里面没有这个数字 ) 的时候,才将这个数字加入清单里,完成後,点击绿旗,就会产生四个不重复数字的答案。

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

  • 再建立一个名为「回答」的清单,将「删除回答所有项目」放到刚刚的积木下方。
  • 分别建立 a 和 b 两个变数 ( 因为要判断几 A 几 B ),将 a 和 b 都设为 0。
  • 放入「重复...直到」积木,直到「a 等於 4」的时候停止重复 ( 表示答对了 )。

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

撰写逻辑之前,先看一下判断的原理,当使用者输入四个数字後,让四个数字分别和答案比对,首先判断「有没有包含」,如果「有包含」,再接着判断「位置有没有相同」,如果位置相同,就让 a 增加 1,如果位置不相同,就让 b 增加 1。

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

根据判断原理,放入对应的积木。

  • 新增一个名为 n 的变数,在每次重复时设定为 1,後续会使用到。
  • 每次重复时,将 a 和 b 设为 0。
  • 放入「询问」积木,请使用者输入数字。
  • 放入「重复直到 n > 4」的重复积木,在每次重复时让 n 增加 1,就能将数字一个个进行判断。
  • 使用「如果...那麽」判断答案清单里是否包含答案的第 n 个字 ( 此时如果 n 是 1 就会判断第一个数字 )。
  • 再度使用「如果...那麽」,判断已经包含数字的答案,如果位置相同,就让 a 增加 1,如果位置不同,就让 b 增加 1

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

使用「字串组合」积木,将答案和结果,记录到回答的清单里,方便根据记录,继续游戏。

Scratch 3 教学 - 猜数字 ( 几 A 几 B  )

接着在使用者回答正确之後,出现「答对了!正确答案是...」的文字。

guess-number-ab-07-s.jpg

最後,在一开始放入「隐藏答案」和「显示回答」的积木,就可以开始进行游戏了。

guess-number-ab-07-s.jpg

完成效果

点击绿旗,就可以输入四个数字,开始进行游戏。

guess-number-ab-07-s.jpg

范例解答

范例解答:猜数字 ( 几 A 几 B )

延伸练习

如果已经熟悉了猜数字 ( 几 A 几 B ) 的原理,还可以尝试更多好玩的作法:

  • 增加时间机制,看看花了多少时间解答。( 解答 )
  • 增加两个按钮,一个可以偷看答案,一个可以重新玩一次。( 解答 )

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  Day30:The end is not the end

>>:  Day27 Apex 配对机制分析

[Day23] - 介绍 Stencil.js 如何使用

今天我们来介绍一下 , 昨天说明的 Web Component 框架中的其中之一 - stencil...

Day20 - this&Object Prototypes Ch3 Objects - Review 开头

Object 有 两种写法,作者建议有特殊需求再用 constructed form litera...

Day13 补位策略 Backfill

在不同游戏的类型可以用不同的条件配对成团,以下为常见配对後可以接受补位的情境: 在一场游戏中,有一名...

[Day 7] 资料产品第三层 - 预测模型

大部分的人对於资料开始产生兴趣,不外乎就是因为想要预测未来。 (https://www.livebi...

TailwindCSS 从零开始 - TailwindCSS 3.0.0-alpha.1 释出

2021.10.2 於官方 GitHub 公告。 计画赶不上更新 在程序的世界有一个特色,更新速度...