第19講 数独(ナンプレ)解答自動生成アプリ

第2話 数独(ナンプレ)の解答を自動生成するには?
私は、数独(ナンプレ)の存在を知って数ヶ月もかからないで、
数独(ナンプレ)問題自動作成アプリの開発に成功しました。
さらに、
解答自動生成については、1日で開発に成功してしまいました。
能力の低い私が、あっという間に開発できてしまった理由は、
魔方陣の自動生成ソフト作りを研究していたからです。
魔方陣自動生成ソフトをちょっと改良すれば、
数独(ナンプレ)解答自動生成ソフトが出来ることは、
直感で分かりました。
そうです。
第10講の魔方陣生成ソフトをちょっと改良すればよいのです。
数独(ナンプレ)の各セルに入れる数字は、
1,2,3,4,5,6,7,8,9
が9セットです。
つまり、
1が9個
2が9個
3が9個
  ・

  ・
9が9個
あって、それを各セルに入れていきます。
魔方陣では各行・各列・対角線の合計がすべて同じになるようにする・・・
というのが条件でしたが、
数独(ナンプレ)では、各行・各列・各ブロックに、
1,2,3,4,5,6,7,8,9
の数字が漏れなく1つずつ入る・・・
ようにするということです。
言い換えると重複なしに入るようにするということです。

行についても、列についても、ブロックについても、
いずれもfor文で実現できます。
こんな感じです。
    for(j=0;j<x[g];j++){
        ・・・
    }
いきなり3つ共に実現では大変ですから、
行→列→列の順に実装していきましょう。
まず、行に数字が重複しないようにして、
4 1 2 7 6 3 5 8 9
6 9 7 3 1 4 2 8 5
9 2 8 4 3 7 5 6 1
3 4 8 5 2 6 7 9 1
4 8 3 5 9 6 7 1 2
7 1 2 5 6 8 9 3 4
6 7 8 9 4 2 3 5 1

6 9 8 5 1 2 4 3 7
3 9 4 8 7 1 6 2 5
4 1 2 7 6 3 5 8 9
6 9 7 3 1 4 2 8 5
9 2 8 4 3 7 5 6 1
3 4 8 5 2 6 7 9 1
4 8 3 5 9 6 7 1 2
7 1 2 5 6 8 9 3 4
6 7 8 9 4 2 3 1 5

生成された数独(ナンプレ)は10個です。
数独(ナンプレ)生成にかかった時間は0.000000秒です。

を実現しましょう。
境界線がないと見にくいですから、
最終的には実行画面が、
* 1 6 9 * 2 8 3 * 7 5 4 *
* 4 7 3 * 9 5 6 * 2 1 8 *
* * * * * * * * * * * * *

* * * * * * * * * * * * *
* 6 9 8 * 5 1 2 * 4 3 7 *
* 3 1 4 * 8 7 9 * 6 2 5 *
* 5 2 7 * 3 6 4 * 8 9 1 *
* * * * * * * * * * * * *
* 7 3 6 * 4 2 5 * 1 8 9 *
* 9 4 1 * 6 3 8 * 5 7 2 *
* 2 8 5 * 7 9 1 * 3 4 6 *
* * * * * * * * * * * * *
* 8 5 2 * 1 4 7 * 9 6 3 *
* 1 7 3 * 9 8 6 * 2 5 4 *
* 4 6 9 * 2 5 3 * 7 1 8 *
* * * * * * * * * * * * *

生成された数独(ナンプレ)は10個です。
数独(ナンプレ)生成にかかった時間は0.000000秒です。

となるようにもっていきますが、
この境界線を引くことは、第6話の課題とすることにしましょう。



第1話へ 第3話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独(ナンプレ)で学ぶ VBA 入門

数独(ナンプレ)のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