すずしんろぐ

読者です 読者をやめる 読者になる 読者になる

すずしんろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

Androidアプリ「数独(ナンプレ)ソルバー」を公開しました!

数独ソルバーFree - 解読後

こんにちは、鈴木俊吾(すずしん)です。

前回に初めてアプリを作成して公開してから、また別のアプリの制作を開始しまして…。 ついに、新しいAndroidアプリを公開しました! その名も「数独(ナンプレ)ソルバー」です。 だいたい名前からして何をするアプリかは分かるとは思いますが、一応紹介させていただきます。

数独(ナンプレ)ソルバー

数独(ナンプレ)というのは、9x9のマス目に1~9の数字を入れていくというペンシルパズルです。 行、列、太線で囲まれた3x3のブロックのどれにも、1~9までの数字が1つずつ入るようにします。

数独(ナンプレ)ソルバー」は、その数独(ナンプレ)の問題を自動で解くアプリです。 何かプログラムで問題を解くというのをやりたいなとなって、まず最初に思いついたのが数独を解くということでした。 数独は私も好きなパズルですし、単純な解法アルゴリズムであれば実装もしやすいと考えました。 需要も最初のアプリよりはありそうですので、作ってみる価値はあるだろうということで実際に作成してみました。

解法アルゴリズムとしては、バックトラック法と呼ばれる単純なものです。 空きマスに対して1~9の中で候補となる数字を入れてみて、全てのマスをルールに従って埋めることができれば成功です。 途中で候補となる数字が無い場合は失敗となり、戻って別の数字を試します。 いわゆる総当たりですね。 9x9のサイズであれば、これほど単純なアルゴリズムでも実用的な速度で解くことが出来ます。

使い方

  1. まずは数独の問題を入力します。 入力したいマスをタップして、選択されていることを表す赤い枠がそのマスに表示されていることを確認します。 その後、入力したい数字のボタンを押します。 すると、選択したマスに数字が入力されます。 この手順を繰り返して、数独の問題にある数字を全て入力してください。

数独(ナンプレ)ソルバーFree

  1. メニューから「解く」(鉛筆マークのアイコン)をタップしてください。 すると、入力された数独の問題を解き始めます。

  2. 入力された数独の問題を解き終わると結果が表示されます。 正常に解くことができれば、数独のマスに赤字で正解の数字が表示されます。 また、「Solved!」というメッセージとともに問題を解くのにかかった時間が表示されます。 解くことができなかった問題は、「Not solved!」というメッセージとともに、解けないと判定されるまでにかかった時間が表示されます。

数独ソルバーFree - 解読後

  1. 入力した問題を削除(クリア)したい場合には、メニューの「削除」(ゴミ箱のアイコン)をタップしてください。 すると、数字の入力がクリアされて初期状態に戻ります。 別の問題を入力したい場合には、クリアしてもう一度数字を入力してください。

ダウンロード

数独(ナンプレ)ソルバー」のダウンロードはGoogle Playからできます。 以下にリンクを貼っておきますので、そこから移動すると楽だと思います。 ぜひダウンロードして実際に使ってみてください。 あっ、もちろん無料で使えますよ!

数独(ナンプレ)ソルバー Free
数独(ナンプレ)ソルバー Free
開発元:Shingo SUZUKI
無料
posted with アプリーチ

ひとこと

数独(ナンプレ)ソルバーを使って数独の問題を解くと、「あっ、プログラムで問題を解いているなぁ」という気持ちになりますね。 ほぼ一瞬で解けるので、プログラムの力ってすごいなぁと思いますよ。

現状は9x9のみのサポートですが、いずれは16x16の問題にも対応できるようにしたいです。 その場合には、現在のバックトラック法では遅すぎてダメでしょうね。 人間が解くときに使うような方法で解く必要がありそうです。 これについては今後の検討課題ですね。

何か意見や要望などがあれば、ぜひコメントを頂けるとありがたいです。 実際に使ってみた感想だけでもうれしいです。 1人でも多くの人にこのアプリを利用してもらいたいですね。