中級者ためのVisual Studio Community 2022 C++による
マルチスレッド版数独自動生成ソフトの開発解説講座


講義に入る前に、一番下にマルチスレッド版数独自動生成ソフトの体験の仕方が説明してありますから
説明に従ってソフトを体験してから講義の方に入ってください。

本講座は、エクセル2016VBA講義の第5部数独自動生成ソフトに関する講義
編集して再利用しています。
注 コピペしてエラーする場合にはテキストファイルを開いてコピペしてください。
HTMLファイルをコピペしてエラーするケースは

赤の四角でのところに全角スペースが入っている場合ですので、
赤線の波線が出ている場合はDeleteキーかBackspaceで詰めて

とすればビルドエラーないしはデッバクエラーは回避できます。
尚、ホームページビルダー22だと全角スペースを使ってもビルドエラーはしません。
旧バージョンではエラーしましたからジャストシステムが何か工夫を加えてエラーしないようになっています。

第1講 序章(数独自動生成を実現するための課題)

第1話 数独の成立条件
第2話 数独生成のための実際的な手順
第3話 ヒント数0の問題をいかに解くか?
第4話 問題作成における数字の配置はいかにするの?
第5話 最難関課題-いかにして理詰めで解ける問題を選び出すか

第2講 試行錯誤法でヒント数0数独の解答を作る(1)

第1話 順列作成プログラム
第2話 3次順列自動生成ソフト
第3話 4次順列自動生成ソフト
第4話 5次順列自動生成ソフト
第5話 1からnまでの和を関数の再帰的使用によって実現する
第6話 n次順列の自動生成
第7話 3次順列のトレース第1回
第8話 3次順列のトレース第2回
第9話 3次順列のトレース第3回
第10話 3次順列のトレース第4回
第11話 9次順列から3次魔方陣を生成させるにはどうしたらよいか?
第12話 3次魔方陣自動生成

第3講 試行錯誤法でヒント数0数独の解答を作る(2)

第1話 *によってブロックがわかるようにする
第2話 81次順列を2次元に並べる
第3話 疑似疑似数独の実現
第4話 疑似数独の実現
第5話 数独の実現
第6話 行・列・ブロックの重複検査をして異常がないときには〇を表示させる
第7話 疑似乱数を使い毎回異なる数独が生成されるようにする
第8話 自然に数字を配置するには①
第9話 自然に数字を配置するには②
第10話 謎解き
第11話 ヒントの数字を置く場所以外は空欄にする(2023年9月17日に変更しました)

第4講 ヒントとなる数字が入っている数独を解く!
第1話 全セルリスト構造解析(2023年9月17日に変更しました)
第2話 リスト構造解析をするためのヒント
第3話 セル(0,1)のリスト構造解析(2023年9月17日に変更しました)

第4話 0行のセルリスト構造解析
第5話 全体構造解析 = 全セルリスト構造解析
第6話 候補数字の個数が低い順にランキング2023年9月28日に更新
第7話 候補数字の個数が一番低いセルを探し出して次に入力する欄(セル)を明らかにする2023年9月28日に更新
第8話 部分構造解析が難しい理由
第9話 完成したコードを先に披露!2023年10月8日に更新

第5講 第4講で完成させたプログラムコードの解説
第1話 第4講で完成させたプログラムコードの謎
第2話 Ⅰ.単セル解析(候補数字探索)で行った部分解析はなぜ逆部分解析を必要としないのか①
第3話 Ⅰ.単セル解析(候補数字探索)で行った部分解析はなぜ逆部分解析を必要としないのか②
第4話 Ⅰ.単セル解析(候補数字探索)で行った部分解析はなぜ逆部分解析を必要としないのか③
第5話 トレース①
第6話 トレース②
第7話 トレース③
第8話 Ⅱ.そもそもそのキャンセルとは何か①
第9話 Ⅱ.そもそもそのキャンセルとは何か②
第10話 試行錯誤法第2案
6講 残された課題の解消とマルチスレッド化
第1話 残された課題

