プチコン3号&BIGまとめWiki

SmileBASIC 初心者講座

パンくずリスト

のべ 4462 人にお越しいただきました。ありがとうございます。

投稿者: Ryou Tanpo

 

はじめに

この講座は プチコン3号プチコンBIG のみに対応しています。

お願い

今後の修正と追加の参考にするため、コメント欄にてご意見やご指摘、ご要望などをお書きいただきますようお願いします。
ご感想を投票していただけるだけでも嬉しいです。

最新情報

ページの更新

2017年4月27日
2017年4月28日
  • 講座の中での一部の無効なリンクを修正しました。
2017年8月26日
2019年4月5日
  • 内容に若干の修正を加えました。
  • 近日、新しいセクションを追加する予定です。

第1章 SmileBASIC とは

「さすがにそれは理解しているよ」という方、一度挫折して再挑戦する方へ: 第1章をスキップする

SmileBASIC とは Nintendo 3DS のダウンロードソフト プチコン3号 、および Nintendo Wii U のダウンロードソフト プチコンBIG に内蔵された「プログラミング言語」のことです。

1.1 プログラミングとその言語について

このソフトでは、3DS にさせることを、一個一個専用の命令文として書いていくプログラミングをすることで、ゲーム作りをすることができます。
この命令文をずらーっと書いたものをプログラムと呼びます。これは一般的なパソコンで作る場合も同じです。

プログラムには動かす環境や用途によって様々な書き方、すなわち言語が存在し、これをプログラミング言語といいます。現代で代表的なのは、C言語やJava言語ですが、プチコン3号は独自の SmileBASIC というプログラミング言語を使って、プログラムを作ることができます。

1.2 特徴

SmileBASIC は、その名に含まれるように、昔主流だった BASIC 言語を元にしています。比較的習得しやすく、簡単にプログラムを作ることができました。
SmileBASIC も同じように、 BASIC の長所を引き継いでおり、プログラムの書き方も似ていますが、さらに、プログラムをより分かりやすく、書きやすくする命令や機能が追加されたり、3DS のタッチパネルやボタンなどの入力装置など、ハードウェアの機能も最大限に活用できる命令も追加されています。

1.3 歴史

プチコンシリーズの歴史について簡単に触れてみます。 SmileBASIC はもともと DSi のソフト、「プチコン」 ( 既に販売終了 ) に内蔵されていました。これはプチコン初代と呼ばれることもあります。命令の種類や編集機能など、現在のプチコン3号やBIGと比べると劣りますが、後述する上位互換 *1 の「プチコンmkII」とともに、いちばん、かつての BASIC の面影が残ったソフトです。
その後、機能を追加してパワーアップした、「プチコンmkII」が発売されます。

そして発表されたのが 3DS 用の「プチコン3号」です。プラットフォームとともに、新しくなった開発環境と、新しくなった SmileBASIC。ほとんどの命令は互換性があり、解像度も上がるなど様々な面で機能が向上しました。
2016年には、 Wii U 用の「プチコンBIG」も発売されました。

 

これから、DSi と 3DS と Wii U、それぞれの長所を活かしたプラットフォームで、みんなが驚くような、楽しいプログラム作りを始めましょう!

重要: 本講座は 3DS のプチコン3号と Wii U のプチコンBIGのみに対応しています。

第2章 SmileBASIC を始めよう!

ここまでかたくるしい説明ばかりになってしまいました…
まずは、プログラムを書きながら、基礎を覚えていきましょう!

2.1 プログラムを書く前に

まずは、プログラムを入力し始める方法を覚えましょう。

  1. プチコン3号を起動します。
  2. 「プログラムを作る」、「作品を見る」などのメニューが出てきます。この画面は TOP MENU といいます。
    「プログラムを作る」をタッチしてみましょう。
  3. 黒い上画面がでて、下画面にキーボードのようなものが出てきたと思います。これは DIRECT モード *2 という画面です。ここで命令を入力して、ENTER キーを押すと、そのまま実行されます。
    しかし、ここでプログラムを書くことができません。そこで、下画面左下の方にある「EDIT 0」をタッチしてみます。
  4. EDITモード *3 になりましたが、上画面が変化したのがお分かりいただけたでしょうか。行番号が付いています。ここでプログラムを入力するのです。

DIRECT モードと EDIT モードは、プチコン3号を始めたばかりの人は慣れるのに時間がかかると思います。 どちらでも命令を打つことができるのですが、EDIT モードでは ENTER を押すと開業されるのに対し DIRECT モードで ENTER すると命令が即実行されてしまいます。 また EDIT モードで書いたプログラムを実行する命令は DIRECT モードでしか実行できません。 ややこしいけれど、最初はとりあえず EDIT モードでプログラムを書いて実行するのは DIRECT モードで、と覚えておきましょう。

さて、プログラムを書く準備はできました。

2.2 さあ、文字を出してみよう

