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

スマホを振るさいころ SmartDice - GitHubとWebアプリ(JavaScript)はじめのいっぽ

2016/08/31 23:55:00
#game #js 

オープンデータ勉強会では、GitHubからGoogleマップAPIとSPARQLを使うまで一気にやりました。
GitHubではじめるWebアプリづくり「GitHub & マップアプリハンズオン」と4アイデア - 福井県オープンデータ勉強会

手軽で便利だったGitHubのみを、JavaScriptでつくる簡単なさいころWebアプリの改造に絞って再構築しました。
高専のクラブ活動などでのプログラミングはじめとしてもおすすめです!


GitHub&Webアプリ(JavaScript)はじめのいっぽ

SmartDiceはスマホで振るさいころ、加速度センサーを使って1.5G以上かかるとくるくると目が変わります。

どのようにスマートにするかは作り手次第!どんどん改造してみましょう!

楽しすぎたケイドロ、IchigoJamでゲーム化!小次郎の里でインターンBBQ

2016/08/28 23:55:00
#game #IchigoJam #kosen #intern 

IoT Hackathonの打ち上げ兼社員交流で、BBQ。
今年の会場は小次郎の里。心配だった雨もほぼ降らず。炎天下ではないので遊ぶにはベスト!

ここで、27年ぶりのケイドロ、楽しすぎた。


BBQも佳境に入ると、おもしろいことになる。焼き鳥&焼きおにぎり祭。


剣豪、佐々木小次郎が必殺技「燕返し」を編み出したとされる場所、一乗滝へプチ遠足。


滝の水は冷たく美しい!


パワーアップしていたさいころコレクション。提供、さいころ部


帰途、さすが元気な18歳!と思ったら、バスでは爆睡だった様子
インターンブログ「←BBQ楽しんできた勢→ - jigintern2016’s diary」


ひさびさのケイドロ、体、頭共に良い運動になって楽しすぎたので、IchigoJamでゲーム化!

まずはカーソルで動く主人公(ケイ)をつくる。"K"はALT+Pで人を出してもいい。

10 X=16:Y=12 20 X=X-BTN(28)+BTN(29) 30 Y=Y-BTN(30)+BTN(31) 40 CLS 50 LC X,Y:?"K" 60 WAIT 3 70 GOTO 20

20行と30行、28〜31が左右上下のカーソルのキーコード。X,Yとマイナスから書くと28〜31まで並ぶので覚えやすい。 忘れてしまったら、?LEFT などでキーコードを確認!チラツキ抑えるコツは、画面表示直前にCLS。

次に敵キャラ(ドロ)を登場させる。上から迫ってきて、一番下まで到達されたら負け。"D"はALT+Dで宇宙人とか。

15 Q=16:R=0 34 IF RND(5)=0 R=R+1:IF R=22 END 35 IF X=Q AND Y=R Q=RND(32):R=0 51 LC Q,R:?"D"

捕まえた数をスコアにする

10 X=16:Y=12:S=0 35 IF X=Q AND Y=R Q=RND(32):R=0:S=S+1 42 LC 5,0:?"SCORE:";S

10行、35行はLIST表示して、追記しよう。

画面端にいってしまうとおかしくなるのを防ぐ。左右はループするように、上下はその位置で止まるようにプログラム追加。

21 IF X<0 X=31 22 IF X>31 X=0 31 IF Y<0 Y=0 32 IF Y>21 Y=21

ケイドロの醍醐味、複数のドロからいかにして守るかを表現するために、敵キャラをもう一体出す。

15 Q=16:R=0:T=6:U=0 36 IF RND(5)=0 U=U+1:IF U=22 END 37 IF X=T AND Y=U T=RND(32):U=0:S=S+1 52 LC T,U:?"D"

34行、35行をLISTで表示し、行番号と変数だけを書き換えると楽。
これでケイドロゲームのできあがり!

