第23講 数独を解くソフトVer.1の制作
第1話 数独を解くソフトVer.0の制作
前講で、数独解答を作らせるプログラムを作成させました。
そのプログラムを使えば、数独問題など簡単に解けるでしょうか。
問題を取り込むのにはどうしたらよいでしょうか。
問題を取り込むので、ブロック境界線は消しておきます。
数独の問題では、罫線などでブロックがわかるようになっているからです。
Sub f(g As Integer)
・
・
・
If g + 1 < 81 Then
f (g + 1)
Else
cna = cn Mod 9
cns = Int(cn / 9)
z = 0
For j = 0 To 9
If j Mod 3 = 0 Then
For k = 0 To 12
Cells(7 + 14 * cns + j + zy, 1 + 14 * cna + k) = "*"
Next
zy = zy + 1
End If
If j < 9 Then
zx = 0
For k = 0 To 9
If k Mod 3 = 0 Then
Cells(7 + 14 * cns + j + zy, 1 + 14 * cna + k + zx) = "*"
zx = zx + 1
End If
If k < 9 Then Cells(7 + 14 * cns + j + zy, 1 + 14 * cna + k + zx) = m(j, k)
Next
End If
Next
・
・
・
のピンクの部分を
For j = 0 To 8
For k = 0 To 8
Cells(7 + 10 * cns + j, 1 + 10 * cna + k) = m(j, k)
Next
Next
と変更すればブロック境界線は消えます。
問題を取り込みには、
Sub dainyuu()
Dim i As Byte, j As Byte
For i = 0 To 8
For j = 0 To 8
m(i, j) = Cells(3 + i, 2 + j)
Next
Next
For i = 0 To 8
For j = 0 To 8
If m(i, j) < 1 Then
m(i, j) = 0
End If
Next
Next
End Sub
というプロシージャを作れば取り込むことができます。
取り込んで問題を解かせるにはどうしたらよいでしょうか。
第22講第6話へ 第2話へ
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る