Hatena::ブログ(Diary)

SHIROのモバイル日記 RSSフィード Twitter

2016-09-20

[]へびゲーム

FacebookのIchigoJam-FANグループで、ゲーム「SNAKE」を作った人がいました。
似たようなへびゲームを作ってみました。
だいぶルールが違っていて、ヘタすると一瞬でゲームオーバーになります(笑)
f:id:shiro0922:20160920213329p:image

f:id:shiro0922:20160920213328p:image

  • スタートすると、へびが動き出します。操作は上下左右のカーソルキーです。
  • 周りの壁・だんだん出てくる障害物・へび自身の体に当たらないように避けてください。当たるとゲームオーバーです。
  • へびは放っておくと5秒に1個ずつ長くなります。画面に出てくるイチゴを食べると、1点入ると共に、へびが1個短くなります。
  • 難しすぎると思う人は、180行の「WAIT3」の数値を変えてください。

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

プログラム容量に余裕があったので、行ラベルをコメントで残しています。
解析の参考にしてください。

10 '*Hebi
20 CLV:CLS:LET[90],-1,0,-1,1,0,-2,0,-1,1,0,1
30 FORX=0TO30:?"*";:NEXT
40 FORY=1TO21:LC0,Y:?"*":LC30,Y:?"*":NEXT
50 FORX=0TO30:?"*";:NEXT
60 LC0,23:?"0";
70 L=4:X=7:Y=11:Z=X+Y*256:FORN=0TOL+1:[N]=Z:Z=Z-1:NEXT:GSB190:D=-1
80 K=255:GSB250:CLT
90 '@LOOP
100 E=INKEY()-30:CLK:IFABS(E)<3&&E<>[98+D*3]D=E
110 U=X+[96+D*3]:V=Y+[97+D*3]
120 C=SCR(U,V):IF!CGOTO150
130 IFC=255GSB230:GOTO150
140 BEEP30,30:LC7,10:?"*** GAME OVER ***":CLK:END
150 '@LP1
160 IFTICK()>300L=L+1:K=42:GSB250:CLT
170 X=U:Y=V:FORN=LTO0STEP-1:[N+1]=[N]:NEXT:[0]=X+Y*256
180 GSB190:WAIT3:GOTO90
190 '@HEBI
200 LC[0]&255,[0]/256:?CHR$(232)
210 FORN=1TOL:LC[N]&255,[N]/256:?CHR$(233):NEXT
220 LC[L+1]&255,[L+1]/256:?CHR$(0):RTN
230 '@SCORE
240 BEEP:S=S+1:LC0,23:?S;:L=L-(L>0):GSB190:K=255:GSB250:RTN
250 '@ICHIGO
260 I=RND(30)+1:J=RND(22)+1:IFSCR(I,J)>0GOTO250
270 LCI,J:?CHR$(K);:RTN

2016-09-05

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

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

f:id:shiro0922:20160905223324p:image:w360

  • スロット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

2016-09-03

[]落ち物パズルゲーム

シンプルな落ち物パズルゲームです。パソコンクラブの教材用に試作しました。
f:id:shiro0922:20160904002302p:image:w360

  • 起動すると、四角い枠が表示され、上からブロックが落ちてきます。
  • ブロックをカーソルキーの左右で移動させて、底に積んでいってください。スペースキーを押すと、ブロックを上下反転できます。
  • 横1列(ブロック8個)が揃うと、その列が消えてスコアが1点加算されます。2列いっぺんに消すと、2点+ボーナス2点で計4点が入ります。
  • ブロックが上まで積み上がるとゲームオーバーです。

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