やってみよう!
- キャラクターを自分好みに変えてみよう。
- 敵が迫ってくる速度を変えてみよう。
- 敵をもう一体追加してみよう。

10 X=16:Y=12:S=0 15 Q=16:R=0:T=6:U=0 20 X=X-BTN(28)+BTN(29) 30 Y=Y-BTN(30)+BTN(31) 21 IF X<0 X=31 22 IF X>31 X=0 31 IF Y<0 Y=0 32 IF Y>21 Y=21 34 IF RND(5)=0 R=R+1:IF R=22 END 35 IF X=Q AND Y=R Q=RND(32):R=0:S=S+1 36 IF RND(5)=0 U=U+1:IF U=22 END 37 IF X=T AND Y=U T=RND(32):U=0:S=S+1 40 CLS 42 LC 5,0:?"SCORE:";S 50 LC X,Y:?"K" 51 LC Q,R:?"D" 52 LC T,U:?"D" 60 WAIT 3 70 GOTO 20

ケイドロ on IchigoJam

スマホでも遊べるプログラミング教材用ゲーム第二弾「shoot」嫌いにさせないプログラミングの教え方とは!?

2016/06/28 23:55:00
#js #game #kosen 

二番目のプログラミング言語としてオススメのJavaScript、学ぶべき文法、アルゴリズム、ライブラリはたくさんありますが、ひとまず楽しく続けることが大切です。「やらされ」から「自分でやる!」へのスイッチをみんな大好きゲームに求めてみます。

自分でつくったアプリやゲームを誰かに見せたり、使ってもらったりする体験が手軽にできるスマホ時代、「15ゲーム」に続く、第二弾ミニマムシューティングゲーム「shoot」をつくりました。ブラウザで開き、ホームへ追加で、アイコンが追加され、アプリっぽく動きます!


shoot

前回より、少し短くなっています。HTML/CSS部分はひとまずコピペしても構いませんが、<script>から</script>で終わる、JavaScriptの部分は自分で見ながら打ち込んでみるのが上達への近道!

<!DOCTYPE html><html><head><meta charset='utf-8'/> <title>shoot</title> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta property="og:image" content="http://fukuno.jig.jp/app/game/shoot.png"> <link rel="apple-touch-icon" href="http://fukuno.jig.jp/app/game/shoot.png"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi"> <script src="http://fukuno.jig.jp/app/game/lib/fukuno.js"></script> <script>"use strict"; window.onload = function() { var c = get("canvas"); var g = getContext(c); setUI(c); var state = 0; // 0:title, 1:play, 2:gameover var ex; // x of enemy var ey; // y of enemy var ev; // vx of enemy var es; // size of enemy var sx; // x of shot var sy; // y of shot var sv = -32; // vy of shot var score; g.draw = function() { g.setColor(0, 0, 0); g.fillRect(0, 0, g.cw, g.ch); g.setColor(255, 255, 255); if (state == 0) { g.fillTextCenter("shoot", g.cw / 2, g.ch / 2, 80); g.fillTextCenter("tap to start", g.cw / 2, g.ch / 2 + 80, 40); score = 0; ex = -30; es = 100; ey = 100 + rnd(200); ev = 3; sy = 1000; sx = g.cw / 2; } else if (state == 1) { ex = ex + ev; if (ex > g.cw + es) { state = 2; } g.fillRect(ex - es / 2, ey - es / 2, es, es); // me g.fillRect(sx - 4, g.ch - 40, 8, 30); g.fillRect(sx - 15, g.ch - 20, 30, 10); // shot if (sy < g.ch) { sy = sy + sv; if (sy < -30) { state = 2; } g.fillRect(sx - 4, sy, 8, 30); if (Math.abs(sy - ey) < es / 2 && Math.abs(sx - ex) &lt; es / 2) { score = score + 1; ex = -30; ey = 100 + rnd(200); ev = ev * 1.5; es = es * .8; sy = 1000; } } } else if (state == 2) { g.fillTextCenter("game over!", g.cw / 2, g.ch / 2, 80); g.fillTextCenter("score: " + score, g.cw / 2, g.ch / 2 + 80, 40); } }; c.onuidown = function(x, y) { if (state == 0) { state = 1; } else if (state == 1) { if (sy > g.ch) { sy = g.ch - 40; } } else if (state == 2) { state = 0; } }; setInterval(function() { g.draw(); }, 1000 / 30); g.init(); }; </script> <style> body { background: white; text-align: center; } h1 { display: none; } #canvas { display: inline-block; width: 320px; height: 320px; } #credit a { color: gray !important; font-size: 12px; } </style> </head><body> <h1>shoot</h1> <canvas id="canvas"></canvas><br> <div id="credit"><a href="http://fukuno.jig.jp/1435">CC BY fukuno.jig.jp</a></div></div> </body></html>

