この記事では、子ども向けプログラミング言語Scratch(スクラッチ)を使って「アルファベットを点字に変換するプログラム」の作り方を紹介します。
アルファベットを点字に変換するプログラムを作ることで、以下のことが学べます。
- プログラミングの基礎「変数」と「リスト」を学べる
- 点字のしくみについて理解が深まる
- 視覚障害者への理解が深まる
夏休みの自由研究におすすめ。点字をテーマにした調べ学習に追加して、みんなと差をつけちゃいましょう!
Scratch(スクラッチ)の基本的な使い方は、下の記事で紹介しています。
点字とは視覚障害者のための文字
点字とは、視覚障害者のための文字です。小さな点を使って文字や記号を表現し、指で触って読むことができます。
フランスのルイ・ブライユによって発明されました。
点字は、現在世界中で広く使われており、視覚障害者にとって、文字を読むための重要な手段です。点字で書かれた本、新聞、雑誌、手紙、標識など、さまざまなものが点字で作られています。
点字のしくみ
点字は、6つの点を組み合わせて文字や記号を表現します。アルファベットの文字や記号ごとに異なる点の配置があり、それを覚えることで点字を読むことができるようになります。
点字変換プログラムを作ろう
Scratchでアルファベットを点字に変換するプログラムを作ってみましょう。
下は完成したプログラムです。
アルファベットを左右の三角ボタンで選択すると、それに対応する点字が表示されます。(点のある場所:● ない場所:○)
このプログラムは変数とリストを使います。
変数は、プログラムで使うデータを一時的に保存するための場所。リストは、複数のデータをまとめて管理するためのしくみです。
下の記事でくわしく解説しています。よく分からない人は、あわせて読んでみてください。
スプライトを準備する
今回使うプログラムのスプライトを準備しましょう。
ネコのスプライト(スプライト1)は使わないので消してください。
アルファベット
アルファベットのスプライトを追加します。
- 「スプライトを追加」→「スプライトを選ぶ」を選択
- Aのスプライトを選ぶ
AのスプライトにB~Zのコスチュームを追加します。
- コスチュームタブ→「コスチュームを追加」→「コスチュームを選ぶ」を選択
- Bのコスチュームを選ぶ
同じ手順で、C以降のコスチュームも追加しましょう。
すすむボタン
すすむボタンを作りましょう。
「スプライトを追加」→「描く」を選んで、三角形をかきます。
四角形をかいて、頂点をひとつ消すと三角形になります。
ペイントエディターのくわしい使い方は「【スクラッチ(Scratch)】絵を描いてスプライトや背景を作ろう(ベクター編)」で解説しています。
1の点
1の点のスプライトを作りましょう。
- 「スプライトを追加」→「描く」を選択
- 〇をかく
- 〇を複製する(コスチューム1を右クリック→複製)
- コスチューム2の塗りつぶしの色を黒にして、●を作る
アルファベットのプログラム
すすむボタンをおすと、次のアルファベットが表示されるプログラムを作りましょう。
アルファベット
何番目のアルファベットかを表す変数「アルファベット番号」を作ります。
変数カテゴリから「変数を追加する」をクリックし、「アルファベット番号」という名前の変数を作ります。すべてのスプライト用で作ってください。
変数「アルファベット番号」に対応するコスチュームを表示するプログラムを作ります。
- イベントカテゴリから「緑のハタが押されたとき」をコードエリアに出す。
- 変数カテゴリから「アルファベット番号を(0)にする」を出し、「緑のハタが押されたとき」の下に配置する。
- 「アルファベット番号を(0)にする」の0を1に変更する(初期値を設定)
- 制御カテゴリから「ずっと」を出し、「アルファベット番号を1にする」の下に配置する。
- 見た目カテゴリから「コスチュームを(Block-z)にする」を出し、「ずっと」の中に配置する。
- 変数カテゴリから「アルファベット番号」を出し、「コスチュームを(Block-z)にする」のBlock-zの部分に配置する。
これで「アルファベット番号」に対応したコスチュームが表示されるようになりました。
すすむボタン
すすむボタンをおすと、変数「アルファベット番号」が1増えるプログラムを作ります。
- イベントカテゴリから「このスプライトが押されたとき」をコードエリアに出す。
- 変数カテゴリから「アルファベット番号を(1)ずつ変える」を出し、「このスプライトが押されたとき」の下に配置する。
変数「アルファベット番号」が26(Z)を超えた時、1(A)にもどる処理を追加します。
- 制御カテゴリから「もし なら」を出し、「アルファベット番号を(1)ずつ変える」の下に配置する。
- 演算カテゴリから「()>(50)」を出し、「もし なら」の中に配置する。
- 「()>(50)」を「(アルファベット番号) > (26)」に変更する。
- 変数カテゴリから「アルファベット番号を(0)にする」を出し、「もし アルファベット番号 > 26なら」の下に配置する。
- 「アルファベット番号を(0)にする」の0を1に変更する。
すすむボタンをおしてテストしてみましょう。アルファベット番号が増えて、アルファベットのスプライトが次のアルファベットに変わるはずです。
正しく動くことが確認できたら、すすむボタンのスプライトを複製して、もどるボタンを作ってみましょう。どこを変更すればいいか、自分で考えてみてください。
点のプログラム
アルファベットに対応する点字が表示されるプログラムを作りましょう。
6つの点のありなしを管理するしくみを考えます。
左側を上から1の点、2の点、3の点、右側を上から4の点、5の点、6の点、として点に番号をつけ、点のある場所を●、ない場所を○とします。
点のありなしを6けたの数字で表現してみました。
1文字目は1の点、2文字目は2の点…といったふうにわりあて、点のある場所は1、ない場所を0にします。
Aは1の点だけなので「100000」になります。
点字リストを作る
A~Zまでの6けたの数字が入ったリストを作ります。
変数カテゴリを選んで「リストを作る」をクリックし、「点字リスト」という名前のリストを作ります。すべてのスプライト用で作ってください。
ABC順に26個のデータを作りましょう。メモ帳などに打ち込んで、読み込むと楽です。
アルファベット番号、アルファベット、点字リストをまとめると以下のとおりになります。
番号 | アルファベット | 点字テーブル |
---|---|---|
1 | A | 100000 |
2 | B | 110000 |
3 | C | 100100 |
4 | D | 100110 |
5 | E | 100010 |
6 | F | 110100 |
7 | G | 110110 |
8 | H | 110010 |
9 | I | 010100 |
10 | J | 101000 |
11 | K | 111000 |
12 | L | 101100 |
13 | M | 101110 |
14 | N | 101010 |
15 | O | 111100 |
16 | P | 111100 |
17 | Q | 111110 |
18 | R | 111010 |
19 | S | 011100 |
20 | T | 011110 |
21 | U | 101001 |
22 | V | 111001 |
23 | W | 010111 |
24 | X | 101101 |
25 | Y | 101111 |
26 | Z | 101011 |
アルファベットのコスチュームと点字リストのならびは、ABC順になるようにしてください。
1の点のプログラム
点字リストの「アルファベット番号」番目のデータをみて、1番目の文字が1だったら●、0だったら0を表示するプログラムを作ります。
- イベントカテゴリから「緑のハタが押されたとき」をコードエリアに出す。
- 制御カテゴリから「ずっと」を出し、「緑のハタが押されたとき」の下に配置する。
- 制御カテゴリから「もし なら/でなければ」を出し、「ずっと」の中に配置する。
- 演算カテゴリから「()=(50)」を出し、「もし なら」の中に配置する。
- 演算カテゴリから「(りんご)の(1)番目の文字」を出し、「()=(50)」の左側に配置する。
- 変数カテゴリから「点字テーブルの(1)番目」を出し、「(りんご)の(1)番目の文字」のりんごの部分に配置する。
- 「点字テーブルの(1)番目」の1を変数「アルファベット番号」に変更する。
- 1の点なので「点字テーブル(アルファベット番号)番目の(1)番目の文字」の1の部分はそのまま。
- 「もし点字テーブルの(アルファベット番号)番目の(1)番目の文字=(50)なら」の50を1に変更する。
- 見た目カテゴリから「コスチュームを(コスチューム2)にする」を出し、もしの下とでなければの下に配置する。
- 1だった場合、点がある場所なので「コスチュームを(コスチューム2)にする」にする。
- 1でない場合は、点がない場所なので「コスチュームを(コスチューム1)にする」にする。
1の点のスプライトをコピーして、2の点~6の点も作りましょう。
どこを変更すればいいか考えてみてください。
まとめ
アルファベットを点字に変換するプログラムの作り方を紹介しました。
リストまわりは少し複雑ですが、プログラムはなるべく短くなるようにしています。
変数「アルファベット」を使って、何番目のコスチュームを出すのかと、点字リストの何番目をみるのかを管理していることをおさえておきましょう。
余裕があったら、かなを点字に変換するプログラミングも考えてみてください。