プチコンでダンジョンゲームを作る(1)ict...

20
ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/1 プチコンでダンジョンゲームを作る(1) プチコンは、NINTENDO DSi/3DS で BASIC(ベーシック)プログラムを作るソフトです。 ●今回の目標 今回は、ダンジョン(迷宮)ゲームを作ります。 下画面にダンジョンのマップ、上画面にプレイヤー の画面を表示して、十字キーでプレイヤーを操作し て、出口へ向かいます。 ●プチコンの操作 3DS のメニューから、ソフト「プチコン mkII」(マークツー)を動かします。 ソフトが動くと、最初のメニュー画面が表示されます。 「何をしたいのじゃ?」と聞かれるので、下画面のメニューか ら「プログラムを作る」を選びます。

Upload: others

Post on 23-Apr-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/1

プチコンでダンジョンゲームを作る(1)

プチコンは、NINTENDO DSi/3DSで BASIC(ベーシック)プログラムを作るソフトです。

●今回の目標

今回は、ダンジョン(迷宮)ゲームを作ります。

下画面にダンジョンのマップ、上画面にプレイヤー

の画面を表示して、十字キーでプレイヤーを操作し

て、出口へ向かいます。

●プチコンの操作

3DSのメニューから、ソフト「プチコン mkII」(マークツー)を動かします。

ソフトが動くと、最初のメニュー画面が表示されます。

「何をしたいのじゃ?」と聞かれるので、下画面のメニューか

ら「プログラムを作る」を選びます。

Page 2: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/2

プログラムを作る画面が表示されます。

上画面が実行・表示画面、下画面がキーボードです。

下画面でキーをタッチすると、上画面にその文字が入

力されます。

キーボードで入力する文字の種類を変えるには、以下

のようにします。

普通に打つ…大文字アルファベット「A B C」

SHIFT キーを押してから打つ…小文字アルファベ

ット「a b c」

左下の文字きりかえキーで「♥」を押す…グラフィッ

ク文字が打てる。SHIFTキーでさらにきりかえ。

左下の文字きりかえキーで「ア」を押す…カタカナ

文字が打てる。SHIFTキーでさらにきりかえ。

試しにいろいろな文字を打ってみましょう。

打ってある文字を消す時は、バックスペースキー またはデリートキー を使います。

バックスペースキー…カーソルの前の文字が消える

A_ → _

デリートキー…カーソルの後ろの文字が消える

_A → _

Page 3: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/3

●実行モードでプログラムを動かす

まずは実行モード画面で、かんたんなプログラムを打って、動かしてみましょう。

「PRINT」の後ろは、空白(スペース)を1文字空けます。

「コンニチハ」の両側は「"」(ダブルクォーテーション)で囲みます。

上のプログラムを打って、Enterキーを押すと、次の行に「コンニチハ」と表示されます。

「PRINT」(プリント)命令は、画面に文字を表示する命令です。

文字をいろいろ変えて、表示してみましょう。

PRINT命令では、計算もできます。

「PRINT」に続いて(1文字空白を入れて)計算式を書いて Enter キーを押すと、次の行に計

算の答えが表示されます。

いろいろな計算をしてみましょう。計算記号は以下のように書きます。

足し算…「+」

引き算…「-」

かけ算…「*」

わり算…「/」

画面に文字がいっぱいになったら、「ACLS」(エーシーエルエス)命令を使うと、画面がクリア

されます。

PRINT ”コンニチハ”

PRINT ”コンニチハ”

コンニチハ

ACLS

PRINT 1+1

Page 4: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/4

●編集モードで長いプログラムを作る

実行モードで直接プログラムを書くと、1行しか書けません。

長いプログラムを作るには、以下の手順で行います。

① 編集モードでプログラムを書く

② 実行モードでプログラムを実行する

キーボード画面の「編集」ボタンをタッチして、編

集モードに移ります。

上の画面が、編集モードの画面になります。

画面左側に「1」「2」…と行番号が表示されます。

少し長いプログラムを書いてみましょう。

