日本語プログラミング蚀語「なでしこ」公匏サむト

日本語でプログラミングできる「なでしこ」を䜿っお、プログラミングを身に぀けたしょう。プログラミングができれば、いろいろな仕事を自動化するこずができたす。今回は、カメを䜿っお、画面に絵を描くタヌトルグラフィックスを玹介したす。

日本語プログラミング蚀語に぀いお語り合った

先日のこずですが、 暪浜圚䜏の発明家、岡郚倧陞さんずお䌚いする機䌚がありたした。岡郚さんは、ヒュヌマンむンタヌフェむスに係る文字入力などナニヌクな発明の特蚱をいく぀も持っおおられたす。埡幎77歳の倧先茩なのですが、日々、さたざたなアむデアを考案しさたざたな発明をされおいたす。そんな、岡郚さんず、母囜語でプログラミングできるこずのメリットに぀いお語り合うこずができたした。

岡郚さんは「私たちは、日本語を読み曞きし、日本語で考えおいたす。母語が日本語であるなら、自然ず日本語で物事を考えおいたす。そうであるなら、プログラミングをする時も、日本語で考えるこずができれば、思考を劚げるこずなく、老若男女を問わずにプログラムを䜜るこずができるはずです。たた、日本人にノヌベル賞受賞者がたくさん居るこずも考えるず、日本語ずいうのは、芋立お類掚を利甚しお、論理的思考空間の䞭に仮想の物事を組み立おるのに適した蚀語であるず蚀うこずができたす。ぜひ、日本の子䟛たちのために日本語プログラミング蚀語の普及発展を頑匵っおもらいたいです。」ず、暖かく励たしおいただきたした。

日本語プログラミング蚀語「なでしこ」を開発しお、もう10幎以䞊が経ちたす。確かに、日本語プログラミング蚀語を実践するこずで、英語ベヌスの蚀語よりも、玠早くプログラムを䜜れる堎面も倚いです。そのため、母囜語でプログラムが読み曞きできるこずのメリットずいうのは倧きいず感じたす。匕き続き、䜿いやすい日本語プログラミング蚀語の開発を頑匵ろうず思ったのでした。

タヌトルグラフィックスで遊んでみよう

さお、今回、玹介するのは「タヌトルグラフィックス」です。これは、ペンを持ったカメを動かしおお絵かきをするずいう機胜です。先に皮明かしするず、これは、䟿利ずか、芚えるず圹に立぀ずか、そういう類いの機胜ではなく、楜しんでプログラミングを芚えるための面癜い機胜です。もずもずは、LOGOずいうプログラミング蚀語に備わっおいた機胜で、コンピュヌタヌを利甚しお、子䟛たちに思考胜力の蚓緎を目的ずしお䜜成されたした。ですから、なでしこでプログラミングを孊習するのにぎったりの機胜なんです。

タヌトルグラフィックスでは、画面䞊に、衚瀺されるカメに察しお、どのように動かすかをプログラミングしたす。そしお、カメを動かすこずで、カメの通った箇所に線が匕かれたす。

カメの取ったずころに線が匕かれたす

タヌトルグラフィックスで耇雑な図圢を描画するこずができお面癜いです

タヌトルグラフィックスで遊がう

タヌトルグラフィックスを詊すには、以䞋のURL(なでしこ3簡易゚ディタ(タヌトルグラフィックス甚))にアクセスしお、プログラムを入力したら、[実行]ボタンを抌しおください。PCのほか、スマホやタブレットでも実行しお遊ぶこずができたす。

なでしこ3簡易゚ディタ(タヌトルグラフィックス甚)

それでは、なでしこでタヌトルグラフィックスを利甚する方法を玹介したす。たず、タヌトルグラフィックスを䜿うためには、プログラムの先頭に「カメ䜜成」ず䞀蚀曞いおおきたす。これによっお、゚ディタのすぐ䞋にある゚ディタにカメが衚瀺されたす。

そしお、カメを動かすには、基本的に以䞋の䞉぀の呜什を芚えるだけで十分でしょう。

・「Nだけカメ進む」・・・カメをNピクセルだけ前に進める
・「Aだけカメ右回転」・・・カメの進行方向をA床だけ右に回転
・「Aだけカメ巊回転」・・・カメの進行方向をA床だけ巊に回転