1 '*Fall
2 CLV:CLS:FORJ=0TO13:[J]=513:Q=[J]:GSB21:NEXT
3 [14]=1023:Q=[14]:GSB21
4 LC0,16:?"SCORE 0":T=50
5 G=0:A=RND(15)+1:B=(A&3)*16:C=(A&12)*4:Y=0:IF!CGSB22
6 GSB19:IF(B&[0])OR(C&[1])GOTO18
7 FORK=0TOT:IF!BTN(SPACE)GOTO9
8 GSB22:GSB19:GOTO13
9 L=BTN(LEFT):R=BTN(RIGHT):IF!(L|R)GOTO13
10 D=(B>>L)<<R:E=(C>>L)<<R
11 IF(D&[Y])OR(E&[Y+1])GOTO13
12 GSB20:B=D:C=E:GSB19
13 NEXT:V=Y+1:IF(B&[V])OR(C&[V+1])GSB24
14 IF!GGOTO17
15 IFG=2GOTO18
16 IFG=1GOTO5
17 GSB20:Y=V:GSB19:GOTO7
18 BEEP30,30:LC0,0:END
19 LC0,Y:Q=[Y]|B:GSB21:Q=[Y+1]|C:GSB21:RTN
20 LC0,Y:Q=[Y]:GSB21:Q=[Y+1]:GSB21:RTN
21 FORI=0TO9:?CHR$(Q&1);:Q=Q>>1:NEXT:?:RTN
22 IF!BRTN
23 A=B:B=C:C=A:RTN
24 BEEP30,5:[Y]=[Y]|B:W=Y+1:[W]=[W]|C:P=1
25 IF[W]=1023&&W<14GSB29 ELSEW=Y
26 IF[W]=1023GSB29
27 G=1:IFY<2G=2
28 RTN
29 BEEP:[W]=513:Q=[W]:LC0,W:GSB21
30 S=S+P:LC6,16:?S:T=T-P*2:P=P+2:IFT<0T=0
31 FORZ=WTO1STEP-1:[Z]=[Z-1]:Q=[Z]:LC0,Z:GSB21:NEXT
32 LC0,0:Q=513:GSB21:RTN

2016-08-26

[]RPGロールプレイングゲーム

シンプルなロールプレイングゲームです。パソコンクラブの教材用に試作しました。
f:id:shiro0922:20160826173310j:image:w360

f:id:shiro0922:20160826173350j:image:w360

f:id:shiro0922:20160826173423j:image:w360

  • 起動すると、自分のキャラ(人間)と、おにぎりが表示されます。おにぎりしかありませんが、世界のマップです(笑)
  • 自分のキャラは上下左右のカーソルキーで移動できます。
  • 歩いていると時々モンスターと出会い、戦闘画面になります。お互いに攻撃をくり返して、モンスターのHPを0以下にすると勝利です。自分のHPが0以下になるとゲームオーバーです。
  • おにぎりをゲットすると、自分のHPが満タン(100)に回復します。

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

本当は「村人と話す」「モンスターから逃げる」などの機能も作っていたのですが、1kバイトの壁に阻まれて泣く泣く削りました(^_^;)

1 '*RPG
2 CLV:H=100:GSB7:LET[0],64,10,237,20,239,30,240,40,241,50
3 U=X-BTN(LEFT)*(X>0)+BTN(RIGHT)*(X<31):V=Y-BTN(UP)*(Y>0)+BTN(DOWN)*(Y<22):C=SCR(U,V):IFC=235GSB10
4 LCX,Y:?" ":LCU,V:?CHR$(250):IF!RND(40)&&((X<>U)OR(Y<>V))GSB12
5 X=U:Y=V:WAIT5:IFH>0GOTO3
6 BEEP30,30:LC0,18:?"GAME OVER":END
7 CLS:LC0,23:?"HP=";H;:GSB8:RTN
8 A=RND(32):B=RND(23):IFSCR(A,B)GOTO8
9 LCA,B:?CHR$(235);:RTN
10 LC10,23:?"オニギリ ゲット";:WAIT90:LC10,23:?" ";
11 H=100:LC0,23:?"HP=";H;:GSB8:RTN
12 CLS:LC10,11:?CHR$(250):LC8,13:?"HP=";H
13 M=RND(5)*2:I=[M+1]+RND(21):LC22,11:?CHR$([M]):LC20,13:?"HP=";I:BEEP30,10:WAIT90
14 LC0,17:?"ユウシャ ノ コウゲキ!":FORJ=1TO3:LC22,11:?"*":BEEP10,5:WAIT5:LC22,11:?CHR$([M]):NEXT:A=RND(H/2):I=I-A:LC23,13:?I;" ":WAIT90
15 LC0,17:?" ":IFI<=0LC0,17:?"モンスター ヲ タオシタ!":BEEP10,30:WAIT90:GSB7:RTN
16 LC0,17:?"モンスター ノ コウゲキ!":FORJ=1TO3:LC10,11:?"*":BEEP30,5:WAIT5:LC10,11:?CHR$(250):NEXT:BEEP30,10:A=RND([M+1]/2):H=H-A:LC11,13:?H;" ":WAIT90
17 LC0,17:?" ":IFH<=0RTN
18 GOTO14