うまく動かない時は、デベロッパーツール(Chrome)、エラーコンソール(Safari、環境設定、詳細、メニューバーに"開発"メニューを表示、開発、エラーコンソールを表示)などを開いて、ミスを発見、修正してみましょう。

うまく動いたら、早速改造。
- クソゲーをつくってみよう!(ゲームはバランス)
- 敵キャラを嫌いな科目名ににしてみよう!
- ハイスコア機能をつけて競い合おう!
- 連射できるように改造するには!?(配列を使う必要あり!)

IchigoJam BASIC から、JavaScriptへ!
IchigoJamへインスールできる JavaScriptが使えるOS「IchigoLatte 0.9」、ナチュラルスタイルからリリース!


母校、福井高専では、プログラミングをC言語の前に、JavaScriptで学んでいるとのこと。
先日の訪問、電子情報工学科3年生の特活の時間「アルバイト好きな高専生が起業を2回失敗した話」


盛り上がった、IchigoJam 争奪、じゃんけん大会!
プログラミング嫌い、減りますように!

二番目のプログラミング言語にオススメ「JavaScript」 スマホでも遊べる15ゲームの解説

2016/06/15 23:55:00
#js #game 

IchigoJam BASICでプログラミングに慣れ、晴れて自分のパソコンをゲットした人にオススメしたいプログラミング言語のひとつ、JavaScript!

JavaScriptは、世界中のパソコンやスマホ、3DSやPS4などゲーム機など、ブラウザ上で動くプログラミング言語。 WebサイトをつくるHTMLと合わせて使うことで、世界中に使ってもらえる作品がつくれちゃいます!

こちら1〜15までをすばやくタップするゲーム「fifteen

fifteen」 6秒切れたらすごい!!

とりあえずやってみたいのはゲームですよね?テキストエディタ(わからなければ検索!)で、こちらのコードを打ち込んで(コピペ厳禁)、fifteen.html として保存(文字コードはutf-8)、ブラウザで開いてみましょう。

こんなに打つのはしんどい・・・と思う人は、JavaScriptへ進むのはまだ早いです。IchigoJamで、タイピングゲームをつくって、楽しく打てるようになっておきましょう。
検索しながらとかめんどい・・・と思う人は、教えてもらっている間は半人前と心得ましょう。

