SHIROのIchigoJam日記

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

PKバトル

以前作ったPK戦ゲームをシンプルにした「1人用PKバトル」と、チームで対戦する「PKチームバトル」を作ってみました。

1人用PKバトル


カーソルキーの左右でシュート方向を選びます。


キーパーの逆を突いてゴールが決まれば、次へ進みます。


キーパーに止められたらゲームオーバーです。
決めたゴール数が表示されます。

PKチームバトル


5人ずつのチームで、キッカーとキーパーを交替しながら対戦します。
キッカーはカーソルキーの左右、キーパーはZとXで方向を入力します。
(両者がキー入力すると、先へ進みます)


5人蹴った後に、勝ったチームが表示されて終了します。
(5人蹴る前に勝敗が決まった場合は、そこで終了します)


5人蹴っても勝負が着かない場合は、1人ずつのサドンデスになり、決着が着くまで行われます。


プログラム3行目の文字を変更すると、表示されるチーム名が変わります。

プログラムリスト:1人用PKバトル

10 CLV:VIDEO 7
20 CLS
30 LC 1,2:?CHR$(233);
40 LC 1,0:?CHR$(249)
50 D=BTN(29)-BTN(28)
60 IF !D GOTO 50
70 CLS:LC 1+D,1:?CHR$(233)
80 R=RND(2)*2-1
90 LC 1+R,0:?CHR$(252-R)
100 WAIT 60
110 IF D<>R S=S+1:GOTO 20
120 ?S

Web版はこちら。

プログラムリスト:PKチームバトル

1 '*PK Battle
2 CLV:VIDEO 3:G=-1
3 [100]="A":[101]="B"
4 COPY 240*8,144*8,8
5 COPY 241*8,111*8,8
6 COPY 242*8,120*8,8
7 GSB 18:A=A+1:E=E+C
8 IF E-F>H-B M=0:GOTO 16
9 IF F-E>H-A M=1:GOTO 16
10 GSB 18:B=B+1:F=F+C
11 IF E-F>H-B M=0:GOTO 16
12 IF F-E>H-A M=1:GOTO 16
13 IF G>9 AND E>F M=0:GOTO 16
14 IF G>9 AND E<F M=1:GOTO 16
15 GOTO 7
16 LC 3,8:?"*";CHR$(PEEK([100+M]));" WIN!!*"
17 END
18 G=G+1:H=G/2+1:IF H<5 H=5
19 CLS:
20 LC 1,4:?"[=====";CHR$(249);"=====]"
21 X=7:LC X,10:?CHR$(233)
22 LC X,11:?CHR$(250);
23 GSB 39:D=0:K=0:CLK
24 I=INKEY()
25 IF I=28 D=-1
26 IF I=29 D=1
27 IF I=90 K=-1
28 IF I=88 K=1
29 IF !D || !K GOTO 24
30 BEEP 20:FOR Y=10 TO 6 STEP -1
31 LC X,Y:?" ":X=X+D
32 LC X,Y-1:?CHR$(233):WAIT 3
33 NEXT
34 LC 7,4:?"="
35 LC 7+K*5,4:?CHR$(252-K)
36 C=(D!=K):BEEP 30-C*20,30:[G]=2-C
37 GSB 39:WAIT 60
38 RTN
39 LC 0,1:?CHR$(PEEK([100])):?CHR$(PEEK([101]))
40 FOR I=1 TO H
41 LC I,0:?I%10
42 J=(I-1)*2
43 LC I,1:?CHR$(240+[J])
44 J=J+1
45 LC I,2:?CHR$(240+[J])
46 NEXT
47 RTN

Web版はこちら。

入力をボタンやジョイスティックにしてチームバトルすると、かなり盛り上がるでしょう。
(キー入力部分は24~28行。Dがキッカー、Kがキーパーの方向。左が-1、右が1)
プログラムサイズが1kバイトギリギリなので、スペースを詰めないとボタン入力機能は入りませんが…。