社会

元号(年号)を覚えましょう

日本国と日本国民の象徴である天皇陛下が変わると元号(年号)が改めれます。そして、元号(年号)は、私たちの生活で日常的に使われています。近年の元号(年号)について、おぼえてみましょう。

ー 目次 ー
  • 作るものをイメージする(目標を決める)
  • プログラム作成のポイント
  • きれいに分かりやすく作る
  • 「ブロック定義」の考え方
  • 「ブロック定義」の作り方
  • 「ブロック定義」の使い方
  • サンプルプログラム
  • 全体的な仕組み
  • ブロック定義「問題作成〇の問題」の仕組み
  • 問題として元号を表示する仕組み
  • 回答が選ばれたときの仕組み
  • 正解と不正解を表示する仕組み

作るものをイメージする(目標を決める)

今回は、クイズ形式で新しい元号を当てるクイズを作ります。出題する元号は「明治、大正、昭和、平成、令和」で、この5つ中からランダムで抽出して新しい方の元号を当てたら正解とします。

プログラム作成の目標
  1. 出題する元号は「明治、大正、昭和、平成、令和」とする
  2. 出題する元号は、5つの元号からランダムで2つ抽出する
  3. 新し元号を選んだら「〇」、まちがえたら「×」を表示する
  4. クイズは5回くりかえす

2020年時点で年れいが110才以上の方は、明治生まれとなります。そして、110才以上の方も、まだいらっしゃるそうです。まだまだ長生きしてほしいですよね!

プログラム作成のポイント

きれいに分かりやすく作る

今回、プログラミングで覚えて欲しいことは、「きれいに分かりやすく作る」という点です。プログラミングは、見た目が「きれい」「汚い」で全体の作業時間が大きく変わります。例えば、汚いプログラミングは、動きがおかしいところを見つけるのも大変ですし、修正するところも多くなってしまいます。なので、なるべくプログラミングは、きれいに作るよう心がけましょう。

他人が見ても分かりやすいプログラミングを心がけましょう!

「ブロック定義」の考え方

きれいなプログラミングを作るために便利なブロックパレット「ブロック定義」があります。ブロック定義とは、ある決まった命令を1まとめにするものです。

例えば、あなたが朝起きたときを想像してください。小学校に行くまでの「朝の準備」は、このような感じだと思います。

朝の準備(ブロック定義)
  • 顔を洗う(命令)
  • 歯みがきする(命令)
  • 服を着替える(命令)
  • ランドセルの中身を準備する(命令)

毎日、お母さんは、「顔を洗いなさい」「歯みがきしなさ」「服をきがえなさい」「ランドセルの中身を準備しなさい」と、一つずつ注意するは大変です。

この場合、おかあさんは、早く「朝の準備」しない!と、まとめて伝えれば良いですよね。

このように、プログラミングでも、いくつかの命令を1つにまとめることを「ブロック定義」と言います。「ブロック定義」を使うことで、きれいで分かりやすいプログラムを作ることができます。

毎朝、お母さんに注意されるより、自分から進んで行動するようにしましょう!

「ブロック定義」の作り方

次に「ブロック定義」の作り方について簡単に説明します。

  • ブロックパレットの種類から「ブロック定義」を選びます

  • 新規に作る場合は、「ブロックを作る」を選びます
  • ブロックを作る画面が表示されるので、「ブロック名」に名前を付けます。

最初はブロック名を付けて、ブロック定義が作れるくらいで十分です。むずかしいプログラミングに挑戦するときは、引数を使ったプログラミングにチャレンジしてみてください。

「ブロック定義」の使い方

サンプルプログラムで「ブロック定義」を使っている部分で説明します。

クイズを行うメイン部分

「問題一覧を新規に作成」する部分とランダムで「問題作成する部分(元号を2つ選ぶ)」で、ブロック定義を使っています。このように「ブロック定義」を使うことで、全体的なプログラムイメージが分かり易くなります。

ブロック定義「問題一覧の新規作成」の中身

メイン部分のブロック定義「問題一覧を新規作成」の部分で動かすプログラムです。ここで定義されたブロックパレットが順番に動き、最後の「令和を全問題一覧に追加する」が終わったら、メイン部分の「1秒待つ」が続けて動くイメージです。

ブロック定義「問題作成〇の問題」の中身

メイン部分のブロック定義「問題作成〇の問題」の部分で動かすプログラムです。この部分もブロックパレットが順番に動き、「問題セットを送る」が終わったら、メイン部分が続けて動くイメージです。

ブロック定義を使う箇所は、プログラミングの経験を積み重ねることで、分かるようになってきます。プログラミングが終わった後に、もう一度、全体をみつめると、ここはブロック定義を使った方がカッコ良いかなぁ~と思うときありますよ!

全体的な仕組み

「ねこ」のスプライトにプログラミングします。問題一覧から、クイズで出題する元号を2つ準備します。回答が選ばれたら、正しい答えか確認します。正解、不正解によって〇×を表示します。

ブロック定義「問題作成〇の問題」の仕組み

「ねこ」のスプライトにプログラミングします。内容が少しむずかしいので、簡単な説明にします。乱数(1から5までのランダムな数)を作り、どの元号を問題として出すか選びます。選ばれた元号は、同じ元号が問題として選ばれないよう問題一覧から削除します。選ばれた元号を表示するように、「問題セット」イベントを送ります。

問題として元号を表示する仕組み

各「元号」のスプライトにプログラミングします。ここも簡単な説明にします。問題として選ばれた元号を表示します。そして、もう一方の元号と比較し、新しい西暦なら、この元号を正解として設定します。

回答が選ばれたときの仕組み

各「元号」のスプライトにプログラミングします。回答された元号が分かるように変数に設定します。

正解と不正解を表示する仕組み

スプライト「〇」にプログラミングします。「ねこ」のスプライトから「正解でした」を受け取ったら、「〇」のコスチュームを表示し、正解の音を鳴らします。

スプライト「×」にプログラミングします。「ねこ」のスプライトから「不正解でした」を受け取ったら、「×」のコスチュームを表示し、不正解の音を鳴らします。

プログラミングの内容について、だいたいのイメージが持てれば良いです。

サンプルプログラム

作成したプログラムを公開してます。画像をクリックするとスクラッチのホームページに移動し、動かしたり、中身を見る事ができます。試してみてください。

少しむずかしいプログラミングになってますので、中身を見てブロック定義の使い方がイメージできれば良いです。