<!DOCTYPE html><html><head><meta charset='utf-8'/> <title>fifteen</title> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <meta property="og:image" content="http://fukuno.jig.jp/app/game/fifteen.jpg"> <link rel="apple-touch-icon" href="http://fukuno.jig.jp/app/game/fifteen.png"/> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi"> <script src='http://fukuno.jig.jp/app/game/lib/fukuno.js'></script> <script>"use strict"; window.onload = function() { var ncircle = 15; var c = get("canvas"); var g = getContext(c); setUI(c); var state = 0; var circle = []; var nextcircle = 0; var fastestt = 15; var startt; g.draw = function() { g.setColor(255, 255, 255); g.fillRect(0, 0, g.cw, g.ch); if (state == 0) { g.setColor(0, 0, 0); g.fillTextCenter("fifteen", g.cw / 2, g.ch / 2, 80); g.fillTextCenter("tap to start", g.cw / 2, g.ch / 2 + 80, 40); } else if (state == 1) { for (var i = ncircle - 1; i >= nextcircle; i--) { var c = circle[i]; g.setColor(255, 255, 255); g.fillCircle(c.x, c.y, c.r + 2); g.setColor(c.col[0], c.col[1], c.col[2]); g.fillCircle(c.x, c.y, c.r); g.setColor(80, 80, 80); g.fillTextCenter(i + 1, c.x, c.y, 40); } } else if (state == 2) { g.setColor(0, 0, 0); g.fillTextCenter("clear!", g.cw / 2, g.ch / 2, 80); var dt = (new Date().getTime() - startt) / 1000; g.fillTextCenter("time: " + fixfloat(dt, 3) + "s", g.cw / 2, g.ch / 2 + 80, 40); if (dt < fastestt) { fastestt = dt; g.fillTextCenter("fastest!", g.cw / 2, g.ch / 2 + 160, 40); } else { g.fillTextCenter("fastest: " + fixfloat(fastestt, 3) + "s", g.cw / 2, g.ch / 2 + 160, 40); } } }; c.onuidown = function(x, y) { if (state == 0) { for (var i = 0; i < ncircle; i++) { var off = 0.1; var c = { x: rnd(g.cw * (1 - off * 2)) + g.cw * off, y: rnd(g.ch * (1 - off * 2)) + g.ch * off, r: 70, col: hsv2rgb(rnd(100), .3, 1) }; circle[i] = c; } nextcircle = 0; startt = new Date().getTime(); state = 1; g.draw(); } else if (state == 1) { var c = circle[nextcircle]; var dx = x - c.x; var dy = y - c.y; if (Math.sqrt(dx * dx + dy * dy) < c.r) { nextcircle++; if (nextcircle == ncircle) { state = 2; } g.draw(); } } else if (state == 2) { state = 0; g.draw(); } }; g.init(); }; </script> <style> body { background: white; text-align: center; } h1 { color: #222; font-size: 140%; text-align: center; display: none; } #canvas { display: inline-block; width: 320px; height: 320px; } #credit { text-align: center; font-size: 12px; } #credit a { color: gray !important; } </style> </head> <body> <h1>fifteen</h1> <canvas id="canvas"></canvas><br> <div id='credit'> <a href='http://fukuno.jig.jp/2012/'>CC BY fukuno.jig.jp</a></div> </div> </body> </html>

・ざっくり解説
!DOCTYPE html がHTML5の証。
apple-mobile〜 は、ホーム画面に追加した時、iPhone/iPadで普通のアプリみたいにフルスクリーンになります。
og:image はfacebookなどでサムネイルに使われる画像
apple-touch-icon は、ホーム画面に追加した時のアイコン
viewport で、スマホ用の画面設定
fukuno.js は、便利なライブラリ、気になったらダウンロードして中身を読んでみましょう
"use strict" で、変数を宣言せずに使えなくしてわかりにくいバグを防ぎます
window.onload が最初に動き出すところ
中身は画面を表示する g.draw と、タップしたときに呼ばれる c.onuidown のふたつだけ
変数 state で、ゲームはじまる前、ゲーム中、ゲームオーバー画面を管理
style は、スタイルシートといって画面内の表示を整えるCSSを使います
body の中にHTMLの本文を書いてできあがり!

・やってみよう!
15までじゃなくて20までにするには?
色を全部赤にするには?
丸の大きさをランダムに変えるには?
タップしたところに丸を表示するプログラムをつくってみよう!
オリジナルスマホゲームをつくってみよう!

The Brown Box、光速船からPSVRまで!東京お台場「GAME ON」

2016/04/09 23:55:00
#game #KidsIT #movie 

