15パズル プログラマー的言い訳

スワローズ関連のことじゃないですが…
先日、「つば九郎15パズル」を投稿しました。つば九郎描いたので、これ使ってなんかおもしろいもの作れないかなと思い、考えついたのが古典的なこれ。

CSSとJS(jQuery)でサクっと2時間くらいでコーディングして、デバッグもそこそこにリリース。
リリース後、デバッグも兼ねて何度か自分でやってみたのですが…

「どうしてもクリアできない!」

Twitterでも「意外に難しい」といったようなリプいただいたので、調べてみたらやはり不可能な配置がありました
確かに、1箇所だけ逆の場合、入れ替えることは不可能です。
気づかなかった…意外に奥が深かった。

本業の片手間でやっていて、それほど時間もかけられないのですが、なんか気持ち悪いのでロジックの変更を検討。

最初は、0〜14でランダムな配列をつくり、並べていました。

改善案①
「不可能な配置」の条件を探り、それを除外

10分くらい考えた。理系なのですが、数学科ではなく物理科なので、確信に至らず断念。

改善案②
完成形から変形させて配列をつくる

10分くらい考えた。確実に完成できるようになりますが、汎用的なロジック考えるまで頭がまわらず断念。(でも、これはもうちょっと頑張ればできそう。)

改善案③
完成できる配列を数パターン用意し、ランダムに選択

結局、一番簡単なコレを採用。そんなに何度もやるもんじゃないし、たまたま同じになっても気づかないだろうし、仕事ならもうちょっと頑張ったよ…(言い訳)

Webコーディングあるある
「綺麗なコードが書ければ本人は気持ちいいが、ユーザーにとってはどうでもいい。」
「他人のページのソースを見て、コードに感動したことがある。」
「IE8をサポートしなくて良くなって、心の底からうれしい。」

(▼下に続く▼)

ということで、配置の初期化とか、ピースクリック後の分岐とか、力技でものすごく汚いコードになってしまったので、時間があったら改善しよう。
でも、同業者以外ソースなんで見ないだろうし、やってもユーザーは体感的に何も変わらないんだよなぁ。
ソースは絶対見ないでね。(振りじゃないよ。)

↓「共感できた」「たのしかった」方は よろしければ1日1ポチッとお願いします。(怪しいリンクではありません…というと逆にアヤシイですが。)

ちなヤク向け
『神宮ツバメの観察』『スワローズファンあるある』『ヤクルトファンの「悲しいとき〜」』など、オススメ! ...
ゲーム・パズル
つば九郎のゲームなど。 『村上 トスバッティングゲーム』追加しました。 ...
スワローズクイズ
目指せ、満点! スワローズのこと、どれだけ知ってますか? ...

コメントは、@puntaro_ys の対象ツイート または 固定ツイートの返信まで。フォローもお待ちしています。