1行目で「コンニチハ」を表示、2行目で「コンバンハ」を表示するプログラムです。

まず、この 2行を編集モード画面で打ちます。

次に、キーボード画面左下にある「実行」ボタンをタッチして、実行モードにします。

実行モード画面で「RUN」(ラン)と打って Enter キーを押すと、プログラムが実行されて、2 行

の文字が表示されます。

プログラムは、基本的に上から下へ順番に実行されます。

何行かプログラムを打って、実行してみましょう。

※プログラムを実行する命令「RUN」は、キー

ボード画面の上にあるファンクションキーの 5

番に登録されています。これをタップすると一

度に入力できます。

※START ボタンでも、プログラムを実行できます。

1 PRINT ”コンニチハ”

2 PRINT ”コンバンハ”

コンニチハ

コンバンハ

Page 5: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/5

●文字の表示

それでは、ダンジョンゲームのプログラムを作り始めます。

編集モードの画面で、以下のプログラムを最初から打ってみましょう。

まず 1行目。先頭に「’」をつけた行は「コメント」とみなされて、何も実行しません。

「’」の後は自由に文字を書くことができます。

ここでは、プログラムのタイトル「DANJON1」を書いています。

「*」(アスタリスク)は、タイトルを目立たせるために使っています。

2行目は、Enterキーを押して 1行空けます。プログラムを見やすくするためです。

3行目の「CLEAR」(クリア)は、プログラムで使うデータをクリアする命令です。

4行目の「ACLS」は、実行モードでも使った、画面をクリアする命令です。

この「CLEAR」「ACLS」の 2つは、まずプログラムの最初に書くことが多いです。

5行目は、Enterキーを押して 1行空けます。

6行目の「SC=0」は、「SC」という変数(へんすう)を「0」にする、という意味です。

変数とは、数字などを入れる入れ物、箱のようなものだと思ってください。

(小学校の算数で使う□、中学校の数学で使う xのようなものです)

ここでは、ゲームのスコアを入れる変数 SCを用意して、最初なので「0」に設定しています。

プログラムの世界では、「SC=0」は「SC と 0が等しい」という意味では無く、「SCを 0にする」

(数学の言い方では「SCへ 0を代入する」)という意味になります。

1 ’*** DANJON1 ***

3 CLEAR

4 ACLS

6 SC=0

7 LOCATE 0,0

8 PRINT ”SCORE ”;SC

カーソルを(0,0)(画面左上)へ移動

点数を表示

コメントでタイトルを書く

変数・データをクリア

画面をクリア

スコアを 0にする

Page 6: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/6

7行目では、「LOCATE」(ローケート)命令が出てきます。これは文字を表示する位置(カーソ

ルの位置)を指定する命令です。

LOCATE 0, 0

x座標 y座標

プチコンの画面の文字表示は、横方

向がx座標(0~31)、縦方向がy座標

(0~23)になっています。

「LOCATE 0,0」で、文字を表示する

カーソルを、画面左上(0,0)へ移動し

ます。

8行目の PRINT命令で、カーソルの位置(0,0)から文字が表示されます。

まず「SCORE 」を表示して、「;SC」で、続けて変数 SCの内容(今は 0)を表示します。

PRINT命令の中で「;」(セミコロン)を使うと、その後の内容を続けて表示します。

プログラムを実行してみましょう。

上画面の左上に「SCORE 0」と表示されます。

Page 7: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/7

スコアと同じように、プレイヤーの HP(体力)を設定し

て、表示してみましょう。

以下のプログラムを追加します。

プログラムを実行してみましょう。

画面の上の中央に、HPの値が表示されます。

1 ’*** DANJON1 ***

3 CLEAR

4 ACLS

6 SC=0

7 LOCATE 0,0

8 PRINT ”SCORE ”;SC

10 HP=50

11 LOCATE 16,0

12 PRINT ”HP ”;HP

カーソルを(16,0)へ移動

HPを表示

HPを 0にする

Page 8: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/8