第2話 ランダムの度合いをあげて問題を解いている方が傾向を予想できないようにする
第3話 唯一解または複数解の判定と数独作成時間・数独解法時間の表示
第4話 シングルスレッド数独自動生成ソフトの完成?

第5話 シングルスレッドソフト公開
第6話 C++とVBAの協働
第7話 C++シングル全文
第8話 C++マルチスレッド版全文2023年11月15日訂正
第7講 左右対称・上下対称・点対称にも左右にも上下にも対称(線対称かつ点対称と同じ)・ハート型
第1話 ナンプレ月刊誌はなぜ対称形を選ぶのか?
第2話 よもやま話
第3話 左右対称形・上下対称形を実現するための考え方 2023年10月31日訂正
第4話 左右対称形・上下対称形のコード例 2023年10月31日訂正
第5話 点対称形のコード例 問題を解消することができました。2023年11月3日訂正
第6話 左右にも上下にも対称(完全対称)
第7話 ハート型 2023年11月 6日間違いを訂正

第8講 ハート型・左右上下対称形・点対称形・上下対称性形・上下対称形第2案と問題から解答へ
第1話 ハート型第2案
第2話 左右にも上下にも対称第2案
第3話 点対称第2案
第4話 上下対称第2案
第5話 左右対称第2案
第6話 ソフト作り
第7話 問題から解答へのための課題
第8話 問題から解答を作る方式全文
第9話 関数fと関数sudokukaihoの変更部分

第10話 部分解析解説
第9講 理詰め解法エンジンの開発
第1話 理詰めとは何か
第2話 同じ紙を9枚用意し、それぞれのスレッドが色塗りをする
第3話 色塗りを実現するプログラム
第4話 確かめを派生スレッドで行う!



-----------------------------------------------------
本講座で開発するソフトの体験の仕方

マルチスレッド版数独自動生成ソフト


上の『マルチスレッド版数独自動生成ソフト』をクリックします。
次に、
タスクバーのをクリックして
エクスプローラーを起動して

ダウンロードをダブルクリックします。

すると、sudokuという圧縮ファイルが出てきます。
sudoku右クリックして、

すべて展開をクリックします。

赤い囲いのところをC:\sudoku(コピペしてください)に変更して
展開をクリックします。
すると圧縮ファイルが解凍され、sudokuというフォルダがC:\上に展開されます。

すべてブロックされていますので、以下の手順でブロックを外します。

20をダブルクリック

実行しないをクリック

20のところで右クリック

プロパティをクリック

許可するにチェックマークを入れます。

OKをクリックします。
これでブロックが外れます。

確認のために20をダブルクリックします。

黒い画面が立ち上がればブロックが外されていますので、×をクリックして閉じます。

赤枠の21以下について同様の作業をします。
24あたりになると黒い画面は自動的に閉じられてしまうでしょうが、
黒い画面が立ち上がった時点でブロックは外されていますので問題はありません。
最後のsudokuについてはダブルクリックすると

の画面が現れます。編集を有効にするを押してから
×によって閉じてください。
そして、を右クリックしプロパティをクリックして、


許可するにチェックマークをいれてからOKしてください。
念のためにをもう一度ダブルクリックして

実行ボタンをクリックして数独ができればブロックが外されたことが確認できます。
最後にデスクトップにショートカットを作っておくことをお勧めします。
デスクトップ上で右クリック→新規作成→ショートカットの順に進み

項目の場所をC:\sudoku\sudoku.xlsm(コピペしてください)として次へをクリックして


ショートカットの名前を数独自動生成ソフトなどとして完了ボタンを押せば、
デスクトップに数独自動生成ソフトのショートカットができて、

それをダブルクリックによって、

起動させるとわかりますが、本ソフトは解答場所を2つ用意しています。
失敗してしまったときのためです。
解答場所1を利用すると正答の場合にはB43~J51のすべてのセルが 0 になります。
ですから失敗した場合には問題ないしは解答場所2をコピペする手もあります。

ソフトが起動します。
ヒント数を入力して実行ボタンを押すと

数独が生成されます。
このソフトは100%理詰めで解ける数独を生成しますので
数独を楽しんでください。
-----------------------------------------------------