先日作った「旗上げゲーム」
www.ichigojaman.jp
を発展させて、自作の旗コントローラーでプレイしてみました。
動画はこちら。
www.youtube.com
赤・白の旗は、最初は工事用品で探したのですが見つからず、結局スポーツ審判用(柔道・剣道など)の旗を使いました。
まず、チルトスイッチに単芯線2本をはんだ付け。
チャタリング防止に0.1μFのセラミックコンデンサを並列に入れました。(無くてもいいかも?)
スイッチにビニールテープを巻いて旗の柄に固定。
中の仕組みが見える方が面白いと思って透明ビニールテープにしましたが、色が着いたビニールテープで隠す手もあると思います。
IchigoJamに音声ボード「Ichigo-ice」(イチゴボイス、北の電子工房製)を装着。
旗コントローラーからの線は、白旗をIN1・GNDに、赤旗をIN4・GNDに接続します。
割と簡単な工作と配線なので、子ども向け工作・プログラミング教室のネタとしても面白そうです。
(プログラムはもっとシンプルにした方がいいかもしれませんが)
プログラム
実行するとすぐにゲームが始まります。指示されたとおりに赤・白の旗を上げ下げしてください。
間違えると「アウト!」と表示されてゲームオーバーになります。IchigoJamのボタンを押すとリプレイします。
1kバイト目一杯なので、スペースを詰めた見づらいリストになっています。
1 @ARUN:'*HataAge 2 CLV:VIDEO3:CLS:W=120 3 POKE#7F0,#FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF 4 POKE#7F8,#FF,#AB,#D5,#AB,#D5,#AB,#D5,#FF 5 LET[0],"シロ","アカ" 6 LET[10],"サゲテ","アゲナイデ","アゲテ","サゲナイデ" 7 LET[20],"si'ro/","a'ka/" 8 LET[30],"sa'gete,","agena'ide,","agete,","sage'naide," 9 LC7,9:?CHR$(79,31,28,1,31,28,65); 10 GSB28:GSB30:WAITW 11 LC0:?S:LC3,5 12 H=RND(2):?STR$([H]);" "; 13 D=[H+20]:E=LEN(D):COPY#700,D,E:F=E 14 U=RND(2):V=10+U*2+RND(2):?STR$([V]);" " 15 D=[V+20]:E=LEN(D):COPY#700+F,D,E:F=F+E 16 I=I2CW(46,#700,F)&I2CW(46,13) 17 IFHB=UELSEA=U 18 CLT 19 J=IN(1):K=IN(4) 20 L=!J:R=!K 21 IFLGSB29 ELSEGSB28 22 IFRGSB31 ELSEGSB30 23 IFTICK()<WGOTO19 24 IFA=L&&B=RS=S+1:GOTO11 25 G="a'uto-.":I=I2CW(46,G,LEN(G))&I2CW(46,13) 26 LC16:?"アウト!" 27 IFBTN()RUNELSECONT 28 LC5,8:?CHR$(0,31,0,31,28,28,254,25);:RTN 29 LC5,8:?CHR$(254,31,26,31,28,28,0,0);:RTN 30 LC9,8:?CHR$(0,31,28,28,0,31,28,26,255);:RTN 31 LC9,8:?CHR$(255,31,28,28,25,31,28,0,0);:RTN
動画を見てもわかるのですが、難易度がちょっと低めです。
慣れてきたら、2行目の「W=120」を小さくして、制限時間を短くしてください。