●プログラムを保存する

作ったプログラムは、このままだとプチコンを終了すると消えてしまいます。

消えてしまうと困るので、保存しましょう。

プログラムを保存するには、実行モードの画面に移って、「SAVE」(セーブ)命令を使います。

SAVE命令の文法は以下のとおりです。

SAVE "DANJON1"

ファイル名

SAVE に続けて、「"」(ダブルクォーテーション)

で囲んで保存するファイル名を指定します。

Enter キーを押すと、下画面に確認が表示され

ます。「了解」ボタンで元に戻ります。

なお、キーボード上のファンクションキーの 3番に「SAVE」が設定されているので、これをタッ

プすると一度に入力できます。

ファイルがちゃんと保存されているか、確認しましょう。

保存されたファイルを一覧で見る「FILES」(ファイルズ)命令を使います。

「FILES」と打って Enterキーを押すと、保存されているファイルが一覧で表示されます。

プログラムファイルは「PRG:」に続いてファイル名が表示されます。

なお、ファンクションキーの 1番に「FILES」が設定されているので、これをタップすると一度に

入力できます。

★保存したプログラムを読み込む

保存してあるプログラムを読み込むには、「LOAD」(ロード)命令を使います。

LOAD "DANJON1"

ファイル名

ファンクションキーの2番に「LOAD」が設定されているので、使ってください。

FILES

PRG:DANJON1

OK

Page 9: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/9

●迷路全体のデザイン

ダンジョンゲームなので、ダンジョン(迷路)を作るプログラムを作ってみましょう。

今回の迷路は、以下のような条件で作ります。

さて、こうした迷路をどうやって作ればいいでしょうか?

迷路を作る方法は、数学の重要な問題の1つで、昔から研究されています。

「穴掘り法」「棒倒し法」などの作り方がありますが、今回はわかりやすい「穴掘り法」をやって

みます。最初に全部かべの状態にして、穴を掘って道を作っていく方法です。

右下がゴール 正解の道は 1通りしかない。他の道は行き止まり。

左上がスタート 道とかべの幅は同じ(1:1)

プレイする度に新しい迷路になる。

Page 10: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/10

迷路は 3DSの下画面で作ります。

まずは下画面を、かべでうめてみます。プログラムを追加します。

プログラムを実行してみましょう。

下画面に白いかべが一面に表示されます。

Aボタンを押すと、プログラムが終了します。

プログラムの中身を説明します。

下画面に文字を表示するには、キーボードを消さないといけないので、PNLTYPE(パネルタ

イプ)命令を使います。

PNLTYPE "OFF"

スイッチ

今回はスイッチを「OFF」にして、キーボードを消します。

1行分の「■」を表示

y座標をくり返し

y座標を 0~22 までくり返し

Aボタンが押されるまで待つ

○スイッチ

OFF パネルなし

PNL キーボードなし(ボタンのみ表示)

KYA 英語のキーボード表示

KYM 記号のキーボード表示

KYK カナのキーボード表示

10 HP=50

11 LOCATE 16,0

12 PRINT ”HP ”;HP

13

14 ’--- メイロ ヅクリ ---

15

16 PNLTYPE ”OFF”

17 FOR MY=0 TO 22

18 PNLSTR 0,MY,”■”*31

19 NEXT MY

20

21 @TEISI

22 IF BUTTON()!=16 THEN @TEISI

コメント

下画面のキーボードを消す

Page 11: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/11

下画面に文字を表示するのは、PRINT命令ではなくPNLSTR(パネルストリング)命令を使い

ます。(19行目)

PNLSTR 0, MY, “■”*31

x座標 y座標 表示する文字

ここでは、変数 MY を使って、表示する座標を指定しています。

表示する文字は「“■”*31」として、「■」を 31個(1行分)表示しています。

★くり返し

かべを一面に表示するために、くり返し命令「FOR」(フォー)、「NEXT」(ネクスト)命令を使っ

て、PNLSTR命令をくり返し実行します。