簡単なプログラムで動䜜を確認しおみたしょう。先ほど玹介した「なでしこ3簡易゚ディタ」にアクセスし、以䞋のプログラムを蚘述し、[実行]ボタンを抌したす。

 カメ䜜成。
 150だけカメ進む。
 90だけカメ右回転。
 50だけカメ進む。
 90だけカメ右回転。
 150だけカメ進む。

するず、カメが動いお、以䞋のような逆U字の図圢を描画したす。

カメを動かしおみたずころ

プログラムを確認しおみたしょう。カメを䜜成した埌で、カメをたっすぐ150ピクセル進たせたす。そしお、カメの進行方向を90床右方向ぞ回転させお、さらに、50ピクセル進たせ、90床回転し、150ピクセル進みたす。このようにしお、逆U字の図圢を描画するこずができたす。難しくありたせんね。

このように、カメを動かす呜什を、ひたすら䞊べるだけで、いろいろな図圢を描画できたす。以䞋は、正方圢を描画するプログラムです。

 カメ䜜成
 150だけカメ進む。
 90だけカメ右回転。
 150だけカメ進む。
 90だけカメ右回転。
 150だけカメ進む。
 90だけカメ右回転。
 150だけカメ進む。
 90だけカメ右回転。

同じように、゚ディタにプログラムを蚘述しお「実行」ボタンを抌すず、カメが動いお正方圢を描画したす。

カメが動いお正方圢を描画したす

同じ凊理を䜕回も繰り返す方法

ずころで、プログラミング蚀語の面癜いずころですが、自分で呜什を䜕床もべた曞きしなくおも、奜きなだけ凊理を繰り返し実行させる構文が甚意されおいたす。なでしこで、指定回数だけ凊理を繰り返すには、「(数倀)回・・・ここたで」構文を䜿いたす。

䟋えば、カメを進めお、90床右回転するずいう動䜜を4回繰り返せば、先ほど䜜成したプログラムず同じ正方圢の図圢を描画できたす。以䞋が、「(数倀)回・・・ここたで」構文を䜿っお正方圢を描画するプログラムです。

 カメ䜜成。
 4回
   150だけカメ進む。
   90だけカメ右回転。
 ここたで

先ほどのプログラムず比范しおみるず、かなり、すっきりした印象ではないでしょうか。

これを応甚すれば、八角圢の図圢も簡単に描画できたす。以䞋は、八角圢の図圢を描画する䟋です。

 カメ䜜成。
 8回
   60だけカメ進む。
   (360÷8)だけカメ右回転。
 ここたで。

八角圢を描画したずころ

八角圢を描画するには、360床を8で割った倀(=45床)でカメを回転させるこずで、綺麗な八角圢を描画できたす。先ほどの四角圢であれば、360床を4で割った倀なので、90床を指定したした。

それでは、36角圢を描くにはどうしたらよいでしょうか・・・そうですね。カメを10床(=360床を36で割った倀)で回転させれば良いのです。それでは、36角圢を描画しおみたしょう。たた、せっかくですから、倀の指定に倉数を利甚しおプログラムを䜜っおみたしょう。

 # 䜕角圢かを指定
 N=36
 # 角床を蚈算
 A=360÷N
 # カメで描画する
 カメ䜜成。
 (N)回
   12だけカメ進む。
   Aだけカメ右回転。
 ここたで

プログラムを実行するず、カメがゆっくり動いお、以䞋のような図圢が描かれたす。このサむズの36角圢はほが円のように芋えたすね。

36角圢を描いたずころ

このプログラムでは、倉数を利甚しお、角床の蚈算匏を䜜り、回転角を蚈算しおいたす。そのため、プログラム2行目にある倉数Nの倀を倉えるこずで、任意の角圢を描画するこずができたす。Nを適圓な倀に曞き換えおみお、実行するず面癜いでしょう。

今回のたずめ

今回は、タヌトルグラフィックスに぀いお玹介したした。カメを操䜜しお、図圢を描くずいうのは、ずおも楜しいものです。今回は、基本的な䜿い方ず、「(N)回・・・ここたで」構文に぀いお玹介したした。次回は、より高床な制埡構文ず組み合わせお、さらに耇雑な図圢を描画する方法を玹介したす。お楜しみに。

自由型プログラマヌ。くじらはんどにお、プログラミングの楜しさを䌝える掻動をしおいる。代衚䜜に、日本語プログラミング蚀語「なでしこ」 、テキスト音楜「サクラ」など。2001幎オンラむン゜フト倧賞入賞、2005幎IPAスヌパヌクリ゚むタヌ認定、2010幎 OSS貢献者章受賞。技術曞も倚く執筆しおいる。