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

1985年、ベーマガの発行元でもある、電波新聞社から発売されたゲーム「デーモンクリスタル」が、Nintendo Switchで復刻! 敵を倒し、謎を解き、アイテムでパワーアップしつつ、鍵を取り、次のフロアへ。現代のゲームシステムにも脈々と受け継がれています。

暗闇から探し出す感じをIchigoJamのゲームにしてみました。
音を頼りに、すばやく宝箱を探す「たからさがしゲーム」

プログラムはシンプルに短く!

10 X=15:Y=15:CLT 20 A=RND(32):B=RND(22) 30 CLS:LC X,Y:?CHR$(251) 40 K=INKEY():IF K=0 CONT 50 X=X-(K=28)+(K=29) 60 Y=Y-(K=30)+(K=31) 70 P=ABS(X-A)+ABS(Y-B)+1 80 BEEP P,3:IF P>1 GOTO 30 90 LC X,Y:?CHR$(246),TICK()

カーソル上下左右で移動、移動するたびに近いほどに高くなる音を頼りに探しましょう。
見つけたらタイムが1/60秒カウンターの値で表示されます。

100 PLAY"O4L32CEG"

このように、クリア時の音をつけると画面がなくても遊べます!

慣れてきたら上級編。ランダムに宝箱の位置が移ってしまうシカケ

65 IF RND(10)=0 GOTO20

2人で対戦できるように改造してみるとかもも、楽しいかも?

IchigoJam ver 1.3 beta 5、INPUT時、RENUM時のバグを修正したアップデート
IchigoJam 1.3b05.zip

links
- The Demon Crystal
- YMCAT(迎霧狼慢)さんのツイート: "【デーモンクリスタル秘話】
> - 1981年ベーマガ創刊号掲載のゲームがマルチプラットフォームで復刻! IchigoJam版エイリアンフィールド、改造の手引き

ベーマガ再創刊号と共に復活「エイリアンフィールド 3671/ Alien Field 3671
こちらのゲーム、1981年のベーマガ創刊号に掲載されたゲームの一つ。
ドットイート型のアクションゲーム。
対応環境は、PC-8001。


なんとPC-8001用のカセットテープ、X68000のエミュレーター用5インチフロッピー付き!
カセットのA面にはデータ、B面には音源が入っているそうだが、読み出し機器手に入れなきゃ。


ベーマガ創刊号に掲載された原作「エイリアンフィールド」は、
ベーマガ再創刊号にリニューアルして再掲載&豪華復刻版も同時発売!
エイリアンフィールド 3671/ Alien Field 3671
for Windows (STEAM) / PC-8001 (カセットテープ or 打ち込み) / IchigoJam (打ち込み)


こちらPC-8001用エイリアンフィールド。STEAMのWindowsアプリとして動く!