EDITモードになったところで、次のように入力してみましょう。
カーソルは十字ボタンで移動できます。ENTERキーをタッチするか、Aボタンを押すと改行できます。
もし打ち間違えてしまったら、←キーをタッチするかYボタンを押して1文字消すことができます。

  1. ACLS
  2. PRINT ”HELLO WORLD!!”

はい、できた!

そうしたら、DIRECTモードに戻りましょう。下画面左下の方の「DIRECT」をタッチします。

次のように入力して、ENTERキーをタッチしてみましょう。

  1. RUN
 

ENTERキーで、入力した命令がそのまま実行されます。RUN は、SLOT ( デフォルトは 0 ) に入っている一連のプログラムを実行します。

画面は次のようになっていると思います。もしピッと音が鳴って Syntax error in 0:X などとエラーが表示されてしまったら、打ち間違いを確認してから、もう一度 RUN と打って実行しなおしてみてください。

  1. HELLO WORLD!!
  2. OK

おめでとう!! 今、あなたがプチコン3号/BIGで文字を出せた瞬間です。

 

…といっても、これぐらいならすぐできるって?

メモ: RUN の実行は、実は START ボタンを押すことで代用できます。EDITモードでも START ボタンを押すと DIRECT モードで実行できます。
メモ: OK の文字はプロンプトといって、次に RUN などの命令が入力できる状態であることを示します。

2.3 好きな文字を表示してみよう

先ほど入力したプログラムのうち、PRINT につづく点々のカッコ()の中に「HELLO WORLD!!」という部分があると思います。
これは文字列といいます。もともと1つの文字が集まっていることから、文字列と呼ばれるのです。今までの「文字」は、正確にいえば「文字列」だったわけです。
そして、この点々のカッコにも意味があって、カッコの中の部分を文字列のデータとして扱うことを示しています。逆に言えば、これがなければ、文字列の「データ」として扱われないので、SmileBASIC はプログラムとして意味があるものだと解釈してしまいます。いま現在、 HELLO や WORLD にはプログラムとして有効ではないため、エラーが出てしまいます。
つまり、SmileBASIC のプログラムにおいては、このカッコに文字列のデータを入力して、初めて文字列となるのです。

重要: カッコの種類にも意味があります。文字列のデータを入力するときは必ず「"」を使用してください。
メモ: 文字列の最初と最後、どちらも同じカッコを使います。

そこで、そのカッコの中を好きな文字列に変更してみましょう。

  1. ACLS
  2. PRINT ”好きな文字列”

アルファベット、記号、ひらがな・カタカナなど何でも構いません。ただし、漢字を打つには特殊な方法が必要なので今は我慢してください…。 プチコンBIG ではローマ字入力が利用できます。

あとは、先ほどのように実行してみましょう。

  1. RUN

これで、もう思いのままにメッセージを表示できます!

  1. THANK YOU
  2. OK

うーん、なんかしっくりこないなぁ…

2.4 プログラムの意味

さて、そろそろプログラム自体のお話をしましょう。

さあ、文字を出してみよう好きな文字を表示してみよう で紹介したプログラムにはちゃんと意味があります。 まずは、ここに示す先ほどのプログラムの最初から、順に解説していきます。

  1. ACLS
  2. PRINT ”好きな文字列”

このプログラムの最初にあるのは、ACLS ですね。
これは、「画面をまっさらに消す」という意味の命令です。画面に何か表示する前にこの命令を書いておくと、画面をまっさらに消してから表示することができます。プログラムによっては、途中で強制終了したときに、画面がそのままの状態で残り、そのまま別のプログラムを実行すると画面がさらにグチャグチャになってしまうことがあるため、プログラムの最初に記述しておくと良いでしょう。

次に、PRINT です。よく見ると、その次に先ほどご説明した文字列があるのがお分かりでしょうか? この PRINT は、この命令に続く文字列を画面に表示する命令 *4 なのです。

PRINT のように、命令に続いて文字列のようなデータを記述することがあります。これを、引数といいます。 たとえば、さあ、文字を出してみよう で、PRINT に続く HELLO WORLD!! は引数です。 なお、ACLS には完全に動作が決まっており、渡すデータがないため、引数はありません。

 

最後に、コメントについて覚えておきましょう。 プログラムには、注釈をつけたい時が出てきます。そこでコメントを使うと、プログラムに自由な言葉をのせることができるのです。また、コメントは、プログラム の実行に何の影響もありません。 コメントを始めたいところで、「'」(アポストロフィ)という記号を記述します。すると、その行の最後までコメントとなります。プログラム上のコメントは、デフォルトでは緑色に表示されます。

 

ACLSPRINT とコメントのまとめ

  1. ’ ACLS の使い方
  2. ACLS
  3. ’ PRINT の使い方
  4. PRINT ”好きな文字列”
  5. ’コメント
 

以上で、命令とその引数についてご理解いただけたでしょうか?
実は、引数の数が複数になったり、それに伴って特定の引数を指す呼び名が出てくるのですが、それはまた後ほどご説明いたします。