コンピューターの歴史と切っても切れないゲームの歴史。
実機で遊べる企画展「GAME ON」が東京、日本科学未来館にて開催中(2016.3.2-5.30)
昔ゲーム、スペースウォーやミサイルコマンドは最高でした!PSVRも一足早く体験できます!


1967年生まれの元祖テレビゲーム機「The Brown Box」 by ラルフ・ベア
動画を探してみると、テニスやスカッシュが動いていた様子、まさにこんなゲーム、幼稚園頃、家で家庭用ゲーム機で遊んでました!


1972年 PONG(ポン)の大型筐体、対戦できます!


1982年 Spacewar (スペースウォー) on Vectrex (光速船) / オリジナル版 1977年 by Cinematronics


【スペースウォーの遊び方】
宇宙船同士、撃ちあうゲーム、10本先取で勝利、隕石や中央のブラックホール風に当ってもアウト
船尾などへの被弾しても、ダメージを受けるだけで死なないこともある

ボタン
右側の横1列、赤(1)、赤(2)、緑(3)、赤(4)とその下、緑(5)がメインで使うボタン

手順
1. 左側の上、黄色ボタンを押してリセット
2. タイトル画面で、緑(3)を押してスタート
3. 緑(3)と緑(5)を使ってゲームモードセレクト(1が優しく、7が難しい)
4. 赤(4)を押してゲームスタート(一定時間何もしないと勝手に始まる)
5. 船首が丸い方が自機。緑(3)が推進、前へ進む(慣性あり)
6. 赤(1)で左旋回、赤(2)で右旋回、緑(3)でショット
7. 上部の数値は、左が燃料(推進で減って0になると動けなくなる)、右が弾残数

※1 ゲームモードは、1-3 早くなる、4 ブラックホール、5 ホワイトホール、6-7 重力大
※2 きっと2人で対戦できると思われるが、ボタンの割り当てがおかしく、右側を使った1人プレイしかできませんでした。 調整してくれていたら対戦できるので、ゲームセレクト中に、何かキーを押してみてください。


ターミネーター2でジョンがゲーセンで遊んでいた「ミサイルコマンド」
大きなトラックボールが特徴のオリジナルが遊べることに感激!!
左手は各基地からミサイル発射ボタンを構える。


ハイスコアでたので、ネームエントリー!


ファミコンからPS4/XBOXなど、近代ゲーム機が揃っている様子。MSX2を発見し思わず撮影!


見たこと無かったこのゲーム機は北米のみ発売されたメガドラのモバイル機「NOMAD(ノーマッド)」でした


日本人、嶋正利さん開発のCPU、4004、8080!コンピューターの大発展の始まりですね。


テレビゲームの前に流行した電子ゲームコーナー!その手前の台の上には・・・


1978年 スピークアンドスペル by Texas Instruments


1978年 サイモン by ラルフ・ベア(The Brown Boxの作者!)


1979年 エイリアンアタック by Coleco


1981年 スーパーギャラクシアン by グランドスタンド/エポック社


数々の貴重な電子ゲームの数々!


1983年 Cookie Monster Munch on ATARI 2600
このコーナーに設置されていたクッキーモンスターのレトロな迷路ゲーム


「ゲームって作るとおもしろい」は、各展示セクションにあるゲームのおもしろさ解説の最終章。
ゲームのおもしろさの要素のひとつ、古くはRPGツクール、現代ではマイクラなどの人気でも分かる「つくるゲーム」は、 突き詰めるとプログラミング言語で、自分でゲームをつくるところに行き着きます。


それを手軽に実現するのが「こどもパソコンIchigoJam」ってことで展示いただいています!
paprikaMASAHARUのBASICプログラムのパネルもあります。


最後は未来のゲーム、PlayStationVR(プレイステーション・ブイアール)の体験コーナー

3番、車の助手席に乗って銃撃してくる追手を迎撃するシューティングゲームを選択。 ダッシュボードを左手で開けて、弾薬を右手に持ったハンドマシンガンに詰める操作が新鮮だけど、ちょっと面倒。 グラフィックスはまぁまぁなレベルながら、頭の動きに対する追従性が良い感じ!製品版の登場が楽しみです。