「これからマイコンをはじめよう・・・と考えているきみに・・・」
当時の広告、東芝EX-80A(参考、マイコンEX-80 たけのこのタイタン/ウェブリブログ
コンピューターにはロマンあり!


エイリアンフィールド for IchigoJam
4ファイル分使う大作、打ち込みました!原作のドキドキ感がいい感じ!

バグを2つ発見
- エイリアンにまとめて当たると残機が一気に減ったり、マイナスになって終わらない
- 2機目から初期パワーが0になってしまう

自分で直しちゃうのがベーマガ流!こちら修正プログラム例です

'file 3 400 IF P==0 THEN O=1:RETURN 410 IF A>0 C=C+100:A=A-1 'file 2 420 IF O==1 AND L==1 THEN LRUN 0,200 430 IF O==1 AND L<>1 THEN LC L,22:?" ":L=L-1:A=20:P=50:O=0:GOTO 810


リマスタリングされて豪華になったエイリアンフィールドで遊ぶと、効果音を付けたくなりました。

'file2 50 PLAY"L16<CR4CR4CR4G4":WAIT120 420 IF O==1 AND L==1 THEN PLAY"L8AFDC4":LRUN 0,200 430 IF O==1 AND L<>1 THEN LC L,22:?" ":L=L-1:A=20:P=50:O=0:PLAY"G16C8":WAIT60:GOTO 810 805 PLAY"L16<CRCEG8":WAIT60 'file3 30 IF S=43 C=C+10:BEEP4 40 IF S=246 P=P+100:PLAY"L32<CEG" 410 IF A>0 C=C+100:A=A-1:PLAY"L32CGA" 620 PLAY"L32<FECEF":RTN

ファイル2が容量不足になるので、200-250行の4方向しか移動できないキー操作をこのように節約!

200 X=BTN(29)-BTN(28):Y=0:IF!XY=BTN(31)-BTN(30)


こちら、プレイ動画

ステージが上がるごとに速くしたり、敵を増やしたり、強くしたり、点数増やしたりするのもおもしろそう。 目指せ、IchigoJam版、単独販売!


ベーマガ再創刊号のHSP版、GitHubに発見!
コロン区切りで、BASICに似た言語 HSP で動く、エイリアンフィールド!
作者さんによる、GitHubにあるよ情報元に、発見mizukami/alienfieldBM
Windowsなら、こちらとHSPとダウンロードし、すぐ動かせる!改造できる!


パッケージ版、裏話トークDVDも付いてます!
エイリアンフィールド 3671/ Alien Field 3671


家電のケンちゃん主催、どんなものにもサインするよ会、多数持ち込まれる懐かしいベーマガ!
小学校2020年からのプログラミング必修化、ベーマガ世代のこども世代が、ど真ん中!
世代を超えて盛り上げる、新世代ベーマガ伝説の幕開けです!

links
- 『ベーマガ』&『エイリアンフィールド』復刻! 大橋編集長×水上氏×市川氏インタビュー 前編 - IGCC
- 『ベーマガ』&『エイリアンフィールド』復刻記念!大橋編集長×水上氏×市川氏 特別インタビュー 中編 - IGCC
- 『ベーマガ』&『エイリアンフィールド』復刻記念! 大橋編集長×水上氏×市川氏 特別インタビュー 後編 - IGCC

MS、Adobeと共にオープンデータ推進を発表した、SAP社とHana道場コラボで、経営とデータを学ぶワークショップ「ERPsimセッション」鯖江で開催!

ERPとは、Enterprise Resources Planning(企業資源計画)の略。多様化・複雑化する社会、データを活かした素早い判断が重要。


講師・サポートは、遠路東京から駆けつけてくれたSAPジャパンのみなさん!


SAPはドイツ本社、グローバルで売上約3兆円、全従業員は1万人に迫る勢い。SAPジャパン社長は福田さん! 企業をいい感じにするソフトを提供する会社です。


会社にはいろんな役割があります。ゲームで一通りやってみるっていいですね!
シミュレーション=ゲーム=学習。


参加者全員ノートパソコンを使ってERPsimにログイン、市場価格や、売れ行きなどいろいろデータを見ながら発注したり、値段を決めたり、最終利益額を争うシミュレーション。


1日が1分で進むシミュレーション20分で1ラウンド、ラウンド終了ごとに成績発表して作戦会議し3ラウンド。優勝は学生団体withチーム! 優勝賞品は、ダブル鯖江ご当地IchigoJam「MeganeJam」セット!

状況把握に手間取り、良い成績が残せなかったものの、コンピューターを使ったシリアスボードゲーム的に楽しみました。 学生はもちろん、企業研修にも良さそうですね。

もっとシンプルに商売の基本を遊びで学ぶ、こどもERP GAMEをIchigoJamでつくってみました。
所持金100円でスタート。商品は1種類、1つ原価10円。
販売価格を決め、宣伝し、売上で再度仕入れて12ターン終了後の利益を競うシミュレーション。


12ターン終わって73円の利益、という成績でした。

ERP GAME on IchigoJam のプログラムはこちら

1 'ERP GAME 10 G=100:S=0:P=10:R=50:T=1:E=12 20 CLS:LC0,5:?"ERP GAME":?:?"TURN:";T;"/";E:? 30 ?"NEDAN:";P:?"ZAIKO:";S:?"MONEY:";G:? 40 ?"1:NEDUKE":?"2:SHIIRE":?"3:SENDEN":?"0:NEXT":INPUT N 50 IF N=1 INPUT"P YEN:",P:IF P>100 P=100 60 IF N=2 INPUT"GENKA 10YEN N:",M:IF M*10<=G G=G-M*10:S=S+M 70 IF N=3 INPUT"KOKOKU YEN:",M:IF M<=G R=R+M:G=G-M 80 IF N!=0 GOTO 20 90 A=(15-P)*R/50+RND(R/10) 100 IF A<0 A=0 ELSEIF A>S A=S 110 ?"SALES ";A:WAIT30:?"URIAGE ";A*P;"YEN":WAIT60 120 G=G+A*P:S=S-A 130 IF T<E T=T+1:GOTO 20 140 ?:?"RIEKI ";G-100;"YEN"

コアは、90行の売れる個数を決めるアルゴリズム。
価格Pと知名度Rでベースが決まり、知名度Rを上限にしたランダムで売れる数を決めています。

アルゴリズムから乱数を排除したり強めたり、推移をグラフ化したり、自動発注化したり、商品増やしたり、倉庫代を徴収したり、あれこれ改造して遊んだり、遊んでもらったりしてみましょう。

IchigoSodaを使ったり、スマホ対応して、みんなで遊べるゲームにしたり、1ターンをリアルな1日とし、毎日ちょこちょこ遊ぶゲームにするのも楽しそう。

SAPのみなさん、楽しい時間、ありがとうございました!!

links
- SAPのERPが凄かった。リアルタイム経営シミュレーション体感セミナー開催しました | きらきら星のつぶやき☆
- SAPのERPが凄かった②!体感型ビジネスコンペディション開催! | きらきら星のつぶやき☆

4Kや8K、映像の進化は画面解像度だけでなく、時間解像度も進化してました。
通常、秒間60回、60Hzで更新される画面、なんと4倍の240Hzにも達しています。(実験では480Hzも!)

レースゲームなど、動きが激しいアクションゲームでのフレームレートはとても大事。
処理が重たいゲームで30fps(frame per second、秒間更新回数)なものは、操作の遅れが最大33ミリ秒(1秒/30)発生し、見た目にもカクカクぎこちなく見えて幻滅です。

初代ファミコンも60fps(正確には59.97fps?)のなめらかなでクイックな反応が楽しい。ゲームによっては敵が多く出すぎて「処理落ち」と呼ばれるフレームレートの低下も当時でも、よく知られた現象でした。

そんな重要な要素、フレームレートが4倍にもなった世界、ゲームに限らず未来を感じます。ブラウザ上でも手軽に実験できそうなので、JS用かんたんゲームフレーム「sg-game.js」を作って、その実現の時を待つことにしました。

サンプルアプリ「FPSChecker」は、その環境でのリフレッシュレートを表示しながら、ぐるぐる色を自身の角度を色相としながら回る円、タップまたはクリックするほどに回転周波数が変わります。 10Hzにしたときに残像で見える円の数、通常の環境では6ですが、12コ、14コ、24コと増えるはず。(480Hz環境なら48コ!)


FPSChecker」(スクリーンショットは60fps環境を模したもの)

IO-DATA製24.5インチ240Hz対応モニター「KH2500V-ZX2」を買って試してみます!
(「EX-LDGC251UTB」と同じ仕様のパッケージ違い)

今回、新設した正方形ゲーム用シンプルフレームワーク「sg-game.js」、ゲームづくりに、JavaScript言語によるプログラミング学習に、活用ください。


こちら、最小サンプル「min.html」をコピペし、min.htmlとして保存、ブラウザで開けば動きます!
PC、iPhone、iPad、Android、いずれもOK!

<!DOCTYPE html><html><head><meta charset="utf-8"/> <title>min</title> <script src="https://taisukef.github.io/sq-game/sq-game-r1.js"></script> <script>"use strict"; var gamemain = function(game) { game.loop = function(g, ts, dt, vw) { g.setColor(255, 0, 0); g.fillCircle(500, 500, ts % 1000); }; }; </script> </head></html>

正方形ゲーム専用フレームワーク sq-game.js の使い方
- gamemain メソッドをつくる
- 受け取った、game オブジェクトに 描画用ループ loop メソッドを設定する
- g は canvas、ts は時間、dt は時間差分、vw はバーチャル幅と高さ1000
- 必要なら、タップされた時の操作用に tap メソッドを設定する

こちらが、sg-game.js を使った、上記、FPSCheckerのプログラム!

<!DOCTYPE html><html><head><meta charset='utf-8'/> <title>FPSChecker</title> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta property="og:image" content="ss.png"/> <link rel="apple-touch-icon" href="icon.png"/> <script src="sq-game-r1.js"></script> <script>'use strict'; var gamemain = function(game) { game.tap = function() { if (hz == 10) hz = 0.1; else if (hz < 0.95) hz += 0.1; else hz++; }; var hz = 1; var th = 0; game.loop = function(g, ts, dt, vw) { g.setColor(0, 0, 0); var fh = 60; g.setFontSize(fh); var s = "" + fixfloat(hz + 0.05, 1) + "Hz"; g.fillText(s, 10, 10 + fh); var s = "FPS: " + Math.floor(1000 / dt) + " / " + fixfloat(dt, 2) + "ms"; g.fillText(s, vw - g.measureText(s).width - 20, 10 + fh); th += dt / 1000 * Math.PI * 2 * hz; var r = vw / 4; var x = vw / 2 + Math.cos(th) * r; var y = vw / 2 + Math.sin(th) * r; var cr = 90; var rgb = hsv2rgb(th / (Math.PI * 2) * 360 + 90, 0.8, 0.8); g.setColor(rgb[0], rgb[1], rgb[2]); g.fillCircle(x, y, cr); g.setColor(255, 255, 255); var fh = 80; g.setFontSize(fh); var s = "" + fixfloat(hz, 1); g.fillText(s, x - g.measureText(s).width / 2, y + fh / 4); }; }; </script> <style> a { color: gray !important; } </style> </head> <body> <div id="src"> FPSChecker<br> APP: CC BY <a href=http://fukuno.jig.jp/1686 target=_blank>fukuno.jig.jp</a><br> LIB: CC BY <a href=sq-game-r1.js target=_blank>sq-game.js</a><br> </div> </body> </html>

ちなみに、映画のフレームレートは秒間24コマ、CGはきれいになってもなかなか変わりませんね。
8Kで秒間240コマの映画とか、未知の体験も楽しみです。

国民の健康は、富の源泉。スポーツ推進事業、国体。平成最後の国体が、今週末福井で開会式!
・・・といっても、すでにいろいろと競技が始まっている不思議。
ハンドボール会場への永平寺シャトルバスでもオープンデータとIoTが活躍!


福井国体 ゲーム会場マップ
福井国体障スポの全競技会場(福井県提供のオープンデータによる)をマッピング!
せっかくの機会、お近くの競技会場をチェックするのもいいかもですね!


しあわせ元気 お役立ち情報アプリ / 福井国体障スポ」もあわせてどうぞ!


鯖江駅に設置された福井高専学生開発のカウントダウン、いよいよあと1日(9/28朝)


福井県内各地でいろんな「はぴりゅうくん」を見ます(こちら鯖江駅前)


鯖江といえば、メガネ、つつじ、レッサーパンダ!
つつじは咲いていませんが、レッサーパンダがかわいい西山公園と、鯖江のメガネが数千本!めがね会館はオススメです!

links
- 2018「福井しあわせ元気」国体・障スポ
- 福井県オープンデータ(福井国体関係含む、その他)
- 国体と障害者スポーツの初融合!福井国体・障スポ やわらか競技一覧アプリ

オープンソース文化の源流、ベーマガこと、マイコン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

人気ゲームのひとつ、迷路。
意外と単純なアルゴリズム(考え方)で作れるので、ベースを作っていろいろ改造してみましょう。
元ネタ「『ゲームは自分で作るんだ!』MSX検定第2弾BASICプログラム編:MSX30周年 - 週刊アスキー

ゴールまでの道筋が見えてしまわないように、歩いたところだけが見えるようにします。
真っ白のキャラクターは、キャラクターコード1の他に、143があるので歩いていない道として使います。

10 CLS:W=29:H=21:L=143 20 FORI=0TOW+1:LCI,0:?CHR$(1,28,31,L);:LCI,H+1:?CHR$(1);:NEXT:FORI=1TOH:LC0,I:?CHR$(1,L);:LCW+1,I:?CHR$(1);:NEXT 30 FORI=2TOWSTEP2:FORJ=2TOHSTEP2:LCI,J:?CHR$(1,L,28,28,31,L,L);:D=RND(4):LCI+(D=0)-(D=2),J+(D=1)-(D=3):?CHR$(1);:NEXT:NEXT

10行 準備
20行 枠描画
30行 迷路描画(棒倒し法)
W,H: 迷路の大きさ(右端ゴールの位置)
L: 歩いていない道のキャラクターコード(L=2とすると動作がよくわかります)


カーソルキーで歩いて、ゴールまでたどり着くまでくりかえし!

40 X=1:Y=1:LCW,H:?CHR$(246) 50 LCX,Y:?"o";:IFX=W&&Y=HEND 70 K=INKEY():IF!KCONTELSEA=X-(K=28)+(K=29):B=Y-(K=30)+(K=31):IFSCR(A,B)!=1?CHR$(28,0);:X=A:Y=B 80 GOTO50

以上で迷路ゲームのできあがり、合計426byte!意外とシンプルにできたので、いろいろ拡張できますね!


10行、W=11:H=11 とすると迷路生成が速くなっていろいろ改造に便利!

最小の迷路(?)は、W=5:H=5 です。

乱数列を初期化する SRNDコマンド を使うと、毎回同じ迷路が出せます。

15 SRND 1

ステージ番号を入力するようにすれば、友達と競争できますね!

15 INPUT"STAGE?",N:SRND N

タイムを計測したくなったら、CLT/TICK()を使いましょう。

45 CLT 50 LCX,Y:?"o";:IFX=W&&Y=H ?TICK():END

IchigoSoda(+IoTファームβ)を使えば、ネットから出題されるステージに対して、ハイスコアランキングも簡単!

15 N=IoT.IN():IF N=0 CONT ELSE SRND N 50 LCX,Y:?"o";:IFX=W&&Y=H N=TICK():IoT.OUT N:END

小学生の頃、好きだったMSXの投稿ゲーム「Monochrome Venus by TEIJIRO」(レビュー)のように敵を登場させて、RPG風に仕上げるのもきっと楽しいですよ。

古典ゲームとIoT、ネット対戦、モーター・センサーとの組み合わせ、新しい展開見えるかも!?

ギネスにも載ってる世界一有名な裏コマンド「上上下下左右左右BA」こと、コナミコマンド(英、Konami Code

IchigoJamでの人気ゲーム「かわくだりゲーム」にも実装してみました。

12行で裏コマンドを準備し、39行で判定!

ひとつでも間違ったら、PをUにして最初から。上下左右の絵文字のコードを196引けばキーコード。 終わり判定はダブルクォートのコード、34かどうかとしているので、自在にオリジナルコマンドを設定して遊べます。 Pを0にしなければ、何度でも使えるようになりますよ。

時々、1段余計にスクロールする問題の対処方法
原因は LC RND(32),23 で画面右下で表示すると強制スクロールしてしまうこと。RND(31)として右端を使わないようにして、38行で X=(X+31)%31 と端判定を変更します。

スペースでも当たってしまう問題の対処方法
40行の当たり判定に &31 といれることで、スペースのキーコード32など32の倍数の場合でも0と判定するようにします。%32と32で割ったあまりを使ってもOK。

ネコ多すぎ問題の対処方法
ネコの隊列でかわをくだる、かわくだりゲーム。ネコを1匹にしたい場合は、WAITの後で、描いたネコを消す処理を追加しましょう(36行 LC X,4:?" ")

おまけ、簡単お手軽「ボム」追加法
スペースキーを押したらボム

34 IF BTN(32) CLS

アプリづくりの基本が詰まった「かわくだりゲーム」!
改造して遊ぶほどにいろいろ身につきますよ!
困ったときは、辞書「IchigoJam BASICリファレンス」に立ち返ろう。

Wikipediaのコナミコマンドで発見、カナダ建国150周年を記念する、カナダの中央銀行「カナダ銀行」の特設サイト「Explore the New $10 Note - Bank of Canada」でも使えることに驚き!

毎週月曜日深夜24時放送「Innovative Tomorrow
次週は、ITインフラのイノベーター、さくらインターネット、田中邦裕さん!(舞鶴高専出身)

先日収録した、プログラミングミニコーナーもある模様


楽しみです。

大雪、一晩で30cm以上積もると除雪しないと車も動かせない。
雪は簡単に解けてなくなるわけではないので、どける場所が必要。
除雪は戦略が大事です。

除雪から着想得たパズルゲーム「除雪番 / JOSETSUBAN」。
大掃除をテーマにした「掃除番」に続くオリジナルパズル第二弾。


除雪番 on IchigoJam web

除雪番(JOSETSUBAN)のルール

1. ゴールにたどり着けばクリアです
2. 雪は1つだけ押すことができます
3. 動かす先に雪の積む余地があれば詰めます(最大4段)

除雪番 for IchigoJam 操作説明

上下左右キーで動きます
スペースキーでリトライします

' JOSETSUBAN 10 VIDEO3:S=1:LET[0],1,0,4,3,3,4,4,3,1,0,4,2,2,4,4,2,3,4,3,3 20 CLS:T=S*4-4:SRND[T]:FORI=1TO62:LC1+I%8,2+I/8:?CHR$([T+1+RND(3)]):NEXT:LC1,0:?"STAGE:";S;"-";[T] 30 X=1:Y=2:D=0:LC8,9:?CHR$(11) 40 LCX,Y:?CHR$(253-D*2) 50 IFBTN(32)GOTO20 60 A=BTN(29)*(X<8)-BTN(28)*(X>1):B=BTN(31)*(Y<9)-BTN(30)*(Y>2):D=D-BTN(28)*D+BTN(29)*!D 70 IF!A&&!B:GOTO50 80 IFX+A=8&&Y+B=9:LC2,11:?"GOAL!";:WAIT60:S=S+1:IFS=6ENDELSEGOTO20 90 N=SCR(X+A,Y+B):IF!N:GOTO120 100 LCX+A*2,Y+B*2:M=SCR():IFM=11GOTO40ELSEIF!MM=NELSEM=M+N-5:IFM<1GOTO40 110 ?CHR$(M) 120 LCX,Y:?CHR$(0):X=X+A:Y=Y+B:GOTO40

10行の配列がステージデータです。1ステージ配列の要素を4つ使い、最初がランダムの初期化値(SRND)、後3つがランダムにステージにおく雪種。
ちゃんとステージを考えてつくると、おもしろいパズルゲームとなるはず!

スペースを置く毎にステージを生成するには次のように改造してください

50 IFBTN(32):[T]=[T]+1:GOTO20

タイトル画面もつけたい場合は次の行を追加!

25 LC10,4:?"JOSE":LC10,5:?"TSUBAN"

除雪が落ち着いたら、雪で埋まった消火栓、掘り返しておきましょう。
高校生、宝探しのようでおもしろかったとのこと!
プログラミングには、不便を楽しみに変える力もあります。

links
- 倉庫番 - 1982年生まれの名作、押しモノゲーム!
- 掃除番 - 2015年大掃除をテーマに作成
- 平成30年2月大雪に関する情報 | 福井県ホームページ

Maker Faire Bay Area 2017、お向かいで展示していたかわいいゲーム機、Pokittoが到着!
I got a cute game machine Pokitto exhibited our other side at Maker Faire Bay Area 2017.

IchigoJamのかわくだりゲームを移植してみました。
I translated the KAWAKUDARI (rafting) GAME program from IchigoJam.


It's nice work with game controller - 10字キーの操作感がいい感じ!

main program of KAWAKUDARI GAME on POKITTO - かわくだりゲームPokitto版

int main() { pkt.begin(); pkt.display.setColor(1); cls(); int x = 12; while (pkt.isRunning()) { if (pkt.update()) { if (scr(x, 5)) { wait(1); x = 12; cls(); } if (pkt.buttons.rightBtn()) { x++; } else if (pkt.buttons.leftBtn()) { x--; } lc(x, 5); print(CHAR_ME); lc(random(sw), sh - 1); print(CHAR_ENEMY); scrollUp(); draw(); } } }

for Mbed LPC11U68 using PokittoLib (tutorial and API)


It's works! - 動きました!


Just pressing C button to load and run your program if you put your bin file to the micro SD card. マイクロSDカードにbinファイルを入れておけば、起動後にスタートボタン的場所にあるCボタンを押してローダーから起動可能!


Cute document! - 付属のドキュメントもかわいい!
My favorite game 'CRABATOR' - お気に入りのミニRPG


How cute this PCB is! - なんとかわいいプリント基板!


Arm Cortex-M0+ / LPC11U68 RAM36KB ROM256KB!

all program of KAWAKUDARI GAME on POKITTO for Mbed - かわくだりゲームPokitto版

#include "Pokitto.h" Pokitto::Core pkt; const int sw = 27; const int sh = 24; uint8_t buf[sw * sh]; void cls() { for (int i = 0; i < sw * sh; i++) buf[i] = 0; } int lx, ly; void lc(int x, int y) { lx = x; ly = y; } void print(char c) { buf[lx + ly * sw] = c; } void scrollUp() { for (int i = sw; i < sw * sh; i++) buf[i - sw] = buf[i]; for (int i = sw * sh - sw; i < sw * sh; i++) buf[i] = 0; } void draw() { for (int i = 0; i < sw * sh; i++) { int x = i % sw; int y = i / sw; pkt.display.bufferChar(x * 8 + 4, y * 8, (char)buf[i]); } } int scr(int x, int y) { return buf[x + y * sw]; } #define CHAR_ME 32 #define CHAR_ENEMY 10 int main() { pkt.begin(); pkt.display.setColor(1); cls(); int x = 12; while (pkt.isRunning()) { if (pkt.update()) { if (scr(x, 5)) { wait(1); x = 12; cls(); } if (pkt.buttons.rightBtn()) { x++; } else if (pkt.buttons.leftBtn()) { x--; } lc(x, 5); print(CHAR_ME); lc(random(sw), sh - 1); print(CHAR_ENEMY); scrollUp(); draw(); } } }

links
- POKITTO
- Pokitto - easy-to-learn and program Gaming Gadget! by Daniel deBeer — Kickstarter
- 十字キー+ABボタンでゲームを自作——ARMマイコン搭載ゲームコンソール「Pokitto」 | fabcross
- IchigoJam - BEST IN CLASS at Maker Faire Bay Area 2017 / メイカーフェアで教育優秀賞受賞!

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