子どもIT教室「LITE1」参加後の追加課題①
LITE1に参加してくれたみんな、こんにちは!あっくん先生です。
授業(じゅぎょう)でやったことは覚えているかな?
もちろん!・・・でももっとやりたい!
そんなみんなのために追加の課題を用意しました。
授業でやったことより高度な技術(ぎじゅつ)なので、わからなくても大丈夫(だいじょうぶ)!
やさしく解説(かいせつ)するから、よーく聞いてね。
対象(たいしょう)読者
dejiren(デジレン)を使った授業を受けたみんなが対象です。
dejiren(デジレン)にログインできなくても大丈夫です。
子どもIT教室「Little IT Engineer:LITE 1(ライトワン)」とは(保護者様向けの説明)
弊社社員による子どもIT教室です。
オンライン開催になってからは弊社製品「dejiren(デジレン)」を使って楽しく授業しています。
運営メンバーは全員が立候補して集まった有志であり、私も一期生の一人です。
授業中の風景や参加者の感想など気になった方はこちら!
授業の復習(ふくしゅう)
授業で作ったのは次の3つだったね。
追加課題ではこれらを改造(かいぞう)して、もっと凄い(すごい)のを作っちゃうよ!
こんにちはロボ・・・何を言っても「こんにちは」と返してくれるロボ
じゃんけんロボ・・・必ずロボが勝つじゃんけん
おみくじアプリ・・・大吉から凶までがランダムに出る(何が出るかは毎回変わる)おみくじ
真じゃんけんロボ
追加課題①で作るのは「真じゃんけんロボ」だよ。
授業で作った「じゃんけんロボ」は必ずロボが勝つ動きだったけれど・・・それってズルいよね!
ロボが出す手をランダムにして、さらに勝ち負けもロボが教えてくれる動きに変更(へんこう)しよう。
この課題で学べること
条件(じょうけん)の中に条件があるプログラム
ブロックに名前を付けてプログラムを読みやすくする
プログラムの書き方は色々ある
注意:じゃんけんロボをコピーして新しいロボを作っても動かせないよ
新しいロボを作っても、そのロボを自分のルームにメンバーとして追加することは、LITE1に参加してくれたみんなのアカウントだとできないんだ。
つまり、そのルームに新しいロボはいないことになるから「ぐー」ってメッセージを投稿(とうこう)しても新しいロボは反応(はんのう)してくれないよ。
授業で作ったロボは先生たちが予めメンバーに追加していたから反応できたんだ。
新しいロボを作るのではなく、授業で作ったロボを改造してね!
授業で作ったプログラムを思い出す
授業で作った「じゃんけんロボ」のプログラムはこんな感じだったね。
簡単(かんたん)にまとめると次のようになるよ。
チャットにメッセージが投稿されたとき
もし自分が「ぐー」だったら・・・ロボは「ぱー」を出す
もし自分が「ちょき」だったら・・・ロボは「ぐー」を出す
もし自分が「ぱー」だったら・・・ロボは「ちょき」を出す
もしそれ以外だったら・・・ロボは「「ぐー」「ちょき」「ぱー」のどれかを出してね」と言う
新しく使うブロックを確認する
これを改造して、ロボがランダムな手を出す(何の手を出すか毎回変える)ために「じゃんけん」ブロックを使います!
「じゃんけん」ブロックは「高度な手順ブロック一覧(いちらん)」-「LITE1コネクター」の中にあるよ。
「じゃんけん」ブロックは「グー」「チョキ」「パー」のどれかをランダムに出すブロックです(カタカナなことに注意)。
どんなプログラムを組むか、考えを整理する
自分が出した手と、ロボが出した手をもとに、どんなプログラムを組めば良いのかな?考えを整理してみよう。
チャットにメッセージが投稿されたとき
ロボは「グー」「チョキ」「パー」のどれかを出す
もし自分が「ぐー」だったら・・・
かつ、ロボが「グー」だったら・・・「あいこで・・・」と言う
かつ、ロボが「チョキ」だったら・・・「あなたの勝ち!」と言う
かつ、ロボが「パー」だったら・・・「あなたの負け!」と言う
もし自分が「ちょき」だったら・・・
かつ、ロボが「グー」だったら・・・「あなたの負け!」と言う
かつ、ロボが「チョキ」だったら・・・「あいこで・・・」と言う
かつ、ロボが「パー」だったら・・・「あなたの勝ち!」と言う
もし自分が「ぱー」だったら・・・
かつ、ロボが「グー」だったら・・・「あなたの勝ち!」と言う
かつ、ロボが「チョキ」だったら・・・「あなたの負け!」と言う
かつ、ロボが「パー」だったら・・・「あいこで・・・」と言う
もしそれ以外だったら・・・ロボは「「ぐー」「ちょき」「ぱー」のどれかを出してね」と言う
太字が追加したプログラムだよ。
「かつ」は2つの条件が両方とも成り立つときに使う言葉です。
例えば、「ぐー」かつ「チョキ」は、自分が「ぐー」を出したときにロボが「チョキ」を出した、という意味です。
もし〇〇だったら・・・という条件の中で、さらに別の条件も見て処理(しょり)を分岐しているね。
ちょっと複雑(ふくざつ)で難しい(むずかしい)けれど、実践的(じっせんてき)なプログラムではよく出てくるよ。
プログラムをわかりやすくする
考えも整理できたし、さっそくプログラムを組んでみよう!・・・の前に、ちょっと待って、授業で作った「条件」ブロックは「条件」と表示(ひょうじ)されているだけで、この条件が「ぐー」「ちょき」「ぱー」のどれかパッと見でわからないよね。
今回のように条件が複雑になるとプログラムが読みづらくなって、それでは困る(こまる)ことがあるんだ。
プログラムを組んでいるときに混乱(こんらん)するかもしれないし、将来(しょうらい)見直したときにわからなくなるかもしれないし(自分で書いたのにね)、他の人が見たらもっとわからないかもしれない。
だからブロックに名前を付けてわかりやすくしよう!
プロックの名前を変更する
条件ブロックをクリックして表示される画面で、一番上の文字を入力するところ(下図だと青い枠(わく)のところ)に「ぐー」と入力してね(条件が「ぐー」の場合)。他のブロックも同じように名前を変更しよう。
「値(あたい)で分岐」と表示されているブロックも「受信したメッセージで分岐」に名前を変更しよう。
これでプログラムがわかりやすくなったね。
「じゃんけん」ブロックと「チャット送信」ブロックを配置する
それではいよいよ・・・「じゃんけん」ブロックを配置しよう!
ロボが手を決めるのは、チャットにメッセージが投稿されたときなので、「チャットに投稿したとき」ブロックの次に「じゃんけん」ブロックを配置しよう(正確(せいかく)にはSTARTロボの次です)。
ロボが手を決めたら、その手が何であるかをチャットに投稿するために「チャット送信」ブロックも配置するよ。
「チャット送信」ブロックでは「じゃんけん」ブロックがランダムに出した手である「じゃんけん文字」をメッセージとしてチャットに送信させるため、下図のように設定(せってい)しよう。
条件「ぐー」の中に、さらに条件を追加する
次に、条件「ぐー」の中に、さらに条件を追加しよう!
条件「ぐー」は自分が出した手なので、その中にロボが出した手で分岐する条件を追加します。
「高度な手順ブロック一覧」-「フロー制御(せいぎょ)」-「値で分岐」ブロックを条件「ぐー」ブロックの中に配置してね。
「値で分岐」ブロックの名前は「ロボの手で分岐」に変更、「分岐する値」は「じゃんけん文字」にしてね。
次に、条件「ロボの手で分岐」ブロックの中に、条件「グー」ブロックを配置しよう!
さらに、条件「グー」ブロックの中に「チャット送信」ブロックも配置してね。
条件ブロックは「高度な手順ブロック一覧」-「フロー制御」-「値で分岐」に、「チャット送信」ブロックは「手順ブロック一覧」-「チャット」-「チャット送信」にあるよ。
配置したらそれぞれのブロックをクリックして名前などの設定を変更してね。
チャット送信ブロックにも名前を付けることでプログラムがわかりやすくなったと思わない?
ロボが「チョキ」「パー」を出した場合も作る
同じように、ロボが「チョキ」「パー」を出したときの条件とメッセージを追加すると・・・次のようになります。
これで条件「ぐー」以下のプログラムが完成したね!
自分が「ちょき」「ぱー」を出した場合も作る
同じように、条件「ちょき」「ぱー」以下のプログラムを組むと・・・全体としては次のようになります(小さくて見えない・・・!)。
これで「真じゃんけんロボ」のプログラムが完成だー!
全体を見ると長くて複雑に見えるけど、一つ一つ分解(ぶんかい)して考えると大して難しくないことがわかるよね。
こうやって問題を細かく分解して考える力がプログラムを組むときは大切になるんだ。
保存(ほぞん)して、ロボを動かす
最後に、保存して(絶対(ぜったい)に忘れない(わすれない)ように!)、ロボを動かしてみよう!(ロボを稼働中(かどうちゅう)にしてね)
「ぐー」を出したらロボが「チョキ」を出してきたね。
あなたの勝ち!やったね。
あいこの場合はもう一度「ぐー」「ちょき」「ぱー」のどれかを入力して送信だー!
備考(びこう):プログラムの書き方は色々ある
プログラムの書き方(プログラムの組み立て方)は色々あります。
上で解説したプログラムも書き方の一つにすぎません。
他にも次のように書くことができます。
あいこになる条件を先に判定(はんてい)することで、その後のプログラムをシンプルにしています。
これを実現するには「高度な手順ブロック一覧」-「フロー制御」-「条件で分岐」ブロックを使います。
チャットにメッセージが投稿されたとき
ロボは「グー」「チョキ」「パー」のどれかを出す
もし「自分の出した手」と「ロボの出した手」が同じだったら・・・「あいこで・・・」と言う
もし自分が「ぐー」だったら・・・
かつ、ロボが「チョキ」だったら・・・「あなたの勝ち!」と言う
かつ、ロボが「パー」だったら・・・「あなたの負け!」と言う
もし自分が「ちょき」だったら・・・
かつ、ロボが「グー」だったら・・・「あなたの負け!」と言う
かつ、ロボが「パー」だったら・・・「あなたの勝ち!」と言う
もし自分が「ぱー」だったら・・・
かつ、ロボが「グー」だったら・・・「あなたの勝ち!」と言う
かつ、ロボが「チョキ」だったら・・・「あなたの負け!」と言う
もしそれ以外だったら・・・ロボは「「ぐー」「ちょき」「ぱー」のどれかを出してね」と言う
書き方はいくつもあるけれど、
正しく動作すること
わかりやすいプログラムであること
を先ずは意識(いしき)してね!
さらに、文字で書く本格的(ほんかくてき)なプログラム(呪文(じゅもん)みたいなやつ)を組むときは、
プログラムの動作が速いこと
メモリー使用量が少ないこと(メモリーを知らない人は今は気にしなくていいよ)
も意識してみよう。ここまでできたら、あなたもプロ!
おつかれさま!
追加課題はどうだったかな?
dejiren(デジレン)を使ってプログラムを組んだけれど、dejiren(デジレン)以外にも使える考え方だから、ぜひ身につけてね!
そして、またいつか・・・会える日を楽しみにしているよ☆
フォロー&スキ♡よろしくね!
追加課題②へと続く!
次は「おみくじアプリ」を改造するよ!