プログラム置き場 
              ここには、気が向いた時に作った、簡単なプログラムを置いて行こうと思います。

ポ ケ コ ン
Casio
PB-700/770
 WEB上で、カシオのPB-700/770 用のプログラムを見かけませんので、以前、ごろ寝しながら作ったブロック崩しのリストを置いてみます。激遅ですので、レトロな雰囲気でも味わうつもりで遊んでみて下さい。 Down
ポ ケ コ ン
Sharp
PC-G850
 上のブロック崩しのゲームを、シャープのPC-G850の広い画面と、高速な処理スピードで楽しく遊べるように移植してみました。この機種はお持ちの方も多く、また短いプログラムなので、暇つぶしに遊んでみてはいかがでしょうか。 Down

      

( PB-700/770用 ブロックくずし )

Casio PB-700/770 用のブロックくずしゲームです。
PB-700の取扱説明書に骨格のリストが掲載されていましたが、
プログラム作成の例題ですので、非常に簡略化されたものでした。
そのままではゲームとして成り立たないため、独自に改良してみました。

1.ボールがブロックの2段目以上に入り込んだ時も、きちんと当たり判定処理を
  行うようにした。(これで、ブロック内にボールが入り込むと大量にブロックを
  消せるようになった。)
2.ブロックを全て消す事が出来た時は、次の面へ行けるようにした。
3.次の面へ入ると、自分のボールが1個増えるようにした。
  (おかげで、ゲームオーバーになかなかなりません。困った・・・)
4.おじゃまブロックを追加し、ブロックが消えるごとに移動するようにした。
5.ポケコンを縦に持って遊ぶように、バーの移動を「0」−−「7」キーにした。
6.ハイスコアを残すようにした。(RUNすると初期化します。)
7.画面の雰囲気と効果音を少しだけ変更した。

元々が激遅ですので、レトロな雰囲気だけでも味わって下さい。

----------------------------------------------------------------------------

10 REM ** BLOCK KUZUSI **
20 CLS:CLEAR
25 R=1:N=3:U=1:V=S:S=0
40 FOR I=0 TO 3:LOCATE 2,I:PRINT CHR$(254);:NEXT I
50 FOR I=154 TO 158 STEP 2:DRAW(I,0)-(I,31):NEXT I
100 FOR I=3 TO 6:FOR J=0 TO 3
120 LOCATE I,J:PRINT CHR$(141);:NEXT J:NEXT I
150 IF L=16 THEN L=0:N=N+1:GOTO 310
200 LOCATE 17,1:PRINT CHR$(147):LOCATE 8,U:PRINT "*";
220 L=0
300 REM -- MAIN --
310 LOCATE 0,0:PRINT N
315 LOCATE 17,R:PRINT CHR$(147);
320 X=10:Y=INT(RND*2+1):A=1:B=1
330 LOCATE X,Y:PRINT CHR$(236);
340 Q$=INKEY$
350 IF Q$="7" THEN GOSUB 500 ELSE IF Q$="0" THEN GOSUB 600
360 IF X=3 THEN A=-A
370 IF Y=0 THEN B=-B ELSE IF Y=3 THEN B=-B
380 IF X=16 THEN GOSUB 800
385 IF X+A=8 THEN GOSUB 850
390 LOCATE X,Y:PRINT " ";
400 IF X>16 THEN 440
410 G=(X+A)*8:H=(Y+B)*8
420 P=POINT(G,H)
430 IF P=1 THEN GOSUB 700:GOTO 410
435 IF L=16 THEN 100
440 X=X+A:Y=Y+B
450 IF X>18 THEN BEEP:BEEP 1:BEEP ELSE 330
460 N=N-1:IF N>0 THEN 300
470 CLS:LOCATE 2,1
475 IF V>S THEN PRINT "SCORE ";S ELSE PRINT "Hi-SCORE!!";S
480 FOR I=1 TO 3:BEEP 1:BEEP:NEXT I
485 LOCATE 1,3:PRINT "TRY AGAIN? (Y/N)";
490 J$=INKEY$:IF J$="" THEN 490
495 BEEP:IF J$="Y" THEN CLS:GOTO 25
496 CLS:END
500 LOCATE 17,R:PRINT " ";:R=R-1
520 IF R<0 THEN R=0
530 LOCATE 17,R:PRINT CHR$(147);:RETURN
600 LOCATE 17,R:PRINT " ";
610 R=R+1:IF R>3 THEN R=3
620 LOCATE 17,R:PRINT CHR$(147);:RETURN
700 LOCATE X+A,Y+B:PRINT CHR$(236);
710 S=S+8-X:BEEP 1:L=L+1:GOSUB 860
715 LOCATE X+A,Y+B:PRINT " ";
720 X=X+A:Y=Y+B:A=-A
730 IF Y=0 THEN B=-B ELSE IF Y=3 THEN B=-B
740 RETURN
800 IF Y=R THEN A=-A:BEEP ELSE IF Y+B=R THEN BEEP:A=-A ELSE 830
810 IF RND<0.7 THEN 830
820 LOCATE X,Y:PRINT " ";:X=X-1
830 GOSUB 860:RETURN
850 IF Y+B=U THEN BEEP:A=-A
855 RETURN
860 E=INT(RND*4)
870 LOCATE 8,U:PRINT " ";:U=E:LOCATE 8,U:PRINT "*";:RETURN

  先頭へ戻る


