1SmileBASICのキホン
SmileBASICのキホン
それでは、「SmileBASIC」に実際に触ってみましょう。SmileBASICを立ち上げると、次の画面が表示されます。
こちらのメニュー画面を「TOP MENU」と呼びます。これからプログラムを作りますので「SmileBASICでプログラムを作る」をタッチしましょう。
「プログラムを作る」をタッチすると、次のような画面に移ります。
背景が真っ黒になりました。SmileBASICのバージョン番号などが表示されています。
文の最後に「OK」と表示されていますが、これは「命令を入力できます」という意味です。「入力」とはコンピューターにプログラムやデーターを入れることです。
そして、「OK」の下で点滅している記号を「カーソル」と呼びます。入力した文字はこのカーソルの場所に表示されます。
下画面 / GamePadには「キーボード」が表示されています。たくさんのキーが並んでいますが、すべてプログラムを作るために必要なものです。もし、一つ前のメニュー画面に戻りたい場合にはキーボードの「TOP MENU」をタッチします。
「1+1」を計算する
SmileBASICには大きく分けて2つのモードがあります。
1 |
|
---|---|
2 |
|
まずは操作の基本を覚えるため、ダイレクトモードで命令を実行してみましょう。「プログラムを作る」を選択した一番最初はダイレクトモードが選択されています。
ここでは例として「1+1」という計算を行ってみます。
OK
PRINT 1+1│
「1+1」の計算を行うには「PRINT 1+1」という命令を実行します。
「PRINT 1+1」と入力するには、キーボードを「P」「R」「I」「N」「T」「 (SPACE)」「1」「+」「1」の順にタッチします。
「I(アイ)」と「1(数字の一)」は形が似ているので間違えないようにしましょう。
少しだけラクに入力をする方法があります。
3文字目の「I」をタッチした時点でキーボードの左上に「PRINT」と表示されますので、これをタッチします。すると「PRINT (SPACE)」まで一気に入力することができます。
これが「入力支援機能」です。この機能はいろいろな入力をする場面で使うことができます。
OK
PRINT 1+1
2 ← 結果
OK
│
命令の入力が終わりました。
最後にキーボードの「ENTER」をタッチします(もしくはAボタンを押す)。すぐに「2」と表示されました。これが「1+1」の計算結果です。
命令の実行に成功しました! ダイレクトモードで命令を実行する場合、必ず最後に「ENTER」をタッチすることを覚えておきましょう。
ヘルプを使う
ところで、「PRINT」という命令には、どのような意味があるのでしょうか? 命令の意味を調べてみましょう。命令について調べるには「ヘルプ」という機能を使います。
OK
PRINT 1+1│
まずは十字ボタンの上を押します。すると、一つ前に実行した命令が再度入力されます。ここで「ENTER」をタッチすると実行してしまうのですが、実行しないようにします。
OK
PRINT│
Yボタンを4回ほど押すと、このような状態になります。「PRINT」の文字だけが残りました。
キーボードの「?」をタッチします。
画面の下半分にPRINT命令の説明が表示されました。説明の続きを読むにはスライドパッド(プチコンBIGではLスティック)を下に動かします。今はカーソルに「PRINT」の文字が触れているため、それに関係する説明が表示されたわけです。
以上が「ヘルプ」という機能です。知らない命令をみかけた時にはこのヘルプ機能を活用して意味を調べてみましょう。
命令表を使う
ヘルプは便利な機能ですが、使い道には限界があります。
たとえば、「PRINT」→「表示する命令」と調べることはできますが、「表示する命令」→「PRINT」と調べることはできません。辞書の「逆引き」のようなことができません。このような場合はヘルプではなく「命令表」という資料を使います。
命令表はSmileBASICのWebページで公開されています。パソコンなどを使って次のURLを開きましょう。
http://smilebasic.com/reference/
パソコンで命令表を表示した様子がこちらです。命令の説明は機能ごとに分類されています。たとえば、「文字の表示」に関する命令を調べたい場合には「コンソール」の項目を選択します。
「コンソール」というのは文字を表示する機能のことです。先ほど使用した「PRINT」命令もコンソールの項目に説明があります。
命令表は3DS / Wii U 本体を使って見ることもできます。
TOP MENUで「Webプチコン入門」をタッチすると公式ページが表示されます。そこでメニューで「命令表」を選択しましょう。ただし、この方法だとSmileBASICの画面を同時に見ることができません。
エラーをなくす
何らかの問題によって、命令が実行できない場合があります。その対処方法について紹介します。
OK
PRONT 1+1
Syntax error ← エラーメッセージ
OK
│
たとえば、この場面では「2」と表示されずに「Syntax error」と表示されてしまいました。この表示を「エラーメッセージ」といいます。エラーメッセージは英語で書かれています。「error(エラー)」とは「失敗」という意味です。
エラーメッセージの意味は「命令表」で調べることができます。3DS / Wii U本体やパソコンなどを使って次のURLを開きます。
http://smilebasic.com/reference/
命令表で「エラー」の項目を選択すると、エラーの一覧表が表示されます。
これによると「Syntax error」とは「文法が間違っている」という意味であることがわかります。
OK
PRONT 1+1 ← この行が間違っている
Syntax error
OK
│
改めて命令を確認してみましょう。
「PRINT」の部分が「PRONT」となっていますね。これがエラーの原因です。「文法の間違い」というエラーメッセージの内容とも重なります。
OK
PRO│NT 1+1
さっそく、命令の間違いを直してみましょう。
十字ボタンの上を1回押して、命令の入力をやり直します。そして、十字ボタンの左を押して、カーソルを「O」の右側に戻します。
この状態でYボタンを1回押します……
OK
PR│NT 1+1
……すると、「O」の文字が消えます。カーソルの左側にある文字を消し、それに続く文字が全体的に左へ移動したわけです。この操作を「バックスペース」と呼びます。
OK
PRI│NT 1+1
続いてキーボードの「I」をタッチします。これで消えた「O」の代わりに「I」が入りました。
あとは「ENTER」をタッチすれば命令を実行することができます。このようにエラーを取り除くことを「デバッグ」といいます。エラーの原因を虫(バグ)に例えていて、そこから生まれた言葉です。
PRINT命令で遊ぶ
PRINT命令をさらに使ってみましょう。うまく使いこなせば、SmileBASICが優秀な計算機になります。
《かけ算を行う》
OK
PRINT 2+2*3
8
OK
│
かけ算もできます。「*」の記号が「×」の意味です。ここでは「2+2×3」という計算を行っています。
SmileBASICは足し算よりもかけ算を先に計算をします。このため、「2+(2×3)」→「2+6」となり、「8」と表示されました。
もし、足し算を先に計算させたい場合には「(2+2)×3」と入力しましょう。結果として「12」と表示されます。
《割り算を行う》
OK
PRINT 1/3
0.33333333
OK
│
割り算もできます。「/」の記号が「÷」の意味です。これは「1/3」の計算させてみたところです。
答えとして「0.33333333」と表示されました。
《関数を使って計算する》
OK
PRINT SQR(3*3+4*4)
5
OK
│
関数を使った計算もできます。
ここでは「SQR」という「ルート」を求める関数を使い、三角形の辺の長さを求めてみました。「ピタゴラスの定理」です。
《文字を表示する》
OK
PRINT "HELLO"
HELLO
OK
│
数字だけではなく、文字を表示することもできます。 文字を扱う場合には「”」という記号で両側を囲む必要があります。
《変数を使う》
OK
PRINT HELLO
0
OK
│
ちなみに文字列にダブルクォーテーションが付いていないと「変数」と見なされてしまいます。「PRINT HELLO」と入力した場合はHELLOという変数で扱われます。
結果として「0」が表示されてしまいます。変数については次回以降に詳しく紹介します。
《文字の足し算を行う》
OK
PRINT "A"+"B"
AB
OK
│
文字同士の足し算もできます。「A」と「B」が足されて「AB」という文字列になりました。
プログラムを入力する
ここまで紹介してきたのが「ダイレクトモード」というモードです。「ダイレクトモード」では、命令を入力した時点ですぐに実行しています。
これから紹介する「エディットモード」では命令をすぐに実行しないで、指定した順番に実行させることができます。こうして複数の命令を積み重ねたものを「プログラム」と呼びます。
「エディットモード」に移行するにはキーボードの「EDIT」ボタンをタッチします。 プログラムを格納する入れ物のことを「スロット」と呼びます。スロットには0~3番の番号が割り振られています。スロットを切り替えることによって、最大で4つのプログラムを同時に入力することができます。「EDIT」をタッチした時点で0番のスロットが選択されています。
「エディットモード」に移行しました。
ここでプログラムを入力します。今はまだプログラムが何も入っていません。このエディットモードはダイレクトモードと違う点がいくつかあります。まず、行が終わったことを示すために「改行マーク」が存在します。さらに行を数える目安として「行番号」があります。
それではプログラムを作ってみましょう。
まずは例として「“HELLO”と表示するだけのプログラム」を作りたいと思います。
"HELLO"と表示するための処理の流れを図にしてみました。この図を「フローチャート」と呼びます。
処理の順番 | 処理の内容 | SmileBASICの命令 |
1 | コンソール画面を消す | CLS |
2 | “HELLO”と表示する | PRINT “HELLO” |
3 | 1秒待つ | WAIT 60 |
処理の流れを表にまとめて、命令に置き換えると、こうなります。
プログラムの入力が終わった状態がこちらです。
プログラムの内容について簡単に説明します。
1行目の「CLS」は画面を消去してきれいにするための命令です。
2行目の「PRINT」は文字を表示させるための命令です。
3行目の「WAIT」は処理を待つための命令です。値1つで1/60秒待つことができます。値を60とすることで1秒処理を待ちます。
プログラムを実行する
完成したプログラムを実行してみましょう。次の手順で操作を行います。
キーボードの「DIRECT」をタッチして、ダイレクトモードに移行します。 続いて「RUN」をタッチしてから、最後に「ENTER」をタッチすると実行します。 もしくは3DSの「START」ボタン / Wii U の「+/STARTボタン」を押せば、一発で実行させることができます。
HELLO
OK
│
プログラムを実行した様子がこちらです。
画面に“HELLO”と表示されました。最後に「OK」と表示されているのは、処理が終了して次の命令を実行できることを表しています。
ファイルの保存
SmileBASICを終了すると、入力してあったプログラムは消えてします。
それを防ぐためには、プログラムをファイルとして保存しておく必要があります。
ファイルを保存するには次の操作を行います。
プチコン3号の場合:Lボタンを押し続けた状態でキーボードの「SAVE」をタッチします。
プチコンBIGの場合:キーボードの「SAVE」をタッチします。
保存したいファイル名を入力します。
ファイル名は自由に付けることができますが、使える文字は英数字と“_(アンダーバー)”のみです。ここでは例としてファイル名を「SAMPLE1A」としました。
最後に「決定」をタッチすると、ファイルが3DS / Wii U 本体内のSDカードに保存されます。
ファイルの読み込み(その1)
ファイルがきちんと保存されたかどうか確認してみましょう。 確認するには、次の操作を行います。
プチコン3号の場合:Lボタンを押し続けた状態でキーボードの「LOAD」をタッチします。
プチコンBIGの場合:キーボードの「LOAD」をタッチします。
画面にファイルの一覧が表示されます。
もし、「SAMPLE1A」と表示されていれば、ファイルがきちんと保存されていることになります。ここでファイル名をタッチしてから「決定」をタッチすると、ファイルを読み込むことができます。
ただし、現時点ではすでに同じ内容のプログラムが存在しています。ファイルを読み込む必要はありませんので、「戻る」をタッチして操作をキャンセルしましょう。
ファイルの読み込み(その2)
ファイルの読み込みはTOP MENUから直接行うこともできます。 次の手順で操作を行います。
TOP MENUで「作品を見る」をタッチします。
ファイルを選択する画面に移行しました。先ほど保存したファイルが見当たりません。実はファイルは「DEFAULT」フォルダの中にあります。
そこで「DEFAULT」→「ファイルの選択」を順にタッチします。
「DEFAULT」フォルダの中身が表示されました。「SAMPLE1A」のファイル名が表示されています。
このファイルをタッチしてから、「決定」をタッチすることで、ファイルを実行させることができます。
プログラムを修正する
ここまでに作ったプログラムを修正して、より面白くしてみましょう。
まずはフローチャートの段階で処理の流れを考えます。
先ほどのプログラムではすぐに終了してしまいましたが、今度は終了せずに果てしなく繰り返します。
処理の順番 | 処理の内容 | SmileBASICの命令 |
1 | ラベルA | @A |
2 | “HELLO”と表示する | PRINT “HELLO” |
3 | 1/60秒待つ | WAIT 1 |
4 | ラベルAにジャンプする | GOTO @A |
処理の流れを表にまとめて、SmileBASICの命令に置き換えてみました。 見慣れない命令があるかと思いますが、ひとまず意味を気にしないで入力してみましょう。
エディットモードでプログラムの入力が終わった様子がこちらです。
プログラムの内容を簡単に説明します。
1行目の「@A」は「ラベル」といいます。ここでは処理を繰り返すための見出しとして使います。
2行目の「PRINT」は表示を行う命令です。末尾に「;(セミコロン)」を付けることで表示したあとに改行しないようにしています。
3行目の「WAIT」は処理を待つ命令です。値を1とすることで、1/60秒だけ待ちます。
4行目の「GOTO」は処理のジャンプを行う命令です。これで1行目に処理を戻します。
プログラムを実行すると、「HELLO」の文字が繰り返し表示されます。 先ほどのプログラムと比べて、かなり見た目が派手になりました。
このプログラムは命令を無限に繰り返すため、終わりません。
プログラムを停止させるにはキーボードの「STOP」をタッチします。3DSの「START」ボタン / Wii U の「+/STARTボタン」を押しても止まります。停止すると最後に「Break on (実行していたスロット番号):(実行していた行番号)」が表示されます。
おまけ
さらにプログラムを改造して遊んでみましょう。
1行目と2行目の間に「COLOR RND(16)」という命令を追加します。
ここに行を追加するには、カーソルを2行目の最初に移動させてから「ENTER」をタッチしましょう。2行目以降を全体的に1行下げることができます。「COLOR」というのは表示の色を変更する命令です。
プログラムを実行するとこうなります。
HELLOの文字がカラフルになりました。色は全部で16種類あります。さらにプログラムを自分流に書き換えて遊んでみましょう。
今回のまとめ
今回紹介した内容をまとめてみました。次のとおりです。
- ダイレクトモードとエディットモードの使い方
- PRINT命令の使い方
- ヘルプ機能と命令表の使い方
- ファイルの保存と読み込み方
以上です。
これでプログラム作りの基本をほぼすべて紹介することができました。
「計算が苦手」という人はPRINT命令を使いましょう。
「覚えるのが苦手」という人はヘルプと命令表を使いましょう。
「時間がない」という人はこまめにファイルを保存して少しずつ作りましょう。
これらをうまく活用できさえすれば、どんなプログラムでも作れるのではないでしょうか。
次回に続きます。