「FOR」「NEXT」命令の文法は、以下のとおりです。

FOR MY =0 TO 22 STEP 1

変数 最初の値 最後の値 変化量

指定した変数を、最初の値~最後の値まで変化させて、対応する NEXTまでのプログラムを

くり返します。STEP は変化させる量で、プラスの値を指定すると増え、マイナスの値だと減っ

ていきます。STEPを省略した場合は1ずつ増やします。

NEXT MY

変数

くり返しの最後を表します。FOR命令に対応した変数を指定します。

今回は、かべを一面に表示するために、y座標を 0(上)~22(下)までくり返しています。

最後の 2行

は、Aボタンが押されるまでそこで待つプログラムです。

それぞれの命令については、後で詳しく説明します。

ここではとりあえずそのまま打ってください。

23 @TEISI

24 IF BUTTON()!=16 THEN @TEISI

Page 12: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/12

スタート地点(迷路の左上)を道にします。

プログラムを実行してみましょう。

スタート地点が道になります。

同じように、右下のゴール(出口)を作りましょう。

ドアの文字は、キーボードをグラフィックモード(а)にするとあります。

プログラムを実行してみましょう。

ゴール地点にドアが表示されます。

14 ’--- メイロ ヅクリ ---

15

16 PNLTYPE ”OFF”

17 FOR MY=0 TO 22

18 PNLSTR 0,MY,”■”*31

19 NEXT MY

20

21 ’スタート チテン

22 PNLSTR 1,1,” ”

23

24 @TEISI

25 IF BUTTON()!=16 THEN @TEISI

スタート地点に空白(道)を表示

21 ’スタート チテン

22 PNLSTR 1,1,” ”

23

24 ’ゴール チテン

25 PNLSTR 29,22,”Щ”

26

27 @TEISI

28 IF BUTTON()!=16 THEN @TEISI

ゴール地点にドアを表示

Page 13: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/13

★途中に新しい行を 1行入れる

スタート地点を道にするなど、プログラムの途中に新しい行を入れるには以下のようにしま

す。

① 「@TEISI」の行の先頭にカーソルを持っていきます。

② Enterキーを何度か押して、改行を入れます。

③ 十字キーでカーソルを上に移動します。

④ 新しい行を入力します。

19 NEXT MY

20

21 @TEISI

19 NEXT MY

20

21

22

23

24 @TEISI

19 NEXT MY

20

21

22

23

24 @TEISI

19 NEXT MY

20

21 ’スタート チテン

22

23

24 @TEISI

Page 14: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/14

●迷路を掘る

スタート地点から、迷路を掘って道を作っていきましょう。

まず、「道を掘る人」がいると仮定して、その人の座標を変数 X、Y を使って、スタート地点

(1,1)に設定します。

さて、スタート地点から迷路をどうやって掘っていくかです。

最初の「迷路の条件」にあるように、道とかべは同じ幅(1:1)になるので、一度に2ブロックず

つ道を掘っていきます。

★方向の設定

道を掘る方向を決めるために、上下左

右の方向を右の図のように番号を設定

します。

プチコンの画面は、左上が原点(0,0)

で、右方向がx座標、下方向が y 座標

になっています。

例えば方向が「1」(上)の時は、一歩進

むと、x座標はそのまま、y座標が-1(1

減る)になります。

24 ’ゴール チテン

25 PNLSTR 29,22,”Щ”

26

27 X=1

28 Y=1

29

30 @TEISI

31 IF BUTTON()!=16 THEN @TEISI

「掘る人」の座標(X,Y)を(1,1)に設定

Page 15: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/15

方向設定を元に、いくつか新しい変数を決めます。

★方向による座標変化量 DX,DY

4方向へ進んだ時の座標 X,Yの変化量を、配列(はいれつ)変数 DX,DYに設定します。

配列変数というのは、同じ名前で、番号で区別していくつも使える変数です。

配列変数を使うには、まず「DIM」(ディム、ディメンジョンの略)命令で、使いたい配列変数を

設定します。

