【POKEでキャラ作成】みんなでワイワイ『視力検査ゲーム』 for IchigoJam / めがねのまち 鯖江
目の健康にも力を入れて発信しています。
IchigoJamでも視力検査ゲームをつくってみました。
みんなでワイワイ測りましょう!
【プログラム】
5 CLV:CLP:V=7
6 COPY 233*8,232*8,8*4
10 POKE 232*8,0
11 POKE 233*8+7,0
12 POKE 234*8+2,67,1,1,67
13 POKE 235*8+2,194,128,128,194
20 CLS:VIDEO V
30 C=232+RND(4)
40 Z=2*(V=1)+4*(V=3)+8*(V=5)+16*(V=7)
50 X=31/Z:Y=23/Z
60 LC X,Y:?CHR$(C)
70 K=INKEY():IF K=0 WAIT10:CONT
80 IF K=10&&V>1 V=V-2:M=0
90 IF M=2 VIDEO3:?"シリョク:";S:END
100 IF K=8 M=M+1:GOTO20
110 S=S+1
120 GOTO20
<遊び方>
2人でプレイヤー側と審判側に分かれて遊びます。
審判は、表示された方向とプレイヤーの言った方向が合っていればEnter、間違っていればBackSpaceを押します。
3回連続で間違うとゲームオーバー。スコア(視力)が表示されます。
<解説>
V:画面サイズ C:方向を示す文字のコード
Z:表示する位置を画面サイズによって調整する
X:方向を示す文字のヨコ座標 Y:方向を示す文字のタテ座標
M:ミスした回数 S:スコア(視力)
20 CLS:VIDEO V VIDEO7からスタート
30 C=232+RND(4) ランダムに↑↓←→方向の文字コードを決定
40 Z=2*(V=1)+4*(V=3)+8*(V=5)+16*(V=7) 画面サイズによって中心の座標を補正
50 X=31/Z:Y=23/Z 方向文字の位置の決定
60 LC X,Y:?CHR$(C) 方向文字の表示
70 K=INKEY():IF K=0 WAIT10:CONT 何かキーを押すまで同じ行繰り返し
80 IF K=10&&V>1 V=V-2:M=0 Enterキーを押すと、画面サイズが半分になる
90 IF M=2 VIDEO3:?"シリョク:";S:END 同じ大きさで3回ミスをすると終了
100 IF K=8 M=M+1:GOTO20 BackSpaceキーを押すとミスカウントを増やし、同じ大きさで再表示
110 S=S+1 スコア増加
120 GOTO20
<補足>
6行目で文字コード232(○)を3つコピーして用意します。
1文字あたり8つのアドレスで構成されているので、8*3の32個分にコピーします。
10〜13行目でコピーした○文字を、↑↓←→方向に穴を空けていきます。
例えば、10行目だと○文字の一番上の部分(アドレス:232*8)を0に書き換えることで、○の上方向に穴の開いた文字になります。
※文字コード224〜255の文字はPCGといって、POKEで書き換え可能な文字です。
【文字コード232の初期状態】
POKE 232*8,0 を実行すると
↑方向の文字ができました!
?CHR$(232) を実行して書き換わっているか確認しましょう。
あとは同じように、
11行目で↓(233番)、12行目で←(234番)、13行目で→(235番)の方向文字を作成しています!
<改造方法>
さらに4つの方向文字、右上、左上、右下、左下を追加していきます。
下のプログラムを追加すればOKです。
6 COPY 233*8,232*8,8*7
14 POKE 236*8+1,96,193
15 POKE 237*8+1,6,131
16 POKE 238*8+5,193,96
17 POKE 239*8+5,131,6
30 C=232+RND(8)
6 COPY 233*8,232*8,8*7 ○の文字を7個分コピー
14 POKE 236*8+1,96,193 右上 方向の文字作成
15 POKE 237*8+1,6,131 左上 方向の文字作成
16 POKE 238*8+5,193,96 右下 方向の文字作成
17 POKE 239*8+5,131,6 左下 方向の文字作成
30 C=232+RND(8) 8つの方向からランダムに1つ決定
合計で8個の文字(232〜239番)をつくりましたね。
前方向ということで○をそのまま使うのもありかも?w
これを期にPOKEによるキャラクターづくりをマスターしましょう!
CC BY shoichi1031da / @shoichi1031da