のべ 6059 人にお越しいただきました。ありがとうございます。
投稿者: Ryou Tanpo
この講座は プチコン3号 と プチコンBIG のみに対応しています。
今後の修正と追加の参考にするため、コメント欄にてご意見やご指摘、ご要望などをお書きいただきますようお願いします。
ご感想を投票していただけるだけでも嬉しいです。
「さすがにそれは理解しているよ」という方、一度挫折して再挑戦する方へ: 第1章をスキップする
SmileBASIC とは Nintendo 3DS のダウンロードソフト プチコン3号 、および Nintendo Wii U のダウンロードソフト プチコンBIG に内蔵された「プログラミング言語」のことです。
このソフトでは、3DS にさせることを、一個一個専用の命令文として書いていくプログラミングをすることで、ゲーム作りをすることができます。
この命令文をずらーっと書いたものをプログラムと呼びます。これは一般的なパソコンで作る場合も同じです。
プログラムには動かす環境や用途によって様々な書き方、すなわち言語が存在し、これをプログラミング言語といいます。現代で代表的なのは、C言語やJava言語ですが、プチコン3号は独自の SmileBASIC というプログラミング言語を使って、プログラムを作ることができます。
SmileBASIC は、その名に含まれるように、昔主流だった BASIC 言語を元にしています。比較的習得しやすく、簡単にプログラムを作ることができました。
SmileBASIC も同じように、 BASIC の長所を引き継いでおり、プログラムの書き方も似ていますが、さらに、プログラムをより分かりやすく、書きやすくする命令や機能が追加されたり、3DS のタッチパネルやボタンなどの入力装置など、ハードウェアの機能も最大限に活用できる命令も追加されています。
プチコンシリーズの歴史について簡単に触れてみます。
SmileBASIC はもともと DSi のソフト、「プチコン」 ( 既に販売終了 ) に内蔵されていました。これはプチコン初代と呼ばれることもあります。命令の種類や編集機能など、現在のプチコン3号やBIGと比べると劣りますが、後述する上位互換 *1 の「プチコンmkII」とともに、いちばん、かつての BASIC の面影が残ったソフトです。
その後、機能を追加してパワーアップした、「プチコンmkII」が発売されます。
そして発表されたのが 3DS 用の「プチコン3号」です。プラットフォームとともに、新しくなった開発環境と、新しくなった SmileBASIC。ほとんどの命令は互換性があり、解像度も上がるなど様々な面で機能が向上しました。
2016年には、 Wii U 用の「プチコンBIG」も発売されました。
これから、DSi と 3DS と Wii U、それぞれの長所を活かしたプラットフォームで、みんなが驚くような、楽しいプログラム作りを始めましょう!
重要: 本講座は 3DS のプチコン3号と Wii U のプチコンBIGのみに対応しています。
ここまでかたくるしい説明ばかりになってしまいました…
まずは、プログラムを書きながら、基礎を覚えていきましょう!
まずは、プログラムを入力し始める方法を覚えましょう。
DIRECT モードと EDIT モードは、プチコン3号を始めたばかりの人は慣れるのに時間がかかると思います。 どちらでも命令を打つことができるのですが、EDIT モードでは ENTER を押すと開業されるのに対し DIRECT モードで ENTER すると命令が即実行されてしまいます。 また EDIT モードで書いたプログラムを実行する命令は DIRECT モードでしか実行できません。 ややこしいけれど、最初はとりあえず EDIT モードでプログラムを書いて実行するのは DIRECT モードで、と覚えておきましょう。
さて、プログラムを書く準備はできました。
EDITモードになったところで、次のように入力してみましょう。
カーソルは十字ボタンで移動できます。ENTERキーをタッチするか、Aボタンを押すと改行できます。
もし打ち間違えてしまったら、←キーをタッチするかYボタンを押して1文字消すことができます。
- ACLS
- PRINT ”HELLO WORLD!!”
はい、できた!
そうしたら、DIRECTモードに戻りましょう。下画面左下の方の「DIRECT」をタッチします。
次のように入力して、ENTERキーをタッチしてみましょう。
- RUN
ENTERキーで、入力した命令がそのまま実行されます。RUN は、SLOT ( デフォルトは 0 ) に入っている一連のプログラムを実行します。
画面は次のようになっていると思います。もしピッと音が鳴って Syntax error in 0:X などとエラーが表示されてしまったら、打ち間違いを確認してから、もう一度 RUN と打って実行しなおしてみてください。
- HELLO WORLD!!
- OK
おめでとう!! 今、あなたがプチコン3号/BIGで文字を出せた瞬間です。
…といっても、これぐらいならすぐできるって?
メモ: RUN の実行は、実は START ボタンを押すことで代用できます。EDITモードでも START ボタンを押すと DIRECT モードで実行できます。
メモ: OK の文字はプロンプトといって、次に RUN などの命令が入力できる状態であることを示します。
先ほど入力したプログラムのうち、PRINT につづく点々のカッコ(��)の中に「HELLO WORLD!!」という部分があると思います。
これは文字列といいます。もともと1つの文字が集まっていることから、文字列と呼ばれるのです。今までの「文字」は、正確にいえば「文字列」だったわけです。
そして、この点々のカッコにも意味があって、カッコの中の部分を文字列のデータとして扱うことを示しています。逆に言えば、これがなければ、文字列の「データ」として扱われないので、SmileBASIC はプログラムとして意味があるものだと解釈してしまいます。いま現在、 HELLO や WORLD にはプログラムとして有効ではないため、エラーが出てしまいます。
つまり、SmileBASIC のプログラムにおいては、このカッコに文字列のデータを入力して、初めて文字列となるのです。
重要: カッコの種類にも意味があります。文字列のデータを入力するときは必ず「"」を使用してください。
メモ: 文字列の最初と最後、どちらも同じカッコを使います。
そこで、そのカッコの中を好きな文字列に変更してみましょう。
- ACLS
- PRINT ”好きな文字列”
アルファベット、記号、ひらがな・カタカナなど何でも構いません。ただし、漢字を打つには特殊な方法が必要なので今は我慢してください…。 プチコンBIG ではローマ字入力が利用できます。
あとは、先ほどのように実行してみましょう。
- RUN
これで、もう思いのままにメッセージを表示できます!
- THANK YOU
- OK
うーん、なんかしっくりこないなぁ…
さて、そろそろプログラム自体のお話をしましょう。
さあ、文字を出してみよう や 好きな文字を表示してみよう で紹介したプログラムにはちゃんと意味があります。 まずは、ここに示す先ほどのプログラムの最初から、順に解説していきます。
- ACLS
- PRINT ”好きな文字列”
このプログラムの最初にあるのは、ACLS ですね。
これは、「画面をまっさらに消す」という意味の命令です。画面に何か表示する前にこの命令を書いておくと、画面をまっさらに消してから表示することができます。プログラムによっては、途中で強制終了したときに、画面がそのままの状態で残り、そのまま別のプログラムを実行すると画面がさらにグチャグチャになってしまうことがあるため、プログラムの最初に記述しておくと良いでしょう。
次に、PRINT です。よく見ると、その次に先ほどご説明した文字列があるのがお分かりでしょうか? この PRINT は、この命令に続く文字列を画面に表示する命令 *4 なのです。
PRINT のように、命令に続いて文字列のようなデータを記述することがあります。これを、引数といいます。 たとえば、さあ、文字を出してみよう で、PRINT に続く ��HELLO WORLD!!�� は引数です。 なお、ACLS には完全に動作が決まっており、渡すデータがないため、引数はありません。
最後に、コメントについて覚えておきましょう。 プログラムには、注釈をつけたい時が出てきます。そこでコメントを使うと、プログラムに自由な言葉をのせることができるのです。また、コメントは、プログラム の実行に何の影響もありません。 コメントを始めたいところで、「'」(アポストロフィ)という記号を記述します。すると、その行の最後までコメントとなります。プログラム上のコメントは、デフォルトでは緑色に表示されます。
ACLS と PRINT とコメントのまとめ
- ’ ACLS の使い方
- ACLS
- ’ PRINT の使い方
- PRINT ”好きな文字列”
- ’コメント
以上で、命令とその引数についてご理解いただけたでしょうか?
実は、引数の数が複数になったり、それに伴って特定の引数を指す呼び名が出てくるのですが、それはまた後ほどご説明いたします。
今までは、ただ決まった進み方で、黒い画面に白い文字を表示するだけでした。
そこで、今度は、もっと自由な文字の表示の仕方を学びましょう。
そこで使うのが、 LOCATE です。
ここに、命令の書き方、すなわち書式を示します。LOCATE はその通りに書きますが、続く引数の部分はそのまま X座標 なんて書くわけではありません。
- LOCATE X座標,Y座標
こんな風に、引数を2つ以上渡す必要があるときは、カンマで区切ります。
LOCATE は、次に PRINT で表示する最初の文字の位置を決めます。例えば、
- LOCATE 0,29
- PRINT ”(^_^)”
とすると、画面のいちばん下に顔文字が出てきます。*5
では、この数字にはどんな意味があるのでしょう。
| + | 数学においての座標をご存知の方 |
数学的な座標と比べた時、基本的に、X 座標が横軸、Y 座標が縦軸であることに変わりはありません。 |
X 座標は、横の方向の位置を表します。左端が 0 、右端は 49 です。
Y 座標は、縦の方向の位置を表します。上端が 0 、下端は 29 です。
したがって、プチコン3号、BIGともに
ちなみに1番目の引数 ( ここではX座標 ) を第1引数、2番目の引数 ( ここではY座標 ) を第2引数といいます。以降、第3引数、第4引数と続きます。この命令には2つの引数を渡すことになります。
メモ: LOCATE は、それぞれの座標が範囲外であるとエラー ( Out of range ) を出します。エラーについては次の節で詳しく解説があります。
メモ: プチコンBIG においては、今後解説する予定の XSCREEN による解像度の設定によって X 座標、 Y 座標の最大値が異なります。今現在では気にする必要はありません。
さて、次に、もっと華やかな文字表示の仕方を学びましょう。
そこで使うのが、 COLOR です。今後表示する文字列の色を、数値によって決めます。
- COLOR 文字色[,背景色]
- COLOR ,背景色
このように、一般にリファレンスなどで記載されている書式に [ ] で囲まれている部分があるときは省略できます。たとえば、実際に渡す文字色を 4 、背景色を 13 とすると、
- COLOR 4
- COLOR 4,13
- COLOR ,13
のいずれの書式も利用できます。
COLOR は、今後 PRINT で表示する文字列の色を指定します。次に COLOR を実行するまで、色は変わりません。
ACLS の実行後やデフォルトの状態では
- COLOR 15,0
となっています。
文字色、背景色ともに数値で指定します。範囲は 0 - 15 で、色との関係は次の通りです。
| 数値 | 色 |
|---|---|
| 0 | 透明 |
| 1 | 黒 |
| 2 | 暗い赤 |
| 3 | 赤 |
| 4 | 暗い緑 |
| 5 | 緑 |
| 6 | 暗い黄色 |
| 7 | 黄色 |
| 8 | 紺色 |
| 9 | 青 |
| 10 | 暗いマゼンタ |
| 11 | マゼンタ |
| 12 | 暗いシアン |
| 13 | シアン |
| 14 | 灰色 |
| 15 | 白 |
背景色だけを指定するときは COLOR の後に、文字色を指定せずにコンマを打ってから指定します。 命令によって、書式、引数の詳細は違うのでリファレンスを見ましょう。
プログラミングを始めたら、いつかはエラーに遭遇するものです。エラーというのは、プログラムの間違いや、実行中の何らかの例外によってプログラムを止めなければならないときに出るお知らせのようなものです。例えば、次のプログラム。
- COLOR 9999
これでは、何色にすべきかわかりません。9999番に対応した色はないからです。そこで、SmileBASIC は、引数などの数値が範囲外である、という意味のエラーを出します。
- Out of range
- OK
-
このようなことで、これよりももっと大変なことになる前にプログラムを安全に停止してくれます。こんな馬鹿げたミスはない、それはごもっともですが、パソコンでプログラミングしていると、パッと見た感じでは良く見えるプログラムがメモリの問題を起こして暴走、ということもずいぶん良くあるものです。エラーやバグが起きたら、原因を探って直す。そのような作業を、デバッグと呼びます。
講座に関するご感想、ご指摘、ご要望、何でもお書きください。
講座と無関係なコメントや、公序良俗に反するもの、誹謗中傷にあたるもの、「荒らし」はやめてください。
最終更新 : 2022/09/20 (火) 12:49:15
*1
たとえば、A の上位互換の B というと、A との互換性を維持しながらも新しい機能を追加したものが B になる
*2
プチコンmkIIまでは 実行モード と呼ばれていた
*3
プチコンmkIIまでは 編集モード と呼ばれていた
*4
正確には命令でなく、ステートメントの一種だが、SmileBASIC ではあまり呼ばない。この名前は予約語となっているので、変数名や関数名に使用できない。しかし ver3.5.2 現在、TO と STEP においてはステートメントであるが予約語扱いされていない
*5
正確にいうとそのあとプログラムの実行が終わるとプロンプトが出てくるので一番下ではなくなってしまう
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.148 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:15 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30