DIM命令の文法は以下のとおりです。

DIM DX(5), DY(5)

配列変数名1

(配列の個数)

配列変数名 2

(配列の個数)

配列の個数 例えば DX(5)と指定すると、DX(0)~DX(4)の 5個の配列変数が使える。

()内の数字(添そ

え字)は必ず 0から始まる。

複数の配列変数を使いたい時は、「,」(カンマ)で区切って書く。

その後、32~35行で、1~4の 4方向の DX,DYの値を設定しています。

例えば方向が1(上)の時は、x方向の変化量 DX(1)は 0(変化無し)、y方向の変化量 DY(1)

は-1(1減らす)です。

x方向の値とy方向の値を設定する命令を、「:」(コロン)でつなげて書いています。

コロンでつなげると、2つ以上の命令を続けて書くことができます。

使う配列変数を設定

上・下・左・右方向の

x座標の変化量 DX、

y座標の変化量 DYを設定

27 X=1

28 Y=1

29

30 ’アナホリ ジュンビ

31 DIM DX(5),DY(5)

32 DX(1)=0:DY(1)=-1

33 DX(2)=0:DY(2)=1

34 DX(3)=-1:DY(3)=0

35 DX(4)=1:DY(4)=0

36

37 @TEISI

38 IF BUTTON()!=16 THEN @TEISI

Page 16: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/16

★行のコピー・ペースト

似たプログラムの行をいくつも打つ時は、前に打ってある

行をコピーすると楽です。

行をコピーするには、キーボード右下の「コピー」「ペース

ト」キーを使います。

(表示されていない時は▲▼ボタンをタッチしてください)

① 十字キーでカーソルを移動して、コピーしたい行にカーソルが点滅した状態にする。

DX(1)=0:DY(1)=-1

② 「コピー」キーをタッチする。

③ 十字キーでカーソルを下へ移動して、新しい行の場所へ持っていく。

④ 「ペースト」キーをタッチすると、行がコピーされて貼りつきます。

⑤ DX(1)=0:DY(1)=-1

⑥ 行の内容を書き換えます。

⑦ DX(2)=0:DY(2)=1

このようにコピー・ペースト機能を使うと、入力の手間が最小限ですみます。

Page 17: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/17

★道を 1回掘る

乱数を出す「RND」(ランダム)関数で方向をランダムに決めて、その方向へ道を掘ります。

RND関数は、実行する度に違う数字(乱数)が出てきます。

RND( 4)

最大値

今回は方向の数字が1~4 なので、「RND(4)+1」として、1~4 までの乱数を出しています。そ

の方向の値を、変数 Dに入れています。

次の行で、ランダムに決まった方向の D を使って、「X=X+DX(D)」「Y=Y+DY(D)」とすることで、

その方向へ X,Yを進めます。

14 ページで書いたように、一度に 2 ブロックずつ道を掘るので、道を掘る処理を 2 回やりま

す。

プログラムを実行してみましょう。

1回だけ道が掘られます。

実行する度に、違う方向へ道ができます。

30 ’アナホリ ジュンビ

31 DIM DX(5),DY(5)

32 DX(1)=0:DY(1)=-1

33 DX(2)=0:DY(2)=1

34 DX(3)=-1:DY(3)=0

35 DX(4)=1:DY(4)=0

36

37 ’アナホリ

38 D=RND(4)+1

39 X=X+DX(D)

40 Y=Y+DY(D)

41 PNLSTR X,Y,” ”

42 X=X+DX(D)

43 Y=Y+DY(D)

44 PNLSTR X,Y,” ”

45

46 @TEISI

掘る方向 Dを 1~4でランダムに決める

X、YをDの方向へ進めて、空白を表示

X、YをDの方向へ進めて、空白を表示

0~(最大値-1)までの乱数が出てくる。

この例なら 0~3の 4種類のどれか。

Page 18: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/18

★はみ出しの判断(条件判断)

今のままだと、乱数の値によっては、道が迷路の

外へはみ出してしまいます。

