IchigoJamの画面で遊ぶ神経衰弱ゲームです。
トランプカードを使ったシンプルなゲームを目指して作ってみましたが、1Kバイト目一杯になってしまいました。
遊び方
まずは5分以内でのクリアを目指しましょう。
なお、時間表示が適当なので、9分以上かかると表示がおかしくなります。
プログラム
10 CLV:VIDEO 3:CLS:L=52 20 FOR S=1 TO 4 30 FOR N=1 TO 13 40 [C]=S*16+N:C=C+1 50 NEXT:NEXT 60 FOR J=1 TO 200 70 A=RND(52):B=RND(52) 80 C=[A]:[A]=[B]:[B]=C 90 NEXT 100 FOR Z=0 TO 51 110 GSB @PR1 120 NEXT 130 Z=0:CLT 140 @LOOP 150 GSB @SEL:A=Z:[Z]=[Z]+256:GSB @PR1 160 GSB @SEL:B=Z:[Z]=[Z]+256:GSB @PR1 170 WAIT 60 180 IF [A]%16=[B]%16 BEEP:[A]=256:[B]=256:L=L-2 190 Z=A:[Z]=[Z]-256:GSB @PR1 200 Z=B:[Z]=[Z]-256:GSB @PR1 210 GSB @PRT 220 IF L GOTO @LOOP 230 BEEP 10,30:?:END 240 @PRT 250 T=TICK()/60 260 LC 0,11:?T/60;":";DEC$(T%60+100,2); 270 RTN 280 @SEL 290 WAIT 5 300 X=Z%5:Y=Z/5 310 K=INKEY():CLK 320 X=X-(K=28)*(X>0)+(K=29)*(X<4) 330 Y=Y-(K=30)*(Y>0)+(K=31)*(Y<10) 340 Z=Y*5+X:IF Z>51 Z=51 350 GSB @PRT:LC X*3,Y,1 360 IF K!=32 OR ![Z] OR [Z]&256 GOTO @SEL 370 BEEP 30:RTN 380 @PR1 390 X=Z%5:Y=Z/5 400 LC X*3,Y 410 C=[Z] 420 IF C=0 ?" ":RTN 430 IF C/256=0 ?"**":RTN 440 S=C&#F0>>4:N=C%16 450 ?CHR$(227+S); 460 IF N=1 ?"A":RTN 470 IF N=10 ?CHR$(234):RTN 480 IF N=11 ?"J":RTN 490 IF N=12 ?"Q":RTN 500 IF N=13 ?"K":RTN 510 ?N:RTN
★web版はこちら。最初にカードをシャッフルするのに7秒ほど待たされます。
トランプカードのデータ
(8/24追記)プログラム簡易版
プログラミング教材を想定して、設定を簡単にした簡易版です。
- 画面は通常の32×24サイズ
- カード枚数を16枚に(1~8、×2セット)
- カードのスーツ(マーク)を無くして、1~8の数字表示のみ
- カード表示を4枚×4枚にして、カーソルはみ出し処理を簡単に
プログラムが短くなって、カードが少ないのでプレイも簡単です。
10 CLV:CLS:L=16 20 FOR S=1 TO 2 30 FOR N=1 TO 8 40 [C]=N:C=C+1 50 NEXT:NEXT 60 FOR J=1 TO 100 70 A=RND(L):B=RND(L) 80 C=[A]:[A]=[B]:[B]=C 90 NEXT 100 FOR Z=0 TO L-1 110 GSB @PR1 120 NEXT 130 Z=0:CLT 140 @LOOP 150 GSB @SEL:A=Z:[Z]=[Z]+256:GSB @PR1 160 GSB @SEL:B=Z:[Z]=[Z]+256:GSB @PR1 170 WAIT 60 180 IF [A]%16=[B]%16 BEEP:[A]=256:[B]=256:L=L-2 190 Z=A:[Z]=[Z]-256:GSB @PR1 200 Z=B:[Z]=[Z]-256:GSB @PR1 210 GSB @PRT 220 IF L GOTO @LOOP 230 BEEP 10,30:?:END 240 @PRT 250 T=TICK()/60 260 LC 0,14:?T/60;":";DEC$(T%60+100,2); 270 RTN 280 @SEL 290 WAIT 5 300 X=Z%4:Y=Z/4 310 K=INKEY():CLK 320 X=X-(K=28)+(K=29):X=X&3 330 Y=Y-(K=30)+(K=31):Y=Y&3 340 Z=Y*4+X 350 GSB @PRT:LC X*3,Y,1 360 IF K!=32 OR [Z]=0 OR [Z]>256 GOTO @SEL 370 BEEP 30:RTN 380 @PR1 390 X=Z%4:Y=Z/4 400 LC X*3,Y 410 C=[Z] 420 IF C=0 ?" ":RTN 430 IF C<256 ?"**":RTN 440 N=C%16 450 ?N;" ":RTN