2.5 もっと自由な、華やかな文字表示

今までは、ただ決まった進み方で、黒い画面に白い文字を表示するだけでした。
そこで、今度は、もっと自由な文字の表示の仕方を学びましょう。

そこで使うのが、 LOCATE です。

ここに、命令の書き方、すなわち書式を示します。LOCATE はその通りに書きますが、続く引数の部分はそのまま X座標 なんて書くわけではありません。

  1. LOCATE X座標,Y座標

こんな風に、引数を2つ以上渡す必要があるときは、カンマで区切ります。

LOCATE は、次に PRINT で表示する最初の文字の位置を決めます。例えば、

  1. LOCATE 0,29
  2. PRINT ”(^_^)”

とすると、画面のいちばん下に顔文字が出てきます。*5

では、この数字にはどんな意味があるのでしょう。

+  数学においての座標をご存知の方

X 座標は、横の方向の位置を表します。左端が 0 、右端は 49 です。
Y 座標は、縦の方向の位置を表します。上端が 0 、下端は 29 です。

したがって、プチコン3号、BIGともに

  • 左上は X 座標 0 、Y 座標 0 → LOCATE 0,0
  • 右上は X 座標 49 、Y 座標 0 → LOCATE 49,0
  • 左下は X 座標 0 、Y 座標 29 → LOCATE 0,29
  • 右下は X 座標 49 、Y 座標 29 → LOCATE 49,29 となります。

ちなみに1番目の引数 ( ここではX座標 ) を第1引数、2番目の引数 ( ここではY座標 ) を第2引数といいます。以降、第3引数、第4引数と続きます。この命令には2つの引数を渡すことになります。

メモ: LOCATE は、それぞれの座標が範囲外であるとエラー ( Out of range ) を出します。エラーについては次の節で詳しく解説があります。
メモ: プチコンBIG においては、今後解説する予定の XSCREEN による解像度の設定によって X 座標、 Y 座標の最大値が異なります。今現在では気にする必要はありません。
 

さて、次に、もっと華やかな文字表示の仕方を学びましょう。

そこで使うのが、 COLOR です。今後表示する文字列のを、数値によって決めます。

  1. COLOR 文字色[,背景色]
  2. COLOR ,背景色

このように、一般にリファレンスなどで記載されている書式に [ ] で囲まれている部分があるときは省略できます。たとえば、実際に渡す文字色を 4 、背景色を 13 とすると、

  1. COLOR 4
  2. COLOR 4,13
  3. COLOR ,13

のいずれの書式も利用できます。

COLOR は、今後 PRINT で表示する文字列の色を指定します。次に COLOR を実行するまで、色は変わりません。
ACLS の実行後やデフォルトの状態では

  1. COLOR 15,0

となっています。

文字色、背景色ともに数値で指定します。範囲は 0 - 15 で、色との関係は次の通りです。

数値
0透明
1
2暗い赤
3
4暗い緑
5
6暗い黄色
7黄色
8紺色
9
10暗いマゼンタ
11マゼンタ
12暗いシアン
13シアン
14灰色
15

背景色だけを指定するときは COLOR の後に、文字色を指定せずにコンマを打ってから指定します。 命令によって、書式、引数の詳細は違うのでリファレンスを見ましょう。

2.6 避けては通れないエラーの道

プログラミングを始めたら、いつかはエラーに遭遇するものです。エラーというのは、プログラムの間違いや、実行中の何らかの例外によってプログラムを止めなければならないときに出るお知らせのようなものです。例えば、次のプログラム。

  1. COLOR 9999

これでは、何色にすべきかわかりません。9999番に対応した色はないからです。そこで、SmileBASIC は、引数などの数値が範囲外である、という意味のエラーを出します。

  1. Out of range
  2. OK
  3.  

このようなことで、これよりももっと大変なことになる前にプログラムを安全に停止してくれます。こんな馬鹿げたミスはない、それはごもっともですが、パソコンでプログラミングしていると、パッと見た感じでは良く見えるプログラムがメモリの問題を起こして暴走、ということもずいぶん良くあるものです。エラーやバグが起きたら、原因を探って直す。そのような作業を、デバッグと呼びます。

投票

わかりやすさ

選択肢 投票
わかりやすい 21  
まあまあ 2  
わかりにくい 5  

CHECKER FLAG (ひとことコメント)

講座に関するご感想、ご指摘、ご要望、何でもお書きください。
講座と無関係なコメントや、公序良俗に反するもの、誹謗中傷にあたるもの、「荒らし」はやめてください。


 

最終更新 : 2019/04/06 (土) 20:05:20

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 5 人がこのサイトを見ています
  • このページはこれまでに 4462 回、本日は 2 回、昨日は 4 回閲覧されました

ページの先頭に戻る

*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.044 秒 | このページの最終更新 : 2019/04/06 (土) 20:05:20 (253d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30