2016-08-25

[]ジャンプアクションゲーム

シンプルなジャンプアクションゲームです。パソコンクラブの教材用に試作しました。
f:id:shiro0922:20160825220912j:image:w360

  • 起動すると、3段の床とハシゴ、自分のキャラ(人間)が表示されます。
  • 自分のキャラの操作は、カーソルキー左右=左右移動、カーソルキー上下=ハシゴを上る/下りる、スペースキー=ジャンプです。
  • 敵キャラ「@」が出てくるので、当たらないようにジャンプやハシゴで避けてください。当たるとゲームオーバーになります。
  • ジャンプしてコイン「$」をゲットすると1点になります。

MixJuiceでダウンロードできます。
?"MJ GET comich.net/ichigojam/jumpaction.txt"
プログラム容量が若干残っているので、いろいろ改造するのも楽しいでしょう。

1 '*Jump Action
2 CLV:LET[90],30,6,-1,0,14,1,30,22,-1
3 CLS:FORJ=7TO23STEP8:LC0,J:FORI=0TO30:?CHR$(1);:NEXT:NEXT
4 FORJ=7TO22:LC7,J:?"H":LC23,J:?"H":NEXT
5 GSB19:X=0:Y=22
6 IFJOR(Y%8=6)U=X-BTN(LEFT)*(X>0)+BTN(RIGHT)*(X<30)
7 V=Y:IFJGOTO10
8 V=Y-BTN(UP)*(H=72)+BTN(DOWN)*(SCR(X,Y+1)=72)
9 IFBTN(SPACE)*(H<>72)J=1:G=-3
10 V=V+G*J:G=G+J:LCX,Y:?CHR$(H);:H=SCR(U,V):IFH=36BEEP:S=S+1:GSB19:H=0
11 LCU,V:?CHR$(250);:X=U:Y=V
12 IFH=64M=1
13 IFY%8=6J=0
14 IFRND(50)=0GSB25
15 FORA=0TO15STEP5:IF[A]GSB22
16 IF(![A])*(!RND(20))GSB20
17 NEXT:IF!MGOTO6
18 BEEP30,30:LC11,11:?"GAME OVER":END
19 LC0,0:?"SCORE ";S:RTN
20 R=RND(3)*3:[A+1]=[90+R]:[A+2]=[91+R]:[A+4]=SCR([A+1],[A+2]):IF[A+4]RTN
21 [A]=1:[A+3]=[92+R]:LC[A+1],[A+2]:?"@";:RTN
22 D=[A+1]+[A+3]:E=[A+2]:LC[A+1],[A+2]:?CHR$([A+4]);:IF(D<0)OR(D>30)[A]=0:RTN
23 [A+4]=SCR(D,E):LCD,E:?"@";:IF[A+4]=250M=1
24 [A+1]=D:[A+2]=E:RTN
25 B=RND(32):C=8*RND(3):IFSCR(B,C)GOTO25
26 LCB,C:?"$":RTN

ダウンロード
リンク集
アクセスカウンター