プチコン講座


初心者の方へ

プチコンとは、ニンテンドーDSiで動作するソフトウエアで、BASICというプログラム言語を使って自分でプログラミングをしてゲームやアプリを作ることができます。
プチコンやプログラムに関して、全く知らない初心者の方は
公式サイトのプチコン初心者講座が一番丁寧でわかりやすいです。
プチコンmkII 初心者講座

また、ここではゲームプログラムを作成するにあたっての、
基礎的な知識を、極力難しいことを考えずに伝えたいと考えております。

デバッグのやりかた

プチコンでプログラムを作っている時に、プログラムに間違いがあった場合、エラーや意図しない動作になってしまいます。

初心者が挫折しやすい理由の一つが、参考書を読みながらプログラムを書いたつもりでも、うまく動かなかったことだと思います。

ここでは、プチコンのプログラムでエラーがあった場合の原因の見つけ方について、極力わかりやすく解説していきたいと思います。

エラーの場所と種類

まずエラーを探るにはどこでエラーになったかを知る必要があります。
例えば次のプログラムを実行してみます。

  1. PRIMPT ”HELLO”

実行すると「Syntax error (1)」となります。
要するに、「構文エラー(1行目)」という意味になります。(Google翻訳でもそう言っている)
プチコンの場合は、エラーの理由のあとに、どの行でエラーになったかが表示されるので、たいていはその行がプログラムとして間違っていないかを確認すれば良いことになります。

エラーの種類については、プチコン公式マニュアルのエラー番号表の部分を見ていただけるとわかると思います。
なので、まずエラーがどの行で起きていいるのかがわかれば、単純なプログラムの誤りはすぐわかると思います。
自分もよく単純なエラーを起こすので、恐れず、恥ずかしがらず、プログラム作りを楽しみましょう。

実行時エラー

プログラムの構文にあやまりがある場合は、その行を見ればわかりますが、そうでない場合でもエラーは発生します。
次のプログラムは、構文上の誤りはありません、しかし実行すると…

  1. CLEAR
  2. DIM A[12]
  3. FOR I=0 TO 20
  4.  A[I]=10
  5. NEXT

「Subscript out of range (14)」というエラーに成ってしまいます。
理由は、4行目で12個しかない配列変数「A」(最大の配列番号は11)に対して、12番目の変数に値を入れようとしているからです。
このように、プログラムの構文として誤りがなくても、動かした場合によって生じるエラーを一般的に実行時エラーと言います。

実行時のエラーのデバッグ

では、もっと複雑なプログラムではなぜエラーが起きたのかを探すのが大変になります。
プチコンのBASICでは、プログラムがエラーやSTOP命令で停止した場合、変数の状態はそのままの状態で保持されるという特徴があります。
(これ超重要!)
よって、CLEAR命令を実行しない限り、エラーが発生した状態の変数の状況から、なぜエラーになったかを知ることができます。
このプログラムを実行しますと、4行目でエラーになります。

  1. CLEAR
  2. DIM A[12]
  3. FOR I=0 TO 20
  4.  A[I]=10
  5. NEXT

そして、コンソール画面(背景が黒い画面)で
PRINT I 」と入力してEnterキーで実行すると。
「12」と表示されます。
よって、11番までしかない、「A」の変数に対して、12番を見ようとしたため、不都合が生じてエラーになった。ということが確認できます。

実際にゲームを作るときは、もっと複雑なプログラムを書くことになるので、このようにエラーになったときの状態を知る方法は非常に重宝します。

ちなみに、プチコンでは、「PRINT」の代わりに「」と書くことができますので(裏ワザ)
? I」と入力してEnterキーで実行することで同様の効果が得られます。

コンソール画面が見づらくても平気

プチコンのBASICでは、プログラムがエラーやSTOP命令で停止した場合、変数の状態はそのままの状態で保持されるという特徴があります。(大事なので2回書きました)
なので、エラーでコンソールに戻ってしまったが、BGやスプライトだらけで、まともに文字が読めないという状態ならば。
コンソール画面で「ACLS」を実行してみましょう。
これで、何も表示されなくなりました。
しかしエラーの情報は「システム変数」という特殊な変数にちゃんと保持されています。
? ERL」でエラーが発生した行番号(この場合は4)
? ERR」でエラーの内容を表す番号(この場合は17 ※)
が表示できます。
エラー番号表 システム変数一覧
※ 公式サイトのエラー番号表を見れば、「17」が「Subscript out of range」であることがわかります。

エラーだけではなく自分で停止させる

プチコンには、プログラムを途中で停止させて、再開させるコマンドがあります。
STOP」命令、「CONT」命令
また、「Selectボタン」を押すことで、STOP命令をいつでも実行することができます。
よって、プログラム実行中に気になる状態になったら、
「Selectボタン」で「STOP」させる。
ACLS」で画面を消去
? 変数名」でパラメータの状態を確認する。
ということが可能になります。

基本は常に見たいパラメータを表示させておく

ゲームプログラムというものは、1秒間に60回ループ処理が動くものなので、毎回STOP,CONT命令を実行していては効率が悪すぎるので、常にPRINT命令で画面にパラメータを表示させておくのが一般的になります。

デバッグにも便利な音を鳴らすBEEP命令

プログラムではたくさんの変数(パラメータ)を使用するため、すべてのパラメータを表示されておくのは現実的ではありません。
よって実際には、条件分岐(IF)が発生したかどうかを知ることが重要になります。
例えば、Aボタンでキャラクターがジャンプするプログラムを作った場合、IF文で分岐しているのかを知りたい場合は、BEEP命令を使って、音を鳴らすとわかりやすいでしょう。
画面にパラメータを表示させるのと違って、画面が非常にシンプルになります。

デバッグ用のプログラム行は読みやすく区別

プチコンには、「PRINT」「?」の2つの方法で画面に文字を表示させることができます。
「BEEP」「BEEP 0」は同じ意味になります。
私の場合、ゲームで実際に表示させたい文字は「PRINT」で、デバッグ用に仮表示させる場合は「?」と使い分けています。
BEEPの場合も同様に使い分けることができます。

プログラムの基本はデバッグとテスト

プログラムは読むだけでは分かりにくいため、実際に動かして正しく動いているかを調べること(テスト/デバッグ)が重要になります。
自分もここがまだまだ足りないと自覚していますが…。
プチコンでは、他の一般的なプログラム言語やパソコン用の開発環境と違って、エラー時に表示される情報が少ないですが、ゲームを作るのには十分すぎるほどの情報をすでに持っています
プチコンもパソコンのプログラムも基本的にデバッグの考え方は一緒です。プチコンで得たデバッグテクニックはパソコンのプログラムでもそのまま応用できます。


蘇るBASICプログラミング プチコン公式活用テクニック

懐かしの'80年代…。マイコン雑誌に載ったプログラムリストを手打ちした、あの懐かしの時代が任天堂の携帯ゲーム機で蘇ります!
まずはサンプルプログラムで遊んでみるのもよし、オリジナルゲームをプログラミングするのもよし!
BASICは、プログラミングの原点です。プチコン唯一の公式書籍



inserted by FC2 system