( PC-G850用 ブロックくずし )

Sharp PC-G850用のブロックくずしゲームです。
PB-700/770用を移植してみました。

さすがに画面の広さと処理スピードの速さによって、オールベーシックですが、
十分ゲームとして楽しく遊べます。
圧電スピーカーを追加して音を出した方が、やはりゲームらしいですね。
難易度は、20行のWAITの値を変更することで変更可能です。
初期値は4ですが、小さくすると速く、大きくすると遅くなります。
バーの移動は「0」−−「7」キーで、ポケコンを縦に持って遊んで下さい。
詳しくは、PB-700/770用を参照して下さい。

----------------------------------------------------------------------------

10 REM ** BLOCK KUZUSI **
20 CLS:CLEAR:WAIT 4
25 R=1:N=3:U=1:V=S:S=0
40 FOR I=0 TO 5:LOCATE 2,I:PRINT CHR$(227);:NEXT I
50 FOR I=139 TO 143 STEP 2:LINE(I,0)-(I,47):NEXT I
100 FOR I=3 TO 6:FOR J=0 TO 5
120 LOCATE I,J:PRINT CHR$(141);:NEXT J:NEXT I
150 IF L=24 THEN L=0:N=N+1:GOTO 310
200 LOCATE 20,1:PRINT CHR$(147):LOCATE 12,U:PRINT "*";
220 L=0
300 REM -- MAIN --
310 LOCATE 0,0:PRINT N
315 LOCATE 20,R:PRINT CHR$(147);
320 X=10:Y=INT(RND 4)+1:A=1:B=1
330 LOCATE X,Y:PRINT CHR$(236);
340 Q$=INKEY$
350 IF Q$="7" THEN GOSUB 500 ELSE IF Q$="0" THEN GOSUB 600 ELSE GOSUB 880
360 IF X=3 THEN A=-A
370 IF Y=0 THEN B=-B ELSE IF Y=5 THEN B=-B
380 IF X=19 THEN GOSUB 800
385 IF X+A=12 THEN GOSUB 850
390 LOCATE X,Y:PRINT " ";
400 IF X>19 THEN 440
410 G=(X+A)*6:H=(Y+B)*8
420 P=POINT(G,H)
430 IF P=1 THEN GOSUB 700:GOTO 410
435 IF L=24 THEN 100
440 X=X+A:Y=Y+B
450 IF X>21 THEN BEEP 1,2:BEEP 1,4:BEEP 1,2 ELSE 330
460 N=N-1:IF N>0 THEN 300
470 CLS:LOCATE 2,1
475 IF V>S THEN PRINT "SCORE ";S ELSE PRINT "Hi-SCORE!! ";S
480 FOR I=1 TO 3:BEEP 1,1:BEEP 1,3:NEXT I
485 LOCATE 1,3:PRINT "TRY AGAIN? (Y/N)";
490 J$=INKEY$:IF J$="" THEN 490
495 BEEP 1:IF J$="Y" THEN CLS:GOTO 25
496 CLS:END
500 LOCATE 20,R:PRINT " ";:R=R-1
520 IF R<0 THEN R=0
530 LOCATE 20,R:PRINT CHR$(147);:RETURN
600 LOCATE 20,R:PRINT " ";
610 R=R+1:IF R>5 THEN R=5
620 LOCATE 20,R:PRINT CHR$(147);:RETURN
700 LOCATE X+A,Y+B:PRINT CHR$(236);
710 S=S+8-X:BEEP 1,1:L=L+1:GOSUB 860
715 LOCATE X+A,Y+B:PRINT " ";
720 X=X+A:Y=Y+B:A=-A
730 IF Y=0 THEN B=-B ELSE IF Y=5 THEN B=-B
740 RETURN
800 IF Y=R THEN A=-A:BEEP 1,2 ELSE IF Y+B=R THEN BEEP 1,2:A=-A ELSE 830
810 IF (RND 1)<0.7 THEN 830
820 LOCATE X,Y:PRINT " ";:X=X-1
830 GOSUB 860:RETURN
850 IF Y+B=U THEN BEEP 1,6:A=-A
855 RETURN
860 E=INT(RND 5)
870 LOCATE 12,U:PRINT " ";:U=E:LOCATE 12,U:PRINT "*";:RETURN
880 FOR I=0 TO 80:NEXT I:RETURN

  先頭へ戻る

inserted by FC2 system