[Scratch] 猜數字 1A2B 遊戲 (Guess Number)
今天也很快速的完成了 Scratch 版的 1A2B 猜數字遊戲~
先來看一下執行結果:
這邊只對比較重要的程式部分做介紹,
其他有興趣的就直接去 猜數字 (1A2B) 遊戲 看程式吧~
1. 決定答案
首先,遊戲裡有分難度,
由低至高分別代表 2~4 位數
因此程式一開始要產生一個 2~4 位數的答案。
這邊用一個比較沒有效率,但實作簡單的方法~
先用一個空字串儲存答案,
然後從 0~9 之間隨機選一個數字,
如果這數字不在答案裡,就可以加入答案中,
直到答案的長度符合預期的 2~4 個數字為止。
為什麼說這沒有效率呢?
因為最差狀況,就是隨機取到的一直是同一個數字,
然後就要無限次的持續找可用的數字…
不過實際測試,從 0~9 十個數字中隨機取數,
通常很快就可以取到 2~4 個不重覆的數字,所以還可以接受~
2. 判斷是幾 A 幾 B
這個我原本以為會有點複雜,後來發現主邏輯很簡單~
基本上就是由使用者給的答案的第 1 位數開始,
如果和真正解答的同位的數字相同 => 就是一個 A
否則,如果數字在真正解答裡面 => 就是一個 B:
3. 印出目前是幾 A 幾 B
這相對來說比較繁雜,因為 Scratch 目前沒辦法隨意顯示文字,
都只能用說 (Say) 才能說出任意的文字…
因此我的做法是用一個角色,裡面把 0~9、A、B 和 = 這幾個符號,
都做成這角色的一個外型 (costume):
當我要印出一串字時,就用這個角色配上對的外型,
使用筆 (Pen) 分類下的蓋章 (Stamp) 功能,
將這外型的字蓋在螢幕上~
要寫的字,基本上就是 (使用者輸入的答案) = ? A ? B 這些字
這遊戲製作起來還蠻快速的,
約在兩三個小時內可以完成,
而且這才發現 4 位數字的 1A2B 原來這麼難…
有興趣的人可以來玩玩看喔~^^
(本頁面已被瀏覽過 1,862 次)
One thought on “[Scratch] 猜數字 1A2B 遊戲 (Guess Number)”
線上對戰猜數字的版本
可以跟朋友對戰喔
https://home.modelerp.org/DataTable?ModelName=CRMS_Core_DataAccess_Models_GuessNumberModel