SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

RPG(ロールプレイングゲーム)Ver.2

シンプルなロールプレイングゲームです。パソコンクラブの教材用に試作しました。
以前のRPGの改良版です。
2スロットにプログラムを分けて、村人が追加されました。

  • スロット0と1に、2つのプログラムを配置してください。
    • 連続したスロットであれば、0と1でなくても構いません。
  • スロット0のプログラムを起動すると、自分のキャラ(勇者)、おにぎり、村人(猫)が表示されます。
  • 自分のキャラは上下左右のカーソルキーで移動できます。
  • 歩いていると時々モンスターと出会い、戦闘画面になります。お互いに攻撃をくり返して、モンスターのHPを0以下にすると勝利です。自分のHPが0以下になるとゲームオーバーです。
  • おにぎりをゲットすると、自分のHPが満タン(100)に回復します。
  • 村人はいつ会ってもあいさつしてくれます。ときどき癒されてください(笑)

MixJuiceでダウンロードできます。
?"MJ GET comich.net/ichigojam/rpg20.txt"
?"MJ GET comich.net/ichigojam/rpg21.txt"

教材用に作ったので、無理な容量圧縮はしていません。
圧縮して改造すれば、いろいろなアイテムや機能を搭載できるでしょう。

【スロット0】メインプログラム

10 '*RPG
20 CLV:F=FILE()
30 H=100
40 X=15:Y=11
42 P=RND(32):Q=RND(23)
44 D=RND(32):E=RND(23)
50 GOSUB 300
100 '*GAMELOOP
110 U=X:V=Y
120 IF BTN(LEFT)=1 AND U>0 THEN U=U-1
130 IF BTN(RIGHT)=1 AND U<31 THEN U=U+1
140 IF BTN(UP)=1 AND V>0 THEN V=V-1
150 IF BTN(DOWN)=1 AND V<22 THEN V=V+1
160 C=SCR(U,V)
170 IF C=236 THEN GOSUB 400
175 IF C=235 THEN GOSUB 500
180 G=0:IF RND(100)=0 THEN LRUN F+1
190 IF G>0 THEN GOSUB 300
195 IF G=2 THEN GOTO 270
200 LOCATE X,Y
210 PRINT " ";
220 LOCATE U,V
230 PRINT CHR$(250);
240 X=U:Y=V
250 WAIT 5
260 GOTO 100
270 '*GAMEOVER
280 LOCATE 10,12
285 PRINT "*GAME OVER*"
290 END
300 '*MAP
310 CLS
320 LOCATE 0,23
330 PRINT "HP=";H;
340 LOCATE X,Y
350 PRINT CHR$(250);
360 LOCATE P,Q
365 PRINT CHR$(236);
370 LOCATE D,E
375 PRINT CHR$(235);
390 RETURN
400 '*PEOPLE
410 LOCATE 12,23
420 PRINT "コンニチハ";
430 WAIT 120
440 P=RND(32):Q=RND(23)
450 GOSUB 300
460 RETURN
500 '*ONIGIRI
510 LOCATE 12,23
520 PRINT "オニギリ ゲット!";
530 WAIT 120
540 H=100
550 D=RND(32):E=RND(23)
560 GOSUB 300
570 RETURN
【スロット1】バトル画面
10 '*RPG-BATTLE
20 CLS
30 LOCATE 10,11
40 PRINT CHR$(250)
50 LOCATE 8,13
60 PRINT "HP=";H
70 LET [0],237,30,239,40,240,50
80 M=RND(3)*2
90 I=[M+1]+RND(21)
100 LOCATE 22,11
110 PRINT CHR$([M])
120 LOCATE 20,13
130 PRINT "HP=";I
140 LOCATE 0,17
150 PRINT "バトル スタート!"
160 WAIT 90
170 '*Y TURN
180 LOCATE 0,17
190 PRINT "ユウシャノ コウゲキ!"
195 BEEP 10,5
200 A=RND(51)
210 I=I-A
220 LOCATE 23,13
230 PRINT I;" "
240 WAIT 90
250 LOCATE 0,17
260 PRINT " "
265 IF I<=0 THEN GOTO 380
270 '*M TURN
280 LOCATE 0,17
290 PRINT "モンスターノ コウゲキ!"
295 BEEP 30,5
300 A=RND([M+1]/2)
310 H=H-A
320 LOCATE 11,13
330 PRINT H;" "
340 WAIT 90
350 LOCATE 0,17
360 PRINT " "
365 IF H<=0 THEN GOTO 450
370 GOTO 170
380 '*Y WIN
390 LOCATE 0,17
400 PRINT "ユウシャノ カチ!"
405 BEEP 10,30
410 WAIT 90
420 LOCATE 0,17
430 PRINT " "
440 G=1:LRUN F,190
450 '*M WIN
460 LOCATE 0,17
470 PRINT "モンスターノ カチ!"
475 BEEP 30,30
480 WAIT 90
490 LOCATE 0,17
500 PRINT " "
510 G=2:LRUN F,190