AIはスキーとスノボも区別できていないようです(^_^;)
スキー板を履かせてストックを持たせるのに苦労しました。
AIはスキーとスノボも区別できていないようです(^_^;)
スキー板を履かせてストックを持たせるのに苦労しました。
★この記事は「IchigoJam Advent Calendar 2024」に参加しています。
サッカーのPK戦が遊べる、IchigoJam用の拡張ボードです。
以前作ったボードを改良しました。
紹介動画はこちら。
IchigoJamのOUT1~4出力から7セグメントデコーダーIC・4511を介してゴール数を表示、OUT5・6出力で左右のゴールキーパーを表示、LED出力(WS.LEDコマンド)で左右のシュートコースをフルカラーLED×6個で表示します。
ジョイスティックの左右入力はIN2(ANA2)で読み取ります。上下入力は配線していないので使えません。
動かし方はプログラム次第です。「OUT0」~「OUT9」で0~9の数字を表示できるので、数字表示機能だけ使っても良いでしょう。
*同じ基板を2枚並べて配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2024 Shiro Saito (https://www.ichigojaman.jp)
以下の順番ではんだ付けすると作りやすいです。
ファイル0に保存(SAVE0)して電源ONで自動起動させると、キーボードやモニタ無しでも遊べます。
10 @ARUN:'*PK 2024 20 CLV:CLP 30 @START 40 BEEP 10,30 50 WAIT 30 60 OUT G 70 D=0 80 FOR L=0 TO 15:[L]=0:NEXT 90 WS.LED 6 100 @IND 110 D=(ANA(2)-512)/256 120 IF D=0 GOTO @IND 130 D=(D+1)/2 140 BEEP 150 [D*9]=50 160 WS.LED 6 170 WAIT 10 180 FOR E=0 TO 3 STEP 3 190 [E+D*9]=0 200 WS.LED 6 210 [E+3+D*9]=50 220 WS.LED 6 230 WAIT 10 240 NEXT 250 SRND TICK() 260 R=RND(2) 270 OUT 5+R,1 280 WAIT 30 290 IF D!=R G=G+1:GOTO @START 300 BEEP 30,60 310 WAIT 60 320 IF !BTN() CONT 330 RUN
★この記事は「IchigoJam Advent Calendar 2024」に参加しています。
https://qiita.com/advent-calendar/2024/ichigojam
先日公開した横スクロールシューティングゲームを改造。
プログラム2本に分割して、通常ステージとボスステージを設けてグラディウス風に。懐かしいな~。
紹介動画はこちら。
プログラムは2分割です。どちらも1Kバイトぎりぎり。
0番と1番など、連続したSAVEファイル2個に置いて、ファイル0から実行してください。
IchigoJam Sでは遅いのでお勧めしません(^_^;)
1 CLV:Z=FILE():Y=12 2 [0]=0:COPY#801,#800,203:M=0:CLS:?S 3 GSB9:FORE=15TO31STEP4:FORB=0TO6STEP3:IF[B]GSB13 4 NEXT:WAIT1:B=(E-15)/8*3:IF![B]&&BTN(32)GSB12 5 IF[E]GSB16 ELSEIFRND(20)=1GSB15 6 NEXT:COPY#BE0,#BE1,30:LC30,23:?CHR$(RND(4)+140);:IFS%20=10LRUNZ+1 7 IF!MGOTO3 8 BEEP30,30:LCX,Y:?"*";:LC11,11:?"GAME OVER":CLK:END 9 U=X-BTN(28)*(X>0)+BTN(29)*(X<30):V=Y-BTN(30)*(Y>1)+BTN(31)*(Y<22) 10 LCX,Y:?" ":X=U:Y=V:IFSCR(X,Y)>139M=1:RTN 11 LCX,Y:?CHR$(243):RTN 12 [B]=1:[B+1]=X+1:[B+2]=Y:LC[B+1],[B+2]:?"-":RTN 13 C=[B+1]:D=[B+2]:LCC,D:?" ":C=C+1:[B+1]=C:IFC>30[B]=0:RTN 14 LCC,D:?"-":J=B:FORI=15TO31STEP4:GSB20:NEXT:RTN 15 [E]=1:[E+1]=30:[E+2]=RND(22)+1:[E+3]=RND(2)*2-1:LC[E+1],[E+2]:?CHR$(237):RTN 16 F=[E+1]:G=[E+2]:LCF,G:?" ":F=F-1:IFF<0[E]=0:RTN 17 G=G+[E+3]:IFG<1ORG>22[E+3]=-[E+3]:CONT 18 [E+1]=F:[E+2]=G:IFX=F&&Y=GM=1:RTN 19 LCF,G:?CHR$(237):I=E:FORJ=0TO6STEP3:GSB20:NEXT:RTN 20 K=0:IF[I]&&[J]&&[I+1]=[J+1]&&[I+2]=[J+2]K=I:L=J 21 IF!KRTNELSE[K]=0:[L]=0:BEEP:S=S+1:LC0:?S:LC[K+1],[K+2]:?" ":RTN
1 CLS:?S:[0]=0:COPY#801,#800,203:P=28:T=0:W=9 2 GSB8:FORE=15TO31STEP4:FORB=0TO6STEP3:IF[B]GSB13 3 NEXT:WAIT1:B=(E-15)/8*3:IF![B]&&BTN(32)GSB12 4 IF[E]GSB17ELSEIFRND(20)=1GSB16 5 GSB20:NEXT:IFM=-1BEEP10,30:WAIT60:LRUNZ,2 6 IF!MGOTO2 7 BEEP30,30:LCX,Y:?"*";:LC11,11:?"GAME OVER":CLK:END 8 U=X-BTN(28)*(X>0)+BTN(29)*(X<30):V=Y-BTN(30)*(Y>1)+BTN(31)*(Y<22) 9 H=SCR(X,Y):IFH=61||(H>127&&H!=243)M=1:RTN 10 H=SCR(U,V):IFH=61||(H>127&&H!=243)M=1:RTN 11 LCX,Y:?" ":LCU,V:?CHR$(243):X=U:Y=V:RTN 12 [B]=1:[B+1]=X+1:[B+2]=Y:LC[B+1],[B+2]:?"-":RTN 13 C=[B+1]:D=[B+2]:LCC,D:?" ":C=C+1:H=SCR(C,D):IFH=255GSB22 14 [B+1]=C:IFC>30||H>32[B]=0:RTN 15 LCC,D:?"-":RTN 16 [E]=1:[E+1]=28:[E+2]=Q+1:LC[E+1],[E+2]:?"=":RTN 17 F=[E+1]:G=[E+2]:LCF,G:?" ":F=F-1:IFF<0[E]=0:RTN 18 [E+1]=F:IFX=F&&Y=GM=1:RTN 19 LCF,G:?"=":RTN 20 FORR=0TO2:LCP,Q+R:?" ":NEXT:T=T+2:Q=10+SIN(T)/24 21 LCP,Q:?CHR$(140,140,159):LCP,Q+1:?CHR$(0,255);W:LCP,Q+2:?CHR$(131,131,157):RTN 22 BEEP:[B]=0:S=S+1:LC0:?S:W=W-1:IFW<0M=-1 23 RTN
プログラム2分割ですが、データを引き継いでいるだけでほぼ別のゲームです。
かつてのグラディウスのプログラムもこんな作り方だったのかな…?