第 6 章 クラウド変数を用いた「めざせ!ローマ字マスター☆~えい語とのちがいを知ろう
6.7 本アプリにある機能とそのプログラム
6.7.3 クラウド変数を用いた出題課題の制御と回答数、正解数の抽出
「おばあさん」「きっぷ」「電車」「本屋」「すし」の課題について、先生機で先生用画面
(図6-4)の「おばあさん」「きっぷ」「電車」「本屋」「すし」ボタンを押すことで児童に解
かせる問題を制御できる機能がある。また、先生用画面の「回答数、正解率」をクリック した時の画面(図6-7)の捕捉で書いた回答数、正解数が格納された「回答数」リストの値 の見方で、回答数、正解数を把握することができる。本機能で把握できるのは「おばあさ ん」「きっぷ」「電車」「本屋」「すし」の課題の回答数、正解数である。関連するスプライ トについてプログラムを挙げながら、説明を進めていく。
(1)スプライト名:「先生ボタン」
図6-27はスプライト「先生ボタン」が持つコスチュームである。本アプリのスタート画
面(図6-2)で使用されている。但し、図6-2の捕捉でも述べたように先生機のアカウント
「yoshikento」でないと表示されないようになっている。図6-28はスプライト「先生ボタ ン」が持つプログラムである。プログラム1に関して旗ボタンがクリックされた時、まず スプライト「先生ボタン」を非表示にする動作が実行される。次に、変数「出席人数」「前 の出題クラウド」「先生mode」を初期値0に設定し、スプライトの配置を指定した座標に 再配置する動作が実行される。最後に、ユーザー名(アカウント名)がyoshikentoかどう かを調べ、yoshikentoであった場合、スプライト「先生ボタン」を表示させ、クラウド変 数「出題クラウド」を初期値0にする。この条件分岐プログラムによって、アカウントが
yoshikento以外であれば児童機として認識し、スプライト「先生ボタン」画像を非表示の
まま児童機が押せないようにすることが可能となる。また、プログラム3はメッセージ「先 生消去」を受け取った時に非表示にするプログラムであり、プログラム2は、スプライト
「先生ボタン」がクリックされた時に実行されるプログラムである。クリックされた後に は変数「先生mode」の値を1にし、メッセージ「先生mode」を送る。最後に「出席人数 は?」を聞くようにし、入力した値を変数「出席人数」に入れるようにしている。このよ うにしておくと、後々児童人数の確認や今回は実装していないが正解率等を算出に役立つ。
図6-27 スプライト「先生ボタン」が持つコスチューム
77
図6-28 スプライト「先生ボタン」が持つプログラム
(2)スプライト名:「おばあさん」「きっぷ」「電車」「本屋」「すし」
図6-29はそれぞれスプライト「おばあさん」「きっぷ」「電車」「本屋」「すし」が持つコ スチュームであり、先生用画面(図6-4)使用されている。図6-30はスプライト「おばあ さん」が持つプログラムである。旗がクリックされた時に非表示にして指定した座標への 再配置が行われるプログラム(プログラム1)やメッセージ「先生mode」を受け取った時 に表示するプログラム(プログラム2)、メッセージ「全員mode終わり」を受け取った時 に非表示にするプログラム(プログラム4)がある。また、他にもスプライト「おばあさん」
がクリックされた時に実行されるプログラム(プログラム4)もあり、後にクラウド変数「回 答クラウド」「出題クラウド」の値をそれぞれ0、1にするプログラムが実行される。他の スプライト「きっぷ」「電車」「本屋」「すし」が持つプログラムに関して、基本的にスプラ イト「おばあさん」が持つプログラムと同じである。違いがある部分は数値の部分であり、
まず旗がクリックされた時に動くプログラムで、指定する座標の値がそれぞれのスプライ トで異なる。プログラム4で、2つのクラウド変数に値を入れるプログラムが実行されてい るが、クラウド変数「出題クラウド」は、各スプライトで異なる数値が入れられるように なっている。具体的には「おばあさん」「きっぷ」「電車」「本屋」「すし」の順で1、2、3、
4、5の数値が入れられるようになっている。先生機で選択した問題を児童機で出題させる 機能について、待機画面(図6-3)中の児童機に、クラウド変数「出題クラウド」の数値を 読み取らせるようにすることで実現可能となる。
78
図6-30 スプライト「おばあさん」が持つプログラム
(a) スプライト「おばあさん」が持つコスチューム
(b)スプライト「きっぷ」が持つコスチューム
(c) スプライト「電車」が持つコスチューム
(d) スプライト「本屋」が持つコスチューム
(e) スプライト「すし」が持つコスチューム
図6-29 スプライト「おばあさん」「きっぷ」「電車」「本屋」「すし」が持つコスチューム
79 (3)スプライト名:「始めるボタン」
スプライト「始めるボタン」は2つのコスチュームを持っている(図6-31)。スタート画
面(図6-2)や待機画面(図6-3)で使用される。図6-32はスプライト「始めるボタン」が
持っているプログラムである。プログラム1、2に関して、共に旗がクリックされた時に実 行されるプログラムである。プログラム1はスプライト「始めるボタン」を初期設定にす るプログラムであり、変数「全員課題」の値を0、画像をコスチューム1にして、位置を再 配置し直して表示させる。プログラム2は後述する「個人課題画面への切り替えと児童が 選択できる問題ジャンルを切り替える機能」に関わるプログラムである。旗がクリックさ れた後にクラウド変数「出題クラウド」の値が100になるまで下に続くプログラムを実行 せずに待っている。詳しくは「個人課題画面への切り替えと児童が選択できる問題ジャン ルを切り替える機能」で説明する。プログラム3はメッセージ「先生mode」を受け取った 時に実行され非表示にするプログラムである。なお、メッセージ「先生mode」の送り主は スプライト「先生ボタン」である。スプライト4と5に関しては、初めのプログラムの実 行を開始するための条件ブロック、メッセージ「先生消去」を送るプログラム、変数「全 員課題」の値を1にするプログラムがあるかないかの違いだけで、後のプログラム構造は 同じである。プログラム4に関して、スプライト「始めるボタン」がクリックされた時に 実行を開始するが、スプライト「始めるボタン」がクリックされる機会は、大半はスター ト画面でのコスチューム1の「始める」ボタンの時しかないと考えられる。プログラム5 はメッセージ「ちょっと待って」を受け取った時に実行されるが、メッセージ「ちょっと 待って」を受け取るタイミングは、児童機での本アプリ使用時の状態遷移『待機画面→「お ばあさん」「きっぷ」「電車」「本屋」「すし」課題の文字入力→解答、解説→待機画面→…』
中の課題の「解答、解説」が終わった時である。即ちプログラム4は基本的には一回目の 待機画面の時にだけ実行され、プログラム5は二回目以降の待機画面の時に実行されると いうことである。但し、二回目以降の待機画面でもコスチューム2状態のスプライト「始 めるボタン」をクリックすればプログラム4もプログラム5と一緒に実行される。しかし ながら、コスチューム2状態のスプライト「始めるボタン」はボタンの見た目をしていな いのでクリックされることは稀であると考えられる上、仮にクリックされてプログラム4 も実行を開始し、その後の展開でプログラム5と処理が重複したとしても特に問題は生じ ない。処理が重複することを回避したい場合は、プログラム4で「このスプライトがクリ ックされたとき」の後のプログラムを条件式のブロック「もし~なら」で包み、条件を「(コ スチューム#)=1」とすれば良いだろう(「コスチューム#」とはあるスプライトにコスチュ ームとして読み込ませた画像の並び順の数値)。スプライト「始めるボタン」では、コスチ
ューム1、コスチューム2の順に並べて保存しているので、コスチューム1のコスチューム
#の値は1、コスチューム2のコスチューム#の値は2となる。具体的にプログラム4、5の
中身を説明していく。(クラウド変数「出題クラウド」=変数「前の出題クラウド」ではな い)まで待つということに関して、クラウド変数「出題クラウド」が変化したかどうかを
80
調べるためのプログラムである。具体例を挙げて説明すると、クラウド変数「出題クラウ ド」、変数「前の出題クラウド」の初期値は0である。この場合、変数同士の値は等しくな るので、先のプログラムは実行されず、児童機の画面は「ちょっと待ってね」の待機画面 のままである。ここで、先生機でスプライト「おばあさん」をクリックした場合、スプラ イト「おばあさん」が持っているプログラムでクラウド変数「出題クラウド」の値は1と なり、変数「前の出題クラウド」の値0とは等しくなくなるので待つことを止めて先のプ ログラムが実行されるようになる。この時、クラウド変数「出題クラウド」の値は1で、
100でも0でもないので、条件分岐で調べた結果、ローマ字入力画面にするべくメッセージ
「選択問題表示」「キーボード切り替え」を送って、自分自身は非表示となるようにする。
その後、「解答、解説」時にスプライト「進む」というスプライトにあるプログラムで変数
「前の出題クラウド」の値をクラウド変数「出題クラウド」の値にして再び待機画面へと 戻ってくる。この時、クラウド変数「出題クラウド」変数「前の出題クラウド」の値はど ちらも1であるので再び(クラウド変数「出題クラウド」=変数「前の出題クラウド」では ない)まで待つ。仮にこの『(クラウド変数「出題クラウド」=変数「前の出題クラウド」
ではない)まで待つ』プログラムがない場合は、児童機は「解答、解説」の後、待機画面 を挟まずに出題クラウドの値に対応した課題のローマ字入力画面が出てくるようになる。
児童が課題を解く、解答・解説を確認している間にスプライト「おばあさん」「きっぷ」「電 車」「本屋」「すし」のいずれかをクリックして確実にクラウド変数「出題クラウド」の値 を調整できれば気にする必要はない。しかし、実際の授業では机間巡視や児童の出来具合 に応じて詳しく解説するので数値を変える余裕がない可能性があること、加えて値を変え 忘れた時のリスクを考え、待機画面を挟んで確実に次に進めるように『(クラウド変数「出 題クラウド」=変数「前の出題クラウド」ではない)まで待つ』プログラムを作成して取り 入れた。
(a) コスチューム1
(b) コスチューム2
図6-31 スプライト「始めるボタン」が持つコスチューム