完成品の確認
クイズゲーム_完成-kenchan2023-慧编程作品社区
慧编程作品社区
準備をしよう
下のURLをクリックして、mBlockを開いてください。
https://ide.mblock.cc/#/?cloudProjectId=3332756
プログラミングする
「Panda」のプログラム
初めの設定
下のコードを入れて下さい。
from mblock import event
@event.greenflag
def on_greenflag():
# 初めの設定
sprite.x = 0
sprite.y = -65
sprite.say('4問クイズ', 2)
Pandaの位置を決め、最初のセリフ「4問クイズ」を言わせます。
1問目とゲームオーバー
下のコードを入れて下さい。(青のイタリック(斜体)の文字は、すでに入力したコードです。)
sprite.say('4問クイズ', 2)
# 1問目
answer = sprite.input('32+24')
if sprite.answer == (32 + 24):
sprite.play_until_done('Collect')
# ゲームオーバー
sprite.play_until_done('Lose')
sprite.stop_all()
- 「sprite.input(’32+24′)」では、引数の内容で質問して、入力待ちをします。入力したものが、「answer」に入ります。
- 「answer」の中身と「32 + 24」(正しい結果)を比べて、同じなら音「Collect」を鳴らします。
- if文の後に、ゲームオーバーを作っておきます。この後、if文をネストしていく形で、次の問題を作っていきますので、最後までいくとゲームクリアになります。ゲームクリアできないと、このゲームオーバーが動いてしまい、ゲームオーバーになる、ということにしています。
2~4問目
下のコードを入れて下さい。(青のイタリック(斜体)の文字は、すでに入力したコードです。)
1問目とゲームオーバーの間に、入れて下さい。
# 1問目
answer = sprite.input('32+24')
if sprite.answer == (32 + 24):
sprite.play_until_done('Collect')
# 2問目
answer = sprite.input('21-15')
if sprite.answer == (21 - 15):
sprite.play_until_done('Collect')
# 3問目
answer = sprite.input('32*4')
if sprite.answer == 32 * 4:
sprite.play_until_done('Collect')
# 4問目
answer = sprite.input('36/2')
if sprite.answer == 36 / 2:
sprite.play_until_done('Collect')
問題ごとに質問内容を変えますが、基本的には1問目と同じコードです。if文をネスト(入れ子)にすることで、1問目が正解なら、さらに2問目が正解なら・・・というふうにできます。
今回のゲームは、すべて正解でないとゲームクリアにはならず、どれか不正解ならその時点でゲームオーバーになります。
ゲームクリア
下のコードを入れて下さい。(青のイタリック(斜体)の文字は、すでに入力したコードです。)
4問目のすぐ次に入れて下さい。
# 4問目
answer = sprite.input('36/2')
if sprite.answer == 36 / 2:
sprite.play_until_done('Collect')
# ゲームクリア
sprite.play_until_done('Win')
sprite.stop_all()
「sprite.stop_all()」は「すべてを止める」です。
ここでゲームが止まるので、ゲームオーバーが動かないようになります。ゲームクリアまでいかないと、必然的にゲームオーバーが動くことになります。
プログラム確認
緑の旗を押して、動きを確認してください。以下が確認できればOKです。
- 「4問クイズ」とPandaが言ってスタート
- 1問から4問目まで計算問題が出る
- 正解なら次の問題に行く、不正解ならゲームオーバーになる
- 4問目まで正解すると、ゲームクリアになる
すべてのプログラム(完成コード)
Panda
from mblock import event
@event.greenflag
def on_greenflag():
# 初めの設定
sprite.x = 0
sprite.y = -65
sprite.say('4問クイズ', 2)
# 1問目
answer = sprite.input('32+24')
if sprite.answer == (32 + 24):
sprite.play_until_done('Collect')
# 2問目
answer = sprite.input('21-15')
if sprite.answer == (21 - 15):
sprite.play_until_done('Collect')
# 3問目
answer = sprite.input('32*4')
if sprite.answer == 32 * 4:
sprite.play_until_done('Collect')
# 4問目
answer = sprite.input('36/2')
if sprite.answer == 36 / 2:
sprite.play_until_done('Collect')
# ゲームクリア
sprite.play_until_done('Win')
sprite.stop_all()
# ゲームオーバー
sprite.play_until_done('Lose')
sprite.stop_all()
今回は、mBlockのゲーム作成の第1回ということで、「クイズゲーム」を紹介しました。
次回もお楽しみに♪