パパコーダー

子どもと一緒にプログラミングを始めよう!2019年3月からCoderDojo溝口という子ども向けのプログラミングサークルを始めました。神奈川県川崎市の近くにお住まいの方はどうぞ遊びに来てください。

【まずは基本から!】FuzeBasicでループ、変数、IF文、配列のプログラムを書いてみよう

もうすぐ Fuze4 Nintendo Switch が発売される予定です。

まずは、Windows PC 上で FuzeBasic プログラムを学んで、Fuze4 Nintendo Switch が発売されたらすぐ遊べるように準備しておきましょう。

今回は、Fuze のサイトからダウンロードできる次の Worksheets に取り組んでいきたいと思います。

FUZE Coding Projects Book 1 - The Basics [For Windows, FUZE & Raspberry Pi]

FuzeBasicプログラミングを始めよう

"Hello World"を表示する

FUZE BASIC を起動します。
まだインストールしていない方は、こちらの記事を参考にしてください。

papa-coder.hatenablog.com

f:id:oco777:20190505111124j:plain
FUZE BASIC

[F2]キーを押すと、エディターが開きます。

f:id:oco777:20190505111357j:plain
Fuze Editor

エディターで下記のように入力します。

PRINT "Hello World"

[F3]キーで実行します。
ファイルを保存するように聞かれたら、適当なフォルダに保存しましょう。

"Hello World"と表示されました。

f:id:oco777:20190505111905j:plain
Hello World

[F2]キーを押すと、エディターに戻ります。

基本的に、この流れでプログラミングしていきます。

LOOPを使う

プログラムを下記のように変えてみましょう。
[F3]キーを押して実行すると、"Hello World"が出続けます。

LOOP
    PRINT "Hello World"
REPEAT

[ESC]キーを押すと、プログラムが中断します。

f:id:oco777:20190505113623j:plain
[Esc]キーでプログラムを中断する

"Hello World"の後ろに「;」(セミコロン)をつけると出力が変わります。
試してみよう!

LOOP
    PRINT "Hello World";
REPEAT

WAIT(1)を追加すると、1秒待ってから次の処理が実行されます。

LOOP
    PRINT "Hello World";
    WAIT(1)
REPEAT

色を変える

下記のようにプログラムを変えてみましょう。

LOOP
    INK = BLACK
    PAPER = RASPBERRY
    PRINT "Hello World";
REPEAT

文字と背景の色が変わりました。
INK で文字色が、PAPERで背景色が変わります。

f:id:oco777:20190505120021j:plain
INK と PAPER

次は文字を大きくしてみます。

CLS
LOOP
    FONTSIZE(5)
    INK = 19
    PAPER = 27
    PRINT "Hello World";
    WAIT(1)
REPEAT

CLSは、画面をいったんきれいにします。
FONTSIZEで、文字の大きさを指定します。
INKとPAPERは、数字で指定することもできます。

f:id:oco777:20190505120619j:plain
FONTSIZE(5)

変数を使う

girls、boys、classがそれぞれ変数になります。
変数の名前は自由に付けられますが、分かりやすい名前にしましょう。

girls = 15
boys = 15
class = girls + boys
PRINT class

リンゴ(apple)がなくなるまで、ループを続けるプログラムを書いてみましょう。
REPEAT UNTIL でリンゴがなくなるまでループし続けます。

CLS
apples = 10
LOOP
    CLS
    INK = GREEN
    PAPER = BLACK
    PRINT "I have ";apples;" Apples."
    WAIT(0.5)
    PRINT "If we eat one... then..."
    apples = apples - 1
    WAIT(1)
REPEAT UNTIL apples = 0
CLS
PRINT "I have no Apples... And a tummy ache..."
END

IF文を使う

INPUT を使うと、実行したときに「?」が表示されて入力を促してきます。
数値を入力すると、その値がageに入ります。

下記のIF文ではageが25より大きければ、次のPRINT文が実行されます。
ENDIFを忘れないようにしましょう。

PRINT "Hello, how old are you?"
INPUT age
IF age > 25 THEN
    PRINT "Wow...";age;"! a living fossil!"
ENDIF

IF文を使うと、こんなクイズも作れます。

score = 0
CLS
PRINT "Hello and welcome to the quiz."
WAIT(2)
PRINT "Please answer in lower case."
WAIT(2)
INK = YELLOW
PRINT "Q1. Which elemental type is Pikachu?"
INPUT answer$
IF answer$ = "electric" THEN
    PRINT "Correct! Pikachu is an electric type!"
    score = score + 1
    WAIT(2)
ELSE
    PRINT "Incorrect!"
    WAIT(2)
ENDIF

配列を使う

DIMで配列を作ることができます。
配列は0から始まり、最大値(下記の例では4)まで使えます。

DIM answer$(4)
answer$(0) = "You're in luck!"
answer$(1) = "It's not looking good..."
answer$(2) = "Almost certainly."
answer$(3) = "Not today..."
answer$(4) = "Maybe!"
FONTSIZE(3)
LOOP
    CLS
    PRINT "Spin the ball... Ask me any question!"
    INPUT question
    num = RND(5)
    PRINT answer$(num)
    PRINT "Let's play again!"
    WAIT(3)
REPEAT

まとめ

FuzeBasicのプログラムをいくつか書いてみました。
まだコマンドをいくつか試しただけですが、プログラミングの流れが一通り理解できました。

今回作成したソースファイルをGitHubにアップしました。
参考にしてください。

GitHub - coderdojo-mizonokuchi/fuze-basic-lesson-01: FuzeBasic のプログラミングを学んでいきます。