とりあえず、やってみる。

よくわからんけど、やってみる。とりあえず、やってみる。

JavaScriptで さめがめ 作ってみたPart1

おはようございます😊まおです🌸

大変遅くなりましたが、さめがめのゲームロジックがなんとか完成しました😳👏
時間かかりました~😭✨
もはや最近もう放置してた...w


SameGame


https://tonamao.github.io/SameGame/

f:id:tonamao:20190330124551p:plain



SameGameって?
通称「さめがめ」。昔からあるパズルゲームですね!

さめがめは、コンピュータゲームの一種である。 名前の由来は、ゲームタイトル「SAME GAME(セイムゲーム)」のローマ字読みによるもの。(さめがめ#歴史)

出典: フリー百科事典『ウィキペディアWikipedia)』


私個人としては、昔から知っていて、Yahoo!ゲームに「ブロキシー」って名前であったのでよくやってました!

ルールとしては、同じ色が隣り合う2つ以上のブロックを消していき、
なるべく多くのブロックを消すというものです🎮

消されたブロックのところは、下へ、左へ、詰められていきます。



工夫した仕様はこんな感じ


1Clickでチェック、2Clickで消す
SameGameって消したブロックが一瞬で落ちてきて、左に詰められるので、
1Clickでブロックが消えちゃうと、
何が起こったかわかりにくいと思うんですよね。
押し間違えたとかもあると思うしね~。
なので、1Clickめは削除対象のブロックがチェックされるようにしました。

Safariでタップした時のグレーになるのを阻止!
Safariでタップすると、一瞬グレーっぽくなります。
今回1回ブロックを消すのに2Clickするのを考えると
かなりタップ回数が増えるので、画面が点滅して見えます。

今回も検索スキㇽ()を発揮して
「click」「イベント」「スマホ」「画面光る」で検索して、
下記のサイトにたどり着き、参考にさせていただきました💁‍♀️笑

[CSS] iPhoneのSafariでタップした際に表示される暗めな影を消すCSS - YoheiM .NET

要は、CSSで以下追加するだけです。

-webkit-tap-highlight-color:rgba(0,0,0,0);


説明の都合で後ろから見ていきます。w

rgba(0,0,0,0)
言わずと知れた、color指定方法ですね!
最初の3つ:0~255で指定。 黒色 となります。255,255,255なら 白色 になります。
最後の1つ:0~1.0で指定。 透明度 を表し、「0」なので透明となります。

tap-highlight-color
これはもう名前の通り!タップした時のハイライトカラーを決めます。笑

-webkit-
これは ベンダープレフィックス と呼ばれるもの。
ChromeとかSafariとかFirefoxとか各社のデザインに対応したCSSを書く場合につける接頭辞です。


各社用につけるってあたりで想像できると思いますが、
これに頼って作りこみすぎると、手に負えない修正量になっていきそうなので要注意ですね...😅
今回はいったんスマホ操作時の点滅が気になっただけなので、これで進めました。




余談


まず、「上下左右にある色が同じブロックを探す」処理につまずきました。w
次に、「ブロックが重力の原理で下に落ちる」という処理でつまずきました。ww
最後に、「ブロックが1列全部消えたら、左に詰める」という処理であきらめ始めました。www

まあ結局は、仕様を超具体的に落とし込めれば実装できるはずなんですけどね!
なかなか考えが追い付かずって感じでした~...


今後このSameGameを改良していこうかなと思います🙋‍♀️
そういうわけでの Part1 です!

まあ「作ってみた」でいうと、Part1しかありえないけどねw