近年、IT・プログラミングの分野は急速に発展しています。
この時代の流れに沿うように、IT教育も盛んになってきています。IT教育に活用できるツールとして、「Scratch」が子供でも扱うことができるプログラミング環境として注目されています。
筆者は、自分の子供にIT技術の素養を身につけさせたいと思い、まず筆者自身がScratchを習得しました。
そして、家族で勉強会を毎週開催し、子供と楽しく勉強しています。
この家族勉強会の一環としてScratchでタイピングゲームを作ったところ、当時小学1年生だった筆者の子供がタッチタイピングを習得することができました。
それから数年たった今では、大人顔負けのスピードでタイピングをしています。
自分の子供にタッチタイピングを習得させたいという親御さんは、筆者以外にも多くおられると思います。その皆様にとって、筆者と筆者の子供が経験したプロセスは有益な情報だと思い、本書にまとめることにしました。
本書は、子供にタッチタイピングを習得させたい親御さん向けの本です。お子さん向けの本ではないことにご注意ください。内容のレベルは、Scratchを触ったことがない入門者・初心者の方でも習得できるものにしています。
本書の内容は、Scratchの概要および基本操作、そして1文字タイピングゲームおよび文字列タイピングゲーム作り、についてまとめたものです。本書により、Scratchで1文字タイピングゲームと文字列タイピングゲームを自作できるようになります。
筆者の子供がタッチタイピングを習得できたのも、1文字タイピングゲームと文字列タイピングゲームで何度も遊んだからです。
親が作ったゲームを子供はとても喜んで遊んでくれます。ぜひScratchでタイピングゲームを作って、お子さんに遊ばせてみてください。
本章では、Scratchについて解説します。
Scratchをすでに触ったことがある方は、次章まで読み飛ばしても大丈夫です。
Scratch(スクラッチ)は、Scratch財団がマサチューセッツ工科大学メディアラボ ライフロングキンダーガーデングループと共同開発している、子供でも扱える無料の教育プログラミング言語およびその開発環境です。
次の画像が、実際にプログラムを作成するためのコーディング画面です。
画面左にさまざまなブロックが並んでいます。このブロックには色々な命令が書かれています。
このブロックを次の画面のように中央の枠にドラッグアンドドロップして移動させ、命令を繋げていくことで、プログラミングができるという仕組みです。
Scratchは命令文を暗記する必要はなく、ほとんどタイピングしなくてもプログラミングできるため、子供でも扱うことができる素晴らしいプログラミング環境です。
Scratchのようなブロックを用いたプログラミング環境を、「ビジュアルプログラミング」と言います。
一方、VBAやPythonのように命令文をタイピングして書いていくようなものを「テキストプログラミング」と言います。
Scratchはテキストプログラミング環境ではありませんが、プログラミングの最重要要素である「条件分岐」「繰り返し」を学ぶことができます。
さらに、「変数」「リスト(配列)」など、やや難しい内容も実装できます。
プログラミングを学ぶ上で必須の内容をすべて学べるといっても、過言ではありません。
さて、2023年8月現在、Scratchにはインターネット上のWebサイト版と、PCにダウンロードして使うデスクトップアプリ版の2種類あります。
Webサイト版は、次のURLにWebブラウザーからアクセスすれば、いつでも誰でも使用できます。
https://scratch.mit.edu/
次の画面がトップ画面です。
そのまますぐに使うことができますが、作成したデータをWeb上に保存したい場合は、サインインする必要があります。
はじめてサインインする方は、画面右上の「Scratchに参加しよう」からユーザー登録をする必要があります。画面にしたがって登録してください。
サインインすると、次の画像のように右上にユーザー名が表示されている状態になります。
本書では、このWebサイト版をサインインした状態の環境を使用します。
デスクトップアプリ版は、Microsoft Storeでダウンロードできます。
2023年8月現在、「scratch」で検索すると、次の画像に示す「Scratch3」が表示されます。これがデスクトップアプリ版のScratchです。
デスクトップアプリ版は、Webサイト版に比べて一部の機能(バックパック等)が使えません。ただし、これら機能はScratch中級者以上向けの機能であり、本書では取り扱いません。
Webサイト版、デスクトップ版のどちらを使っても問題ありませんが、本書では前述の通り、Webサイト版の画面で解説します。
早速Scratchのサイトに行き、サインインしてから、「作る」ボタンを押してください。
このような画面が表示されます。
はじめて起動するときは、英語表記がデフォルトで起動する可能性があります。英語表記で起動したら、言語設定をしましょう。
次図の通り、Scratchの初期画面のメニューバーに「Settings」があるので、この中の「Language」を「日本語」にします。
なお、お子さんがScratchを使う場合には、「にほんご」を選択してもよいと思います(本書は言語設定を「日本語」にした前提で解説します) 。
さて、一番左にあるカラフルな丸いボタンの中に「イベント」というボタンがあるので、クリックしてください。
そして、[旗が押されたとき]のブロックを、中央の白い部分にドラッグアンドドロップしてください。
続いて、左のカラフルな丸いボタンの中の「見た目」をクリックし、[こんにちはと2秒言う]をドラッグして中央に持ってきてください。
ここで、先ほど中央に置いた[旗が押されたとき]の真下に移動し、くっつけてください。
さらに、同じ画面で[うーんと2秒考える]も、ドラッグアンドドロップしてください。
これでプログラミングできました。
早速動かしてみましょう。
ゲーム画面の上にある緑の旗のボタン(:「実行」ボタン)を押してください。
すると、ゲーム画面のネコが「こんにちは!」と2秒言った後、「うーん」と2秒悩みます。
このように[旗が押されたとき]をスタート地点として、繋げたブロックが上から順番に実行されていきます。
このようにプログラムすることができる仕組みが、Scratchです。
ゲームプログラミングについても解説します。
プログラミングの中でも、「ゲームプログラミング」には特徴があります。それは「人間のキー入力」があるということです。
ゲームは、プログラムが所定の動作をして終了するものではありません。プログラムの途中で人間のキー操作を検出し、それをフィードバックして結果を変化させる必要があります。
これを実現する仕組みが、「恒常ループ」と「条件分岐」になります。
先ほどのプログラムに、次のように手を加えてください。
まず、「制御」の中から[もし…なら、でなければ]をドラッグし、[こんにちは!と2秒言う][うーんと2秒考える]の真上に移動してください。
そして、ふたつのプログラムが挟み込まれるようになったところでドロップしてください(次図参照)。
成功すれば、次図のようにふたつのプログラムが[もし]の中に挟まります。失敗したらctrl+zで元に戻し、もう一度実施しましょう。
さらに、[うーんと2秒考える]をドラッグし、すぐ下の[でなければ]の位置に挟まるようにドロップします。
成功すれば次図のようになります(失敗したらctrl+zで戻し、再び移動させましょう)。
そして、「調べる」の中から[スペースキーが押された]を見つけ、これを[もし]の6角形の枠に入れてください。
これでスペースキーを押したら「こんにちは!」、押していなければ「うーん」というプログラムの完成です。
では、さっそく旗を押して実行してみましょう。
上記の図のように、「うーん」と言いますが、スペースキーを押しても何の変化もしません。
ただし、スペースキーを押しながら旗を押すと、「こんにちは!」と言います。
これは、プログラムは上から順番に1度だけ実行されるため、旗が押された直後しかスペースキーの入力判定が行われず、このような動作となったものです。
そこで、さらにこのプログラムを[ずっと]で囲います([ずっと]は「制御」の中にあります。次図参照)。
プログラムの改造が終わったら、旗を押し、スペースキーを長押ししてみましょう。
スペースキーを長押しして待っていると、「うーん」から「こんにちは」にセリフが変わります。
このように[ずっと]でプログラムを囲むと、プログラムが[ずっと]の一番下まで進んだときに、一番上まで戻るようになります。この中で、人間のスペースキー入力を検出できるようになります。
プログラミング経験のある方は、[ずっと]による無限ループに違和感があったかもしれません。
しかし、ゲームプログラミングでは無限ループを作り、その中で条件分岐を用いて人間のキー入力を検出させることは、よく用いられる手法です。
ゲームプログラミングでは、この無限ループのことを「恒常ループ」と言います。
Scratchでゲームを作る際に「ずっと(恒常ループ)」「もし(条件分岐)」の組み合わせは非常に多く登場します。本書のタイピングゲームも、この仕組みを使います。
筆者は、この組み合わせを 「ずっともしもしパターン」 と呼んでいます。
なお、このプログラムは恒常ループ(「ずっと」)を有するため、永遠に動き続けてしまいます。
Scratchでプログラムを停止するためには、実行ボタンの隣の赤い丸のボタン(停止ボタン)を押してください(次図参照)。このボタンを押すと、Scratch上のすべてのプログラムを停止できます。
プログラムを作っていくうちに、プログラムの部品を削除したくなることがあります。
この場合、次の図のように削除したいプログラム部品をドラッグし、左のプログラム部品の枠にドロップすると、削除できます。
作ったプログラムを保存してみましょう。
ウィンドウ右上に「直ちに保存」という文字が表示されている場合、これをクリックしてください。
もしも表示されていなくても安心してください。Web版Scratchは数分ごとに自動保存される機能があるので、この本を読んでいる間に自動保存されたのだと思います。
それでも、自動保存はちょっと不安があると思います。
この場合、Ctrl + Sボタンを押してください。
ウィンドウの右上に「プロジェクトを保存中…」と表示され、すぐに「プロジェクトが保存されました」と表示されます。
これで、ScratchのWebサイト上に保存されました。
この保存機能では、Scratchサーバー上にデータが保存されます。そのため、サインインした状態でなければこの保存機能は使えませんので、ご注意ください。
保存されたプログラムを開くには、次のような操作を行います。
まず、ウィンドウ左上の[SCRATCH]ボタンを押してください。
トップ画面に戻りましたね。
ここから、先ほど保存したファイルを開く作業を行ってみたいと思います。
まず、右上のフォルダーボタンを押してください。
フォルダーボタンを押すと、過去に自分が作ったScratchのプログラムファイルが表示されます。
そして開きたいファイルの名前をクリックし、次の画面の右上の[中を見る]をクリックしてください(次図参照)。
これで、先ほど保存したファイルを開き、プログラム画面に帰ってくることができました。
なお、先ほどの画面で直接ゲームを遊ぶことができます。
次章のタイピングゲームを作ったら、この画面の旗を押して遊んでみてください。
旗はゲームウィンドウの左上と、ゲームウィンドウ中央のどちらを押してもOKです(次図参照)。
お使いのパソコンにプログラムデータを保存する方法もあります。
Scratchのプログラム画面から「ファイル」⇒「コンピューターに保存する」をクリックすれば、「.sb3」ファイルとして保存できます。
この「.sb3」ファイルは、Scratchのプログラム画面から「ファイル」⇒「コンピューターから読み込む」で開くことができます。
今回体験した通り、Scratchは左の枠からプログラムを取り出し、中央にプログラムを書いていきます。
本項では、Scratchの各部名称を解説します。
Scratch中央のプログラムを書く部位を「スクリプトエリア」と言います。
プログラムの素材(ブロック)は画面の一番左にあります。ここを「ブロックパレット」と言います。
このブロックの中から実行したいコードを探し、真ん中にドラッグアンドドロップしてプログラミングします。
右上の枠が実際に作ったプログラムが動く場所です。ここを「ステージ」と言います。
プログラミング中は画面が小さい方が便利ですが、本格的に遊ぶときには右上の[全画面表示]ボタンをクリックすると、大きな画面で遊ぶことができます。
その他にもScratchには色々な機能がありますが、一気には覚えられられないため、ゲームを作りながら少しずつ覚えていけばいいと思います。
Scratchは、ブロックを繋げていくだけでプログラミングできます。そのため、Scratchを習得するための労力は他のプログラミング言語に比べて、かなり小さいと思われます。
しかも、本章で紹介した「ずっと」「もし」はプログラミングの基礎である「繰り返し処理」「条件分岐」そのものです。
筆者の子供も 「ずっともしもしパターン」 の愛称と共にゲームを何個も作成し、繰り返し処理と条件分岐のことを完全に理解しました。
本書は親御さん向けの本ですが、本屋さんには子供向けのScratchの本が多く販売されています。幼稚園高学年くらいのお子さんからScratchでプログラミングできますので、ぜひ挑戦してみてください。