それでは困るので、迷路の外へはみ出そうな時は

道を掘らず、改めて乱数を出し直すようにしましょう。

はみ出すかどうかは、座標 X、Yの

値で判断します。

迷路で道を作る範囲は、

X座標=1~29

Y座標=1~21

になります。

例えば、X=1の時は、左(D=3)へ

道を掘るとはみ出してしまいます。

そちらへは道を掘らないようにしま

す。

このように条件判断をする時は、「IF」(イフ)~「THEN」(ゼン)~「ELSE」(エルス)命令を使い

ます。

まず、やり直すための戻り先の「ラベル」を作ります。(38行目)

ラベルは「@」(アットマーク)に続けてアルファベットや数字で指定します。

36

37 ’アナホリ

38 @ANAHORI

39 D=RND(4)+1

40 IF X==1 AND D==3 THEN @ANAHORI

41 IF X==29 AND D==4 THEN @ANAHORI

42 IF Y==1 AND D==1 THEN @ANAHORI

43 IF Y==21 AND D==2 THEN @ANAHORI

44

45 X=X+DX(D)

46 Y=Y+DY(D)

47 PNLSTR X,Y,” ”

戻り先のラベル

IF命令ではみ出しチェック。

はみ出したら@ANAHORIへ戻る。

Page 19: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/19

★穴掘りをくり返す(ループ)

今は 1回しか道を掘らないので、くり返し掘っていくようにしましょう。

1回掘った後で、最初の@ANAHORIへ戻すようにします。

この 2行は削除して、

代わりに上のように「GOTO @ANAHORI」と入力します。

「GOTO」(ゴートゥー)命令は、プログラムの実行をジャンプさせる命令です。

文法は以下のとおりです。

GOTO @ANAHORI

ジャンプ先ラベル

36

37 ’アナホリ

38 @ANAHORI

39 D=RND(4)+1

40 IF X==1 AND D==3 THEN @ANAHORI

41 IF X==29 AND D==4 THEN @ANAHORI

42 IF Y==1 AND D==1 THEN @ANAHORI

43 IF Y==21 AND D==2 THEN @ANAHORI

44

45 X=X+DX(D)

46 Y=Y+DY(D)

47 PNLSTR X,Y,” ”

48 X=X+DX(D)

49 Y=Y+DY(D)

50 PNLSTR X,Y,” ”

51

52 GOTO @ANAHORI

戻り先のラベル

@ANAHORIへもどる

52 @TEISI

53 IF BUTTON()!=16 THEN @TEISI

この 2行は削除

Page 20: プチコンでダンジョンゲームを作る(1)ICT ジュニア(上田パソコンクラブ) プチコンでダンジョンゲームを作る(1)/3 実行モードでプログラムを動かす

ICTジュニア(上田パソコンクラブ)

プチコンでダンジョンゲームを作る(1)/20

プログラムを実行すると、いろいろな方向へ道を掘っていきます。

プチコンの速度は速いので、あっという間に全部道が掘られて、碁盤の目のようになります。

放っておくといつまでもプログラムが止まらないので、「SELECT」ボタンを押して止めましょ

う。

★時間待ち(ウェイト)

あまりに速く道を掘ってしまうと、プログラムが実行されていく様子がよくわからないので、ウェ

イト(時間待ち)を入れて遅くします。(後で迷路のプログラムが完成したら削除します)。

「WAIT」(ウェイト)命令の文法は、以下のとおりです。

WAIT 1

待ち時間

待ち時間…60分の 1秒単位で指定します。60=1秒です。

プログラムを実行してみましょう。

動きがゆっくりになるので、道が掘られていく様子がよくわかります。

碁盤の目に道ができてしまうと、1 回曲がるだけで出口へ行けてしまうので、迷路になりませ

ん。

迷路になるように道を掘らないといけないのですが、それは次回に。

48 X=X+DX(D)

49 Y=Y+DY(D)

50 PNLSTR X,Y,” ”

51

52 WAIT 1

53 GOTO @ANAHORI