見出し画像

AppleWatchアプリ開発遊戯「2048」

2014年に流行った「2048」という数字パズルのゲームを作ってみた。
このゲームは以前にプレイしたことはあるが、今回は作る立場からこのゲームを見ることができた。

ゲームルールの概要

4x4の16マス内のタイルをスライドさせると、タイルはマスの端まで移動し同時に新しいタイルが出現する。同じ数字のタイルがぶつかると2+2=4、4+4=8、8+8=16・・・というように足し合わされた数字のタイルに変わっていく。最終的に2048のタイルができればゲームクリア。

画面のデザイン

画面のデザインは以下のサイトを参考にした。

画面レイアウトができると、プログラミングのモチベーションが上がってくる。

ゲームの流れ

ゲームの全体の流れは以下のサイトを参考にさせてもらった。

細かなゲームの動作は、画面のデザインで参考にしたサイトでプレイして確認した。

プレイしていると、新たなタイルは"2"だけではなく、たまに"4"が出現した。WiKiで確認すると、10%の確率で"4"のタイルが出現するとのことだったので、プログラムに反映した。

新たなタイル(90%の確率で2のタイル、10%の確率で4のタイル)が出現する。

WiKiより

ゲームを途中でやめて新しくゲームをやり直す"New Game"ボタンはなしにして、"UNDO"ボタンに変更した。"UNDO"ボタンはタイルの移動方向をやり直すためというよりも、タイル移動後の結果が読めてなくて「あれ?」と感じた時にタイル移動前の状態を確認するため(笑)。

アニメーション効果

画面のデザインで参考にしたサイトのアニメーションが気に入った。新しいタイルが出現する時と、同じ数字のタイルが合わさる時にタイルが拡縮するアニメーションを追加した。スコアのアニメーションは再現が難しそうだった(ここに労力をかけるほど興味はない)ので、スコアの数字が滑らかに変化するアニメーションにした。

ゲームの操作方法

タイルのスライドは、AppleWatchの画面上で指のドラッグ操作で行うが、AppleWatchを装着した手首の動きだけでゲームができるようモーションセンサを使って操作できるようにしてみた。

しかし、AppleWatch画面は手首を傾けるとスリープ状態になる。スリープ状態になってしまうとアプリが停止してしまう。都度画面を上向に戻せばスリープが解除されるのだが、動作が止まるのでストレスになる。以前に作成した迷路アプリでも経験済みなのだが…。

あとがき

昔からコンピューターゲームで遊ぶのは得意ではなかった。そのためか、コンピューターゲームは遊ぶより作る方が楽しいと思っていた。

昔のコンピュータはOSがなかったしドライバも自分で作る必要があった。現在ではAPIが用意されている。ハードウェアを直接制御する喜びはなくなってしまったが、簡単に高度な機能が実現できるようになった。

若い時にプログラミング言語を経験していれば、シニアになってからは新しい言語を学習する必要はなさそうだ。それは、文法やエラー処理など、都度ググれば解決できる時代になったから。

「AppleWatchアプリ開発遊戯」は自分の認知症の進行を抑える効果があるのではと期待している。