2020-05-18
すっかり手軽になった基板発注、無料の基板CADソフトを使った両面基板づくりは小中学生でもチャレンジできます! そんな両面基板のエッセンスを使ったステキなゲームを発見!


配線が多くなると、表と裏の二層を使い分けて目的の箇所をつないでいく感じは確かにゲームに通じるものがありますね。

おもしろそうだったので、さくっと形にしてみましょう! IchigoJam編!

RUN on IchigoJam web

ざっくり解説する作り方。ひとまずおなじみ普通のヘビゲームを作ります。

1 'SINGLE-SIDED-HEBI 10 CLS:X=15:Y=5:A=-1:B=0:S=0:H=ASC("♥"):M=ASC("⚪"):GSB200 20 K=INKEY() 30 IF K>27 && K<32 A=(K=29)-(K=28):B=(K=31)-(K=30) 40 X=X+A:Y=Y+B 41 P=SCR(X,Y):IF P=H S=S+1:GSB200:P=0 42 IF P || X<0 || Y<0 || X>31 || Y>22 GOTO400 45 LC X,Y:?CHR$(M); 46 WAIT 5 50 GOTO 20 200 C=RND(32):D=RND(23):IF SCR(C,D) CONT ELSE LC C,D:?CHR$(H); 205 LC 0,23:?"SCORE:";S;:RTN 400 LC 10,10:?" GAME OVER ":WAIT60:CLK:FORI=0TO1:I=INKEY():NEXT:RUN

10 準備
20-50 メインループ(42 何か当たるか画面外で終了)
200-205 エサ表示サブルーチン
400 ゲームオーバー、リトライ処理

INKEY()でキー入力を受け付けて、向いている方向(A,B)にずっと動き続けるのがヘビゲーのおもしろさですね。

(RUN on IchigoJam web)

続いて、二層構造にしてみましょう。

1 'DOUBLE-SIDED-HEBI 10 CLS:X=15:Y=5:A=-1:B=0:S=0:F=0:H=ASC("♥"):M=ASC("⚪"):GSB200:GSB300 20 K=INKEY() 25 IF K=32 F=!F 30 IF K>27 && K<32 A=(K=29)-(K=28):B=(K=31)-(K=30) 40 X=X+A:Y=Y+B 41 P=SCR(X,Y):IF P=H || P=H+1 IF F=S&1 S=S+1:GSB200:P=0 ELSE GOTO400 42 IF P=F+M || P=M-1 || X<0 || Y<0 || X>31 || Y>22 GOTO400 45 LC X,Y:IF P=0 ?CHR$(M+F); ELSE ?CHR$(M-1); 46 WAIT 5 50 GOTO 20 200 C=RND(32):D=RND(23):IF SCR(C,D) CONT ELSE LC C,D:?CHR$(H+S&1); 205 LC 0,23:?"SCORE:";S;:RTN 300 C=M:GSB310:COPYC*8-8,C*8,8:C=H:GSB310:RTN 310 FORI=0TO7:POKEC*8+8+I,PEEK(C*8+I)&PEEK(24+I):NEXT:RTN 400 LC 10,10:?" GAME OVER ":WAIT60:CLK:FORI=0TO1:I=INKEY():NEXT:RUN

300-310 裏面用の網掛けした絵文字を作成するサブルーチン(追加)
25 スペースキーで裏表切り替え
41 エサは正しい面で取らないとゲームオーバーとしました
200 エサが出現する面は表と裏、交互にします

IchigoJam絵文字の白丸をキャラクターコード3の網掛け模様とビット論理積をとって合成する技! 45行で裏面表面、両方通っているところは一見わかりませんが、通れないようにしているところがポイントです。

両面基板の表裏を切り替える感を加えます。

500 C=H:GSB510:C=M:GSB510:RTN 510 T=224:COPYT*8,C*8,8:COPYC*8,C*8+8,8:COPYC*8+8,T*8,8:RTN 25 IF K=32 F=!F:GSB500

500-510 表パターンと裏パターンを交換するサブルーチン
25 スペースで切り替える時に呼び出すように追記

なかなか楽しいゲームになりました!
ワクをつけたり、ヘビの長さを制限したり、好みに合わせていろいろ改造するのが上達の近道!


ハイスコア、18点!

links
- こどもパソコン IchigoJam
- IchigoJam BASIC on the web by WebAssembly

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS