| プログラミングとは - 学校のプログラミング - |
| プログラミングとは、コンピュータだけの考え方ではありません。 プログラミングとは、どんな考え方なのか、学校を |
| 放送室のハードウェアとプログラム 放送室の「プログラム」と「アプリのプログラム」 プログラムの動作の仕組み アプリが動くまで 何でプログラミングするのか 学校で使われてきたプログラミング言語 学校の メインルーチンとサブルーチン 順番だけの記述から ボタンのイベント オブジェクトとイベントという、現在のプログラミングへ カメをクリックのイベント オブジェクトへのプログラミング マルチタスク( 命令語の書式 プログラミング言語の命令の書式 命令語を試す 命令語の働きを試す方法 命令語は関数 命令語の構造は、数学での関数と同じ 命令語を作る プログラミングとは、自分で新しい命令語をつくること 不完全な関数 プログラミングでは、不完全な関数の形の命令語が多い 完全な関数を作る 完全な関数の形の命令語を作る プログラムの書式 命令語をエレガントに記述する グローバル変数とローカル変数 リスト処理 ワードの集合はリスト カレントなカメ 主役のカメ カメのいろいろなイベント処理 カメというオブジェクトのイベント |
|
|
| ▲TOP 放送室のハードウェアとプログラム |
| 放送室でチャイムを |
チャイムが聞こえてくると近くに学校があるなと気づきます。どこでチャイムを 放送室に入ると、チャイムを鳴らすスイッチらしきものはありません。チャイムコントローラーと呼ばれる機械で時間になるとチャイムを鳴らしています。 ![]() |
|
「何時何分にチャイムを![]() |
||
| お昼の放送で曲を流すアプリケーションソフト | コンピュータを使ってマイクロワールド(LOGO言語)でアプリケーションソフト「お昼の番組表」を作ることができます。 作った番組表は、印刷して教室や この放送室では、コンピュータと調整卓を接続することで、マイクロワールド(LOGO言語)で作った番組表のリンクをクリックして曲を流しています。
|
|
|
|
| ▲TOP プログラムの動作の仕組み |
| マイクロワールドのLOGO言語で作ったアプリ「お昼の校内放送」が動くまでの仕組みを考えてみましょう。 | ||
| アプリケーションをクリックすると・・・ | コンピュータの本体は、小さなスイッチの集まりのようなものです、たくさんのスイッチのどれかをONにしたり、OFFにしていて、まるで職人のようです。電源を入れると、インテルさんの家の職人が起きます。続いて、大きな商社「ウィンドウ」が開店します。商社「ウィンドウ」は、画面に並べられた営業会社「マイクロワールド」からの発注を受けます。 営業会社「マイクロワールド」は、個人客から注文をもらうためのアプリをモニターに表示します。 インテルの職人は、二進数という0と1しかない特別の言葉を使うので、仕事をたのむには、わかる言葉にしてからたのまなくてはいけません。 マイクロワールド(LOGO言語)で作った、「お昼の音楽」というアプリ作品で、放送で流す曲目をクリックすると、次のように順に伝えられていきます。 |
|
|
||
| プログラムの速さ | プログラムの実行速度は、途中の 何段階にも |
|
| ▲TOP |
|
|
| ▲TOP 何でプログラミングするのか |
| 身近な便利ソフトを作るには | 「プログラムを作る」という表現は、いろいろな場面で使われています。「時間割、日課、発表の順番などのプログラムを作るには、大きな紙に手書きをするのでしょうか。カードを 放送室で曲を流すアプリ(アプリケーションソフト)は、マイクロワールドのLOGO言語で作ると印刷と曲を流す操作の両方ができて便利です。 アプリを作るには、何らかのコンピュータ言語が必要ですが、言語を実行するだけでなく、言語の入力を助ける機能、編集の機能、マルチメディアを使う機能などの総合的な アプリを作るには、いろいろな名前の入力・ |
| ワープロなどの本体を作るには | 文章の制作、印刷をするワープソフトの本体やLOGO言語の入力・ マイクロワールドの本体は、mwex.exe という実行ファイルになっています。このような実行システムを作るには、C言語やPascal言語が使われることがあります。例えば、ObjectPascal言語の入力・ どれもが同じプログラム言語で作られているわけではなく、求められる速さと制作時間、プログラム言語の経費などのバランス、さらには、それぞれの国の政策など、どのプログラム言語が使われるかは、いろいろな理由があります。 |
| 小さなプロセッサ用 | アセンブリ言語は、コンピュータの動作に近い二進数のプログラムを書けるのですが、人間が読みにくいので、人間に読みやすいコンピュータ言語として、C言語が生まれ、さらに読みやすい言語へと新しい言語が生まれてきています。しかし、人間にとって読みやすい記述をすると、プロセッサにとっては、回りくどい手順になってしまい遅くなってしまうこがあります。それで、リモコンやおもちゃなどに使う小さなプロセッサの場合は、アセンブリ言語が使われることがあります。 |
|
|
| ▲TOP 模型のハードウェアとコンピュータの開発 |
| 身近になったドローンを見ると | 校庭に集合し飛行機から写真を撮るようなことがありましたが、今は、ドローン(マルチコプター)を飛ばして上空から ←2万円のドローンドローンのプロペラを回しているのはモーターです。 ![]() ←ドローンのモーター |
|
| 3本線のモーター | モーターの学習は、昔は、小学校の理科にありましたが、今は、中学校の理科で行っています。教科書にあるモーターは、2本線で、機械的に電気の流れを変化させて回しています。しかし、ドローンに使われているモーターには、コードが3本出ています。3本線のモーターは、小さなコンピュータによるソフトウェアで電気の流れを変化させて回しています。 ←3本線のついたブラシレスモーター |
|
| ドローンを開けると | 昔は、小中学校ではガソリンエンジンの学習をしていて、子供も 3本線のモーターを使ったおもちゃのドローンのケースを開けると、中には、指の ![]() |
|
| 小さなコンピュータ | ジャイロセンサーは、ドローンの![]() このような小さなコンピュータは、多少のんびりでも許される、リモコンから、高速な動作が必要とされるエンジン |
|
| シリアルポート | マイクロワールドのLOGO言語でも、USBをシリアルポートとして使って、信号の入出力ができますが、動かす模型のハードウェア、小さなコンピュータの知識が必要になります。
|
|
|
|
| ▲TOP 学校の日課プログラミング |
| 学校のチャイムが自動的に鳴り、時間割にそって活動をしています。 一日の
|
||||||||||||
| LOGO言語で書いてみると | 一日の マイクロワールドのLOGO言語で、書いてみました。→
一日の生活をだらだらとつなげて書いたのを見ると、もう少しスマートに工夫できないものかと思いませんか。 そこで、 |
|||||||||||
|
|
| ▲TOP メインルーチンとサブルーチン |
| メインルーチンとサブルーチン | 先程の今日の日課のプログラムを見ると、「チャイムが鳴る、休み時間、チャイムが鳴る」という同じ処理が2回出ています。これを見ると、数学の プログラミングでも、くり返し出てくる処理に名前をつけて部品にして使うというアイデアが出てきました。これを 構造的な記述では、全体の流れを決める部分をメインルーチンとし、くり返し使う部品にあたる流れをサブルーチンとして分けて書きます。
朝の会の次の行の休み時間は、サブルーチンの休み時間を実行したら、次の行の国語にもどります。国語の次の休み時間は、サブルーチンの休み時間を実行したら、次の行の理科にもどります。 そんなことかと思いそうですが、プレゼンソフトなどでは、「行って、そこにもどる」の機能は無いようです。( icard アイカード にはあります) |
||||||||||
| LOGO言語は、関数で構造的記述 | ワープロソフト、ゲームソフトなど、数万行で記述されていると、プログラミングに間違いがあったとき、どこに間違いがあるのかを見つけるだけでも大変です。そこで、全体を構造化して、いくつもの部分に分けてサブルーチンとし、部分を完成させて、部分の組み立てかたをメインルーチンに書いて完成させています。 マイクロワールドのLOGO言語で構造化を意識して書いてみました。→
構造化して記述できるプログラミングの特徴は、ひとまとまりの作業が「手順~終わり」というようなスタイルで区切られていることです。 このひとまとまりは、数学の関数と同じに考えることができます。 このような仕組みは、LOGO言語だけでなくC言語、C#言語など他の言語で、同じように考えられています。 ですから、LOGO言語は、入門用と分かりやすいだけでなく、LOGO言語が分かっていれば、C言語、C#言語も理解しやすくなります。 構造化によって、サブルーチンごとに分けて作業できるようになり生産性が上がりましたが、ここで、新たに作業が見えやすなるアイデアが生まれました。 |
||||||||||
|
|
| ▲TOP ボタンのイベント |
| オブジェクト | 今日の プログラミングの場面で画面に |
||
| ボタン | LOGO言語にあるボタンオブジェクトを教室で オブジェクトであるボタンを左クリックすると、その名前の手順が実行されるようにしてみます。 マイクロワールドのLOGO言語で、書いてみました。→
「ボタンをクリックすると何かを実行する」というつくり(イベントドリブン)は、VB(Visual Basic)、Dlephi(Object Pascal)、C++、C# など広く使われています。イベントは、マイクロワールドのLOGO言語では、「ボタンをクリックしたとき」「カメをクリックしたとき」「カメが色の上に乗ったとき」「色をクリクックしたとき」などがあります。 |
||
|
|
| ▲TOP カメをクリックのイベント |
| カメオブジェクトをクリック | LOGO言語には、ボタンと同じようにカメのオブジェクトがあります。 カメを右クリックして、 カメがクリックされるとイベントが発生し、カメの中に書かれた命令が実行されます。→ ![]() |
| カメオブジェクトの |
カメのオブジェクトでは、カメのいる場所を かめの情報 をクリックするとわかります。まるでカメが学習するように 手順作成 を開いて、このカメ独自の命令を追加することができます。 カメには、いろいろなカメがいるように、カメを右クリックして形のパレットを開き、カメの形を変えることができます。 → |
|
|
| ▲TOP マルチタスク( |
| マルチタスク | 休み時間にA君とBさんが歩いています。これをプログラミングするには、どうしたらよいでしょう。 オブジェクトがあるので、A君、Bさんをオブジェクトで作ればよいでしょう。 オブジェクトのA君をクリックすると、A君が動きというタスクが始まる。オブジェクトのBさんをクリックすると、Bさんの動くというタスクが始まる。と考えます。複数のタスクがあるので、マルチタスクと呼びます。(実際には、LOGO言語では、A君、Bさんを順番に切りかえながら並列処理として実行しています。) マイクロワールドのLOGO言語で、作ってみました。→
|
||
| 無限 | この作品のように、マルチタスクでは、A君とBさんは、独自に動いています。 オブジェクトを右クリックして、中を開くと、無限に にチェックが入っています。 ![]() LOGO言語では、無限 に繰り返しているオブジェクトは、マルチタスクとなり、独自に動くことができます。 このようなマルチタスクは、プログラミングの歴史上では |
||
|
|
| ▲TOP 命令語の書式 |
| 命令語の書式 | 中学校の技術・家庭で学習するプログラミングに用いるプログラミング言語には、LOGO言語、C言語、BASIC言語などがあります。どの言語にも命令語がありますが、命令語という言葉を予約語とか定義された単語とか基本用語とか、いろいろな言い方をされます。ここでは、命令語と呼ぶことにします。 体育のときに命令語がありますね。 「右向け 右」という使い方はどうでしょうか。右向けという言葉と右という言葉で、命令しています。これを書式で表すと右向けが命令語で、右がインプットとなり、
LOGO言語でも、命令語は、同じ書式になります。 もしも、 命令語とインプットの間のスペースを忘れて書いて
体育のときの「右向け 右」で90度右へ向くことをLOGO言語で書くと
|
|||
|
|
| ▲TOP 命令語を試す |
| 命令語を試してみよう | 命令語を試してみましょう。 カメを1匹
|
|||||
| 授業の演出 |
授業では、ここまで、説明して生徒が実行したら、聞いてみます。 「命令語として 前へ があるなら 後ろへ もあるのかな?」 じゃあ、試してみようということになるでしょう。
真っすぐに進むだけでは困ります。曲がるにはどうしたらよいでしょうか。
ということになるでしょう。
コンピュータ言語としては、右へ があれば 左へ は必要ありません。左へ も準備されているのが子供向けのコンピュータ言語ということなのでしょう。 もしも、左へ という命令語が無かったら、どうする? と聞いてみましょう。 答えは、
このとき、注意するのは、- と 90 の間を開けずに -90 とつなげて書きます。これも質問してみると楽しいですね。どんな回答があるか、算数の計算の意味が再確認されますね。 理由は、-90は、負の数を表すけど、- 90 とスペースを入れると引き算の計算式を書いたことになるからです。 ダメ押しで、「後ろへ が無かったらどうする?」と質問してみましょう。今度は、ほとんどの生徒がわかるので大喜びで答えるでしょう。正解は・・・
間違えて、 前へ - 100 と書いた生徒は、先生が教える必要はないでしょう。回りの生徒が喜んで教えるはずです。 プログラミング教育がこれまでの授業と違うのは、生徒が話を聞いているだけだったり、間違えたままだと次に進めないことです。生徒一人一人が着実に学習を進めるような授業を進め方、演出が必要です。 |
|||||
| ▲TOP |
|
|
| ▲TOP 命令語は関数 |
| 関数表記 | LOGO言語の書式は、 命令語 インプット という書き方ですが、このように書いたものを関数と言います。 算数では、式でグラフを描いたりすることがあります。中学校では、グラフの式などを関数と呼んでいて、 Y = aX というような書き方をします。この関数の式は、高校では、f(X) と書くことがあります。 LOGO言語の書式は、高校で学ぶ関数の書き方に似ています。 命令語 インプット をもっと数学風に書くと 命令語(インプット) となるでしょう。 だったら、 前へ(100) と書けばいいじゃないかと思いますね。そのような書き方をするコンピュータ言語もあるので、命令語が関数だということが理解できていれば、LOGO言語を学習することで、他の言語もすぐに理解できるようになります。関数であると理解しないで学習していくと、丸暗記になってしまい応用が利かず楽しく無くなってしまいそうですね。 命令語の作り方は、新しいプログラミング言語として、いろいろな方法が研究されてきましたが、結局は、今の関数表記が基本です。 |
| ▲TOP |
|
|
| ▲TOP 命令語を作る |
| LOGO言語の命令語 | LOGO言語の命令語はどれくらいあるのでしょう。 マイクロワールドのLOGO言語は、教育用コンピュータ言語として開発されたので、開発当初に小学校でLOGO言語を使い、どのような命令語が必要か調査しながら、命令語が作られました。命令語が全部で242あります。 |
|
| 新しい命令語を作る | もしも、「242語の日本語でしゃべってください」と言われたら、簡単なことしか話せなくなってしまうでしょう。LOGO言語だって言語ですから、242語しかなければ、できることが少なくなってしまいます。 LOGO言語は、関数表記ができるので、新しい命令語が作れます。 新しい命令語を作るときは、最初から作られている命令語を集めて、新しい命令語にします。それが手順という書き方です。例えば、カメをゆっくり前へ進める命令語がほしいとき ゆっくり前へ という命令語を作ってみましょう。 →
この関数を使うときは、例えば、 ゆっくり前へ 100 とコマンドセンターに書いてEnterキーを押します。あるいは、ボタンに書いて、ボタンをクリックすることで実行できます。あるいは、カメの中に書いて、カメをクリックしても実行されます。このとき、変数 :歩数 には、100 という数字が格納されています。 これで、命令語は、全部で243になったわけですが、内訳は242個が予約語で1個が新たに作られた命令語、つまりプログラミングされたわけです。 |
|
| ▲TOP |
|
|
| ▲TOP 不完全な関数 |
| 関数とは | 関数とは、どのようなものなのかを中学校ではブラックボックスを使って説明しています。「関数とは、ブラックボックスのことで、ブラックボックスに何かを入れると、何かが出てくる」と説明しています。
ところが、実際には、不完全な形の命令語が多く使われています。 不完全な関数とは、インプットが無い関数やアウトプットが無い関数、あるいは、インプットもアウトプットもなくて状態を操作するだけの関数です。 |
|
| OUTPUTだけ | LOGO言語のインプットの無い関数の例としては、 向き とか 色 という命令語があります。コマンドセンターで 向き と書いて、Enterキーを押してみると、インプットが無いのにアウトプットが出てきます。アウトプットされた数字は、どこにも使われていないのでエラーとしてコマンドセンターに表示されます。 → 同じようにコマンドセンターに 色 と書いてEnterキーで実行してみてもアウトプットが出てきて、エラーになります。LOGO言語では、アウトプットしかない命令語をレポーターと呼び、それ以外をコマンドと呼ぶことがあります。 |
|
| INPUTだけ | では、反対にインプットしか無い関数とは、どんな命令かと言うと、 向きは とか 色は という命令語があります。コマンドセンターに 向きは 0 と書いてEnterキーを押すと、カメが0度の方向を向きます。向きは 90 と書いてEnterキーを押すとカメが90度の方向を向きます。色は の命令語も 色は 1 と書いてEnterキー、色は 2 と書いてEnterキーと試してみましょう。 → ここで気づくと思いますが、 前へ 100 と実行したとき、アウトプットが出てきてエラーとならなかったのだから、前へ という命令語は、アウトプットの無い関数だということがわかります。 |
|
| INPUT、OUTPUTがある | では、完全な関数の形をした命令語には、どのようなものがあるのでしょうか。 乱数 という命令語は、インプットもアウトプットもある命令語です。コマンドセンターに 乱数 20 と書いてEnterしてみましょう。 インプットが20で、使われていないアウトプットによってエラー表示が出ます。 バッチ処理以上のプログラミング言語にとって関数は必須です。しかし、それぞれの言語で呼び名が違っています。「LOGO言語では、ファンクションもプロシージャも手順と書くんだ」とわかっていれば、他の言語を見てもすぐに理解できるでしょう。 |
|
|
|
| ▲TOP 完全な関数を作る |
| LOGO言語では、新しい命令語を 「手順は ~ 終わり」で作ります。「手順は」と書いていますが、不完全な関数も完全な関数も作れます。 ボタンをクリックすると、カメが散歩する(動く)という命令語をそれぞれの作り方で作ってみましょう。 |
|
| INPUT、OUTPUTが無い関数を作る | (1)INPUT、OUTPUTが無い関数「散歩」を作る→![]() |
| INPUTだけある関数を作る |
(2)INPUTがある関数「散歩」を作る→ INPUTは、手順の名前の右に書いた :歩数 で受け取ります。 |
| 完全な関数を作る | (3)INPUT、OUTPUTがある関数「適当に散歩」を作る→ INPUTは、:歩数で受け取り、OUTPUTは、表示 で返します。 ![]() ほとんどのプログラミング言語で、関数を作ることが基本です。関数では、INPUTで受け取る数を「 |
|
|
| ▲TOP プログラムの書式 |
| 美しく書く | LOGO言語でプログラミングすることの大半は、手順を書くことです。手順を書く場所は、カメの中とタグエリアにあります。 必ず守らなくてはいけないのは、命令語は、スペースや「」で区切って書き、行の最後でEnterキーを押すことです。 Enterキーを押すと、画面には表示されませんが、コントロールコード13が書き込まれています。見えないのですが、これが正しく書き込まれていないと、エラーになります。後は、自由に書いても良いのですが、これはノート指導と同じで、読みやすい書き方を工夫していく必要があります。 正方形を描くプログラミングをいろいろな書き方で比べてみましょう。 |
| 汚い書き方 |
(1)改行しない書き方→ 手順の中を1行で続けて書いていったプログラミングです。手順の欄の右端で、折り返していますが、Enterキー押されていないので、コンピュータの中では、つながった文字列として扱われます。 ![]() 手順のタブを広げると、つながっていることがわかります。 ![]() |
| 少しいい |
(2)改行した書き方→ 改行することで、見やすくなり、繰り返している場所が明確になります。 |
| 見やすい書き方 | (3)繰り返しを使って書く→![]() |
| 基本の書き方 | (4)読みやすさを優先した書き方→ 簡単なプログラムなら、上記の方法で十分に感じます。しかし、いろいろな作品を作っていくと気づくことなのですが、もう少し工夫した書き方をすることが基本です。 青字で書いた部分は、手順の外なので、実行されず、エラーにもなりません。 赤字で書いた部分は、最初に ; が書かれていて、以降の文字が実行されないので、エラーになりません。 これらの方法で、プログラムの説明を書いておくと、後で読み直すときにわかりやすくなります。 くり返しの 「 と 」 は、対応している必要があるので、インデントをつけて書くと間違いなく対応して書けます。 |
| 小さな作品ばかり見ている気づきにくいものですが、たくさんの友達の作品を見ていくと、読みやすい書き方に気づいていくことでしょう。 |
|
|
|
| ▲TOP |
| だんだん速くなる | 中学校の理科で「だんだん速くなる運動」という学習があります。 等加速度直線運動のことなのですが、高校に行ったら、数学式で説明するので難しいから「だんだん速くなる運動」なんていう表現をしています。しかし、LOGO言語で書くなら簡単です。 → 「だんだん速く」という関数を作り、ボタンをクリックして、INPUTを0から、「だんだん速く」を呼びます。「だんだん速く」の最後の行で、INPUTを0.0001だけ増やして、自分自身を呼べば、だんだん速くなります。 ![]() |
| このような処理は「再帰処理」と呼ばれ、無限に実行されるので、ある条件になったら、止めるようにします。 再帰処理では、関数から関数が繰り返し呼ばれる無限処理です。どこから関数を呼んだかの印がメモリーの中に書き込まれていくので、条件を決めて、止めるようにしておかないと、メモリーが使われていきコンピュータが異常状態になってしまいます。LOGO言語の中では、 無限に というチェック場所があるので、安易にチェックを入れやすいのですが、再帰処理がわかっていれば 無限に の設定に |
|
|
|
| ▲TOP グローバル変数とローカル変数 |
| プログラミング言語で使う変数には、数値や文字が 変数には、グローバル変数とローカル変数があり、参照できる範囲が違います。 |
|||||
| グローバル変数 | (1)グローバル変数 一般的にプログラム言語では、文字の変数か数値の変数かを
ボタンの中で、変数を 名前は ”友達の名前 ”花子 のボタンをクリックすると、グローバル変数の 友達の名 に 花子 が データは :友達の名前 のボタンをクリックすると、格納されていた 花子 がデータ に出力されます。 ![]() グローバルな数値変数として使うときは、 名前は で、数値を入れれば、自動的に数値変数になります。
ボタンの中で、変数を宣言して試して見ましょう。→ ![]() グローバル変数は、データを格納すると、コンピュータの電源を切るまで、格納されています。 |
||||
| ローカル変数 | (2)ローカル変数 INPUTのある関数を作るときに使う変数は、ローカル変数になっています。ローカル変数は、その手順の中だけで使える変数なので、手順の外にあるボタンから使おうとしてもエラーになります。 → 宣言 ”花子 のボタンをクリックすると、:友達の名 という名前の変数が作られて、”花子が 手順の中で、データに 花子 と出力して、変数の :友達の名 は消えます。 ですから、 データは :友達の名 のボタンをクリックしても、既に :友達の名 は消えているので、” 花子 は出力できずエラーになります。 ![]() INPUTが無いときは、仮の名前は でローカル変数を作ります。
→ ![]() |
||||
|
|
| ▲TOP リスト |
| リスト |
文字変数には、文字が LOGO言語のリスト処理は、他の言語の中でも →
変数 :命令 に「前へ 後ろへ 右へ 左へ」がリストの形式で格納されます。リストは、スペースで区切られるので、「前へ」「後ろへ」「右へ」「左へ」という4個のワードの集合になっています。 変数 :命令に入っている リストの中の最初のワードである「前へ」がコマンドセンターに書かれます。 変数 :命令 の2番目以降のワードである「後ろへ」「右へ」「左へ」がコマンドセンターに書かれます。 変数 :命令の 最後のワード「左へ」がコマンドセンターに書かれます。 変数 :命令 にあるワードの一つが、ランダムに選ばれてコマンドセンターに書かれます。 変数 :INPUT に 数値の 90 が格納されます。 どれか で選ばれた :命令 の中のワードの一つと :INPUT の90がリストになります。 リストは、スペースで区切られているので、 「右へ 90」のような書式になります。 :命令 のワードの一つと :INPUT の90 がリストになった「前へ 90」とか「右へ 90」がランダムに実行されます。 一般的なプログラミング言語でも文字を足して、文字列を作ることができますが、LOGO言語では、作った文字列を変数名や命令語として利用することができます。 |
|
|
|
| ▲TOP カレントなカメ |
| カレントなカメ | カメやボタンは、オブジェクトです。ページにたくさんのオブジェクトが使われたときは、どのオブジェクトに命令するのか指定する必要があります。 ページにカメが3匹つくり、名前を ”赤亀 ”青亀 ”緑亀 とします。ボタンから 前へ 100 と命令すると、最後にクリックしたカメが動きます。このときのカメをカレントなカメと言います。 →
を左クリックすると、同時に赤亀、青亀 がカレントになり、2匹が動きます。 を左クリックすると、全部のカメが同時にカレントになり、3匹が動きます。 |
|
|
|
| ▲TOP カメのいろいろなイベント処理 |
| オブジェクトであるカメには、カメをクリックした、カメが色に乗った、カメとカメが衝突したというイベントを持っています。 | |
| クリックイベント | (1)カメをクリックしたときのイベント カメをクリックして、プログラムを実行させたいときに使います。 カメの中に命令を書くことでカメをクリックすると、カメの中の命令が実行されます。 → ![]() ![]() ![]() |
| 色に乗ったイベント | (2)カメが色の上に乗ったときのイベント カメがページの上で動いているとき、カメが色の上に乗ったことを判断して、プログラムを実行させたいときに使います。 カメの右クリックして、設定の中の追加設定に命令を書くことで、カメをクリックして、動き出したカメが赤い色の上に乗ると、メッセージを出します。 → ![]() ![]() ![]() ![]() |
| エクスポート インポート |
![]() もらった友達は、カメのインポートによって、もらったカメを自分の作品の中に入れられます。 ![]() → → |
| カメとの衝突イベント | (3)カメとカメが衝突したときのイベント カメを右クリックして設定の追加設定に命令を書くことで、黒いカメをクリックすると動き出し、赤いカメに衝突するとメッセージを出します。 → ![]() ![]() ![]() ※ 衝突判定は、無限ループで行っています。衝突判定から、無限ループの関数を呼び出すと、無限に無限となりスタックが足りなくなり、作品がフリーズ状態になる場合があります。うまくいかないときは、手順でのイベント判定で行います。 |
| 手順でカメをクリック |
(4)手順から、カメへイベントを送る カメをクリックするのではなくて、手順の中で、カメをクリックする方法です。 あいさつ のボタンをクリックすると、タブエリアに書かれた手順の中から、女の子 と 男の子 のカメにクリックのイベントを発生させます。(カレントなカメを参照) → ![]() ※ 全部「クリックオン」 でも同じで |
| 手順で |
(5)手順でのカメとカメの衝突イベント判定 カメの中の衝突判定ではなくて、無限に手順で衝突を判定する方法です。 全部「クリックオン」のボタンをクリックすると、青いパックンが動き出します。青いカメと赤いカメは、無限ループで衝突判定を行っていて、パックンが衝突すると、メッセージを出します。 → ![]() ![]() パックンが衝突した、すぐ後は、まだ衝突しているので、パックンが通り過ぎるまで、隠れる で姿を消しています。 |
| 色がカメとの |
(6)色からのカメの衝突判定 カメの中や手順で衝突判定するのではなくて、ページに塗られた色にあるイベント処理を使って、カメが色と衝突したことを判定する方法です。 カメをクリックすると動き出します。 赤色は、カメが乗るとイベントを発生して手順を実行してメッセージを出します。 → ![]() ![]() |
| ▲TOP |
