SHIROのIchigoJam日記

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

パスワードバトル

パスワードネタの第3弾、バトルゲームを作ってみました。
キミは最強のパスワードを作れるか?

  • 最初に自分のパスワードを聞かれるので、10文字以内で入力します。
  • 敵のモンスターが出現して、バトルが始まります。互いのパスワードで強さのパラメータが決まります。
    • HP:体力
    • AT:攻撃力
    • DF:守備力
    • SP:すばやさ
  • 互いに攻撃して、HPが0以下になった方が負けです。自分が勝てば次のバトルに進み、だんだん敵モンスターが強くなります。自分が負けたらゲームオーバーです。

プログラムリスト

※3/30 攻撃時の効果音を追加しました。

1 CLV:CLS:?"Password(<10c)?"
2 K=INKEY():IF!KCONT
3 IFK<>10?CHR$(K);:GOTO2
4 FORJ=0TO9:[J]=PEEK(#920+J):NEXT
5 GSB14:A=B:D=E:S=T:G=I:SRND(TICK())
6 CLS:W=W+1:?"[BATTLE";W;"]":H=G
7 M=M+(M<10):O=20:GSB21:GSB14
8 GSB22:O=0:GSB22
9 X=A*2+S/2-E-T/2:O=20:GSB29:WAIT20:IFI<=0GOTO12
10 X=B*2+T/2-D-S/2:O=0:GSB29:WAIT20:IFH<=0GOTO13
11 GOTO9
12 LC0,10:?"You WIN!":BEEP10,30:WAIT60:GOTO6
13 LC0,10:?"You Lose":BEEP30,30:END
14 I=10:B=10:E=10:T=10
15 FORJ=0TO9:Z=[O+J]:IF!ZGOTO20
16 IFZ>96&&Z<123B=(B*2)^Z:GOTO20
17 IFZ>64&&Z<91E=(E*2)^Z:GOTO20
18 IFZ>47&&Z<58I=(I*2)^Z:GOTO20
19 T=T^Z
20 NEXT:RTN
21 FORJ=0TOM-1:[O+J]=RND(94)+33:NEXT:RTN
22 LCO,2:IFO?"@Monster"ELSE?"*You"
23 LCO,3:FORJ=0TO9:?CHR$([O+J]);:NEXT
24 LCO,5:?"HP=";:IFO?IELSE?H
25 LCO,6:?"AT=";:IFO?BELSE?A
26 LCO,7:?"DF=";:IFO?EELSE?D
27 LCO,8:?"SP=";:IFO?TELSE?S
28 RTN
29 X=X*(X>0)+RND(11)
30 FORJ=1TO3:LCO,5:?"HP=";:IFO?IELSE?H
31 BEEP30,1:WAIT5:LCO,5:?"        ":WAIT5:NEXT
32 IFOI=I-XELSEH=H-X
33 LCO,5:?"HP=";:IFO?IELSE?H
34 RTN

ヒント

相手に与えるダメージ量は、自分の攻撃力・相手の守備力・お互いのすばやさで決まります。(乱数が若干足されます)
各パラメータは、以下の文字種から算出されます。

  • 体力:数字
  • 攻撃力:アルファベット小文字
  • 守備力:アルファベット大文字
  • すばやさ:記号

基本的にはその種類の文字数が多いほど数値が上がりますが、文字によっても変わります。また、すばやさ(記号)のみ文字数によらない計算をしています。
全体で最大10文字なので、その中でバランスを探ってください。