【第4回】かぞくでなんこ?パート2」変数計算で解決!りんごをあげたら数はどう変わる?

MakeCode × micro:bit編

こんにちは!

ポケットサイズのコンピューター「micro:bit(マイクロビット)」を使って、プログラミングの仕組みを楽しく分解して理解する本講座。第4回目となる今回は、前回学んだ「変数(へんすう)」をさらに使いこなし、データのやり取りを計算で表現する「変数計算」に挑戦します!

「変数はなんとなくわかったけど、どうやって使うの?」という疑問を、今回のレッスンでスッキリ解決していきましょう。

これまでのふり返り:プログラミングの「考え方」を積み上げよう

新しい内容に入る前に、私たちがこれまで冒険してきた道を少しだけふり返ってみましょう。

  • 第1回:まねしてみよう!(入力と出力の基本、LEDの光らせ方)
  • 第2回:りんごはなんこ?(計算ブロックと入れ子構造のルール)
  • 第3回:かぞくでなんこ?(「変数」という名前付きの保存袋、代入の基礎)

プログラミングは、魔法のような特別な技術ではありません。一つ一つの「考え方」を分解し、積み上げていくパズルのようなものです。今回学ぶ「変数の更新(計算による書き換え)」は、ゲーム制作やアプリ開発において、心臓部ともいえるほど重要なステップになります。

レッスンの準備:前回のプロジェクトを「複製」しよう

今回は前回の「プログラム3」の続きから作ります。しかし、元のプログラムを壊さないように、エンジニアがよく使う「複製(コピー)」というテクニックを使って準備をしましょう。

1. プロジェクトを複製する手順

  1. MakeCode画面右上の「ホームボタン(家のマーク)」を押します。
  2. マイプロジェクトの横にある「すべて表示する」をクリックします。
  3. 前回作った「プログラム3」にチェックを入れ、「複製する」ボタンを押します。
  4. 名前を「プログラム4」に変更して、複製ボタンを確定します。

これで、前回の続きから安全にスタートできますね!

ミッション1:新しい家族「妹」の登場とデータの追加

前回は「僕」と「兄」のりんごを管理しました。今回は、さらに「妹」を追加して、3人のデータを扱います。

1. 「いもうとのりんご」変数を作る

まずは、ツールボックスの「変数」から「いもうとのりんご」という新しい変数を作成しましょう。

2. 初期値をセットする(最初だけ)

「最初だけ」ブロックの中に、以下の設定を追加します。

  • 変数「いもうとのりんご」を [0] にする

最初は妹はりんごを持っていない状態(0個)からスタートします。

3. ボタンで表示する

「ボタンA+Bが押されたとき」というイベントブロックを配置し、その中に「数を表示 [いもうとのりんご]」を入れます。これで、A+Bを押せばいつでも妹の持ち数を確認できるようになりました。

ミッション2:りんごをあげる「やり取り」をプログラムする

ここからが今回のレッスンのハイライトです。 「僕が1個、兄が1個、それぞれ妹にりんごをあげた」という状況をプログラムで表現します。

1. 「あげる数」も変数にする

「1個あげる」という数字を直接書いても動きますが、将来的に「2個あげる」にすぐ変更できるように、あげる数も変数にします。

  • 変数「ぼくがあげるりんご」を [1] にする
  • 変数「あにがあげるりんご」を [1] にする

これを「最初だけ」に追加します。

2. 妹のりんごを計算で増やす

A+Bボタンが押されたとき、妹のりんごの合計を計算します。

  1. 「計算」から足し算ブロックを出し、さらにもう一つ足し算をはめ込みます(入れ子)。
  2. 「いもうとのりんご(0)」+「ぼくがあげるりんご(1)」+「あにがあげるりんご(1)」という計算式を作ります。
  3. この計算結果を変数「いもうとのりんご」に代入し、最後に表示します。

これで、A+Bボタンを押すと妹のりんごが「2」と表示されます!

▼ 動画で動きを確認しながら進めよう!

※動画内で使っているブロックの場所や、シミュレーターを実際に確認してみてね。

【エンジニアの視点】何かがおかしい?「バグ」を見つけよう

シミュレーターでA+Bボタンを押して、妹が2個持っていることを確認したあと、Aボタン(僕の数)とBボタン(兄の数)を押してみてください。

  • 僕のりんご: 4個のまま
  • 兄のりんご: 6個のまま

……あれ? 妹にあげたはずなのに、僕たちのりんごが減っていません! これこそが、プログラミングでよく起こる「論理的な間違い」、通称バグ(Bug)です。コンピューターは言われたことしかやりません。「妹の数を増やせ」とは言われましたが、「僕たちの数を減らせ」とはまだ命令されていないのです。

ミッション3:変数を「更新」して数を減らそう

本当の「やり取り」を完成させるために、あげた人の変数を書き換えるプログラムを追加します。

「自分から引く」という考え方

僕のりんごを減らすには、以下の計算式を作って代入します。

[ぼくのりんご] = [ぼくのりんご] ー [ぼくがあげるりんご]

MakeCodeでは、「変数 [ぼくのりんご] を [ぼくのりんご ー ぼくがあげるりんご] にする」というブロックの組み合わせになります。

これを追加したあとにテストすると……

  • Aボタンを押すと「3」に!
  • Bボタンを押すと「5」に! ちゃんと、あげた分だけ数が減るようになりました。これが「変数の更新」です。

▼ 動画で動きを確認しながら進めよう!

※動画内で使っているブロックの場所や、シミュレーターを実際に確認してみてね。

今日のまとめ:変数と計算のコンビネーション

今回のレッスンでは、以下の重要なポイントを分解して学びました。

  1. 変数の複製: 前のプログラムを活かしつつ新しく作る効率的な方法。
  2. 複雑な足し算: 3つ以上の変数を足し合わせる「入れ子」の使い方。
  3. 整合性(せいごうせい): 「増える」プログラムがあれば「減る」プログラムも書かないと、現実に合わなくなるということ。
  4. 変数の更新: 今の自分 = 今の自分 ー 引く数 という、プログラミング特有の計算ルール。

こうした「数値を管理して、正しく書き換えていく」技術は、銀行のシステムからゲームのダメージ計算まで、あらゆる場所で使われています。

次回の予告

次回は、「かぞくでなんこ?パート3」! ついにお父さんとお母さんも登場し、家族全員のりんごを管理します。人数が増えると計算はもっと複雑に、そしてもっと楽しくなります。

家族全員の合計を一瞬で出すにはどうすればいいのか? さらに進化した変数の使い方を一緒に学んでいきましょう。

今日のレッスンが役に立った、面白かったという方は、ぜひいいねチャンネル登録をお願いします!あなたの応援が、次の「分解」のエネルギーになります。

それでは、また次のレッスンでお会いしましょう。ありがとうございました!