福野泰介の一日一創 - create every day

オープンソースプロジェクトで学ぶプログラミング、IchigoJam x ベーマガ編、ゲーム「イチゴトラブル」改造例

2018/09/21
#IchigoJam #KidsIT #game 

オープンソース文化の源流、ベーマガこと、マイコンBASICマガジン、最新号が届きました!
ゲームがしたい、打ち込む、遊ぶ、改造、遊ぶ、と、繰り返しているうちに自然と身についたプログラミング。
写経は歴史ある勉強法です!

おもしろそうなオープンソースプロジェクトを発見!
多量に囲んで高得点「イチゴトラブル by KF」(ベーマガ2018年11月号 / 電子工作マガジン内)

打ち込みます。BASICのみで書かれた、30行ちょっとのプログラム。
打ち込みながら、ここはどういう機能をしているのかな?と自然と想像できるようになっていきます。

できあがったら、SAVEして、F5でRUN!
Syntax error などが出がちなので、見比べて直します。
なんかゲームの様子がおかしいな?と思ったら、きっとどこか打ち間違いがあるので該当しそうなところを探してチェック!

オープンソースの醍醐味は、改造!
解説を頼りに、自分好みに変更しましょう。

囲んだときの点数が大きすぎる気がしたので、面積連動の変数Mを使わず、囲んだ数だけどんどん足すように変更。

270 IF(D>=A)*(D<=X)*(E<=Y)THEN [I*3]=0:LC D,E:?C;:S=S+C:B=B-1:C=C+1:WAIT15

めいいっぱい囲んだもの勝ちになってしまうので、囲んだらNGなキャラクター「猫」を登場させてみます。

10 CLV:CLS:A=7:N=16:L=3:B=N:X=15:Y=13 20 FOR I=0 TO N:LET[I*3],#ED-(I<L),RND(20)+6,RND(10)+5:NEXT 110 LC [I*3+1],[I*3+2]:?CHR$([I*3]);

猫の数は、Lで調整。全体のキャラの数Nの内、Lコが猫になります。LETコマンドを使って配列へのまとめて代入を使ってプログラムをコンパクト化!

猫を囲ってしまったら「CAT INSIDE」と表示して強制ゲームオーバー!

270 IF(D>=A)*(D<=X)*(E<=Y)THEN IF[I*3]=#EC ?"CAT INSIDE!":END ELSE [I*3]=0:LC D,E:?C;:S=S+C:B=B-1:C=C+1:WAIT15

スコアを100倍にインフレさせてみます。

130 LC 0,0:?S;"00" 300 LC 9,12:?"SCORE=";S;"00"

遊ぶ!

ゲームしている様子。

こどもから大人まで楽しめる簡単で楽しい電子工作も満載、復刻ベーマガ内蔵の電子工作マガジン、オススメです!

links
- 電子工作マガジン(オフィシャル)
- 電子工マガジン2018年11月号 ベーマガ付き! on Amazon

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像