PSVRを使ったゲームも、気軽にプログラミングできるような環境を用意してくれることにも期待です!

参考リンク - 実機で遊べる企画展「GAME ON」(2016.3.2-5.30 at 東京、日本科学未来館
- Gamersbox | ゲーマーズボックス

2Dプリンタと3Dプリンタでつくるチェスセット

2015/11/03 23:55:00
#print3d #game 

木更津高専近くにある組み込みの里 電子工作オープンラボの西山さんから、XYZprinting社の3Dプリンタ ダヴィンチ(da Vinci)のプレートへの接着には、ケープがいいと情報を得て、早速トライ!


Thingverseにチェス駒を発見、サイズを50%にして出力、見事できあがり!
質は落とした高速設定(レイヤー高さ0.4mm、3D密度5%)で2時間弱で出力。


フィラメントの色を変えて、もう2時間、チェスコマが揃いました!
せっかくなので、チェスボードをExcelで作成し、2Dプリンタ(普通のプリンタ)で出力!
chess-board.xlsx / PUBLIC DOMAIN)


キープレベル最大の「ケープ 3Dエクストラキープ 無香料」をプリント前にプレートに吹き付けるだけ、なかなか手軽です。 今までの接着には、シワなしPITを使っていましたが、塗りムラが気になるところだったので、しばらくこのケープで試してみます。


せっかくなので1回くらいはやってみようと、チェスのルールを初めて読みましたが、ポーン(将棋の歩的存在)は最初は2コマ動けたり、敵陣最奥までいくと変化したりと思った以上に複雑。 ちょうど手元にあったバームクーヘンの箱が6x6盤のミニチェス、世界初のコンピューターチェス「ロスアラモス チェス」にぴったりだったので、お試し2局で1勝1負。

コンピューターが強くなりすぎて生まれたアリアマというチェス駒を使った別ゲームなど、コンピューターと人との共創を感じます。 もっとシンプルにしたボードゲームで、3DSのプチコン3号とIchigoJamの通信を使ったこどもコンピューター対局もおもしろそう。

「信号反応テスト」自分で把握する交通事故リスク

2015/10/20 23:55:00
#game #js 

年間57万件も発生している交通事故(死者数4,113年、平成26年中の交通事故死者数について)。 近年、高齢者が関係する事故が増えていることもあり認知症の疑いがあれば診断が義務付けられる法改正が予定されているとのこと。
認知症疑いなら医師の診断義務付け 改正道交法成立 :日本経済新聞

年齢によって低下するという反応速度や判断力。個人差はもちろん、その時々の体調によっても変化します。免許更新の講習でもらった冊子にある書いてあったテストをスマホアプリ「信号反応テスト」にしてみました。

元気な時、飲酒時、眠い時、疲れている時、いろんな状況で計測してみてください。友達同士、飲酒前後で競い合うのも楽しいかも!?


信号反応テスト」 - PCはFとJのキー、スマホではタッチで操作します!


年をとるごとに、反応時間が伸びていく様子、誤反応数が増える様子がデータとして提示されていました。
反応速度の遅さや誤反応数と事故との相関データもあれば、おじいちゃんおばあちゃんに運転免許の返上を促す強力な道具となりそうです。


反応速度を測るテストを年代別に行ったところ、70代以上で30代の2.2倍間違うとのこと!

ドライブゲーム用のアクセル&ブレーキを使ったり、大きな信号風の表示器を使ったものにしてみるのもありですね。

今すぐチェック!「信号反応テスト

5歳からのブラインドタッチ、タイピングゲームLV1

2015/06/27 23:55:00
#game #IchigoJam #KidsIT 

現状最速の入力手段であるキーボードは、現代の創造作業に欠かせません。

進むこどものキーボード離れに対抗すべく、5歳児でもブラインドタッチ(差別的な意味は無いらしい(Wikipedia)、タッチタイプともいう)を遊びながら覚えられるIchigoJam用のゲームを作成。
※IchigoJam、メイカーズバザール大阪(6/27-28)でも、展示アリ!ベーマガ編集長の講演も!


TYPING LV1 - 両手のホームポジション、ASDFJKLの7種の文字だけが降ってくるので、迎撃するゲーム
画面上に押すべきキーと場所が書いてあるので、手元を見る必要がない。


プログラムはこちら

親のタイピングが羨ましくなったこどもに遊ばせてみましょう。

ミッション1. 30点とれ
ミッション2. レベルが上がったときの効果音をつけよ
ミッション3. GとHも降ってくるように改造せよ
ミッション4. 改造版で60点とれ
ミッション5. オリジナルタイピングゲームをつくれ

IchigoJamでつくるミニテレビゲーム「AIR TRIP」

2015/06/13 23:55:00
#KidsIT #IchigoJam #game 

IchigoJamのプログラム自動起動機能を使って、ミニテレビゲーム機をつくりました。


AIR TRIP on IchigoJam
ボタンを押すと上昇、離すと下降するヘリコプターを操り、UFOを避け続けるゲーム。


プログラムはこちら。 キャラクターは好きな文字にご変更ください!
PCGを使ったオリジナルキャラづくりもいいですね!
プログラムを本体フラッシュメモリに SAVE 0 で書き込めば、キーボードをつながなくても、 本体のボタン押しながら起動で自動的に動かせます。


秋月電子の180円のCR2032ボタン電池キットを使って、ビデオケーブルを指すだけOK、シンプルワンキー、ハンディーテレビゲームのできあがり!
ダンボールや3Dプリンターでの外装づくりも楽しそうです!
※ピンヘッダは付属の細いものではなく、太いものを使ったほうが安定しそうです


ゲーム中毒から抜け出す方法 / IchigoJam BASICでThrees!風を創る

2014/09/21 23:55:00
#game #IchigoJam #KidsIT 

スペースインベーダー、パックマン、テトリス、ぷよぷよ、さめがめなど、簡単ルールのシンプルなゲームに多くの人がハマる。私が一番ハマったゲームは、連鎖演出中にも操作ができて連鎖を伸ばせる仕組み、アクティブ連鎖が楽しかった、パネルでポン!こと、パネポン

シンプルゲームがハマる三大要素
1. 把握しやすいルール(制御)
2. 技術と運の絶妙なバランス(難易度調整)
3. 成長の可視化(快感)

ゲームの本質的なおもしろさがルールで決まり、プレイヤーの期待に応える難易度(難しいけどやればなんとかなる程度)で楽しさを演出、その結果を点数化したり演出で褒める。成長の喜びは、きっと人類共通のもの。

ついついゲームをしてしまう人におすすめする克服方法のひとつは、ゲームの裏側を知ってしまうこと。種や仕掛けが分かってしまえば、自分の技術によって達成できる成長限界が分かる。ゲームの裏側、プログラミングでゲーム自体を創ってしまえば、運の要素を上げるも下げるも自由自在。本質であるルールづくりの方が楽しくなれます。

今年登場したスマホ用シンプルゲーム「Threes!」。派生ゲームがニンテンドー3DSにも移植されている。4方向に数字群をスライドし、できるだけ大きな数を創るというルール。IchigoJam BASICでも創ってみました。


「Puzzle012」 Threes!風パズルゲーム


プログラムサイズは1016byteと。プログラム保存領域が512byteから1Kbyteに拡張された IchigoJam 0.8.6 以降でぎりぎりセーフ。

9/27(土)、秋葉原で行う「IchigoJamはんだづけワークショップ」にいらっしゃった方に、このゲーム「Puzzle012」をプレゼント!親子で楽しむシンプルゲームづくり、こどもプロコンへの応募もぜひどうぞ!

- BASICでプログラミングしかできない、こどもパソコン IchigoJam

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