第3講 数独作成アプリVer.1開発その1
第5話 試行錯誤をやり直すときの問題点その3
ですから、
Dim cmx(8, 8) As Byte
Dim crlst(8, 8, 8) As Byte
Dim hth(8, 8) As Byte
は
Dim cmx(80, 8, 8) As Byte
Dim crlst(80, 8, 8, 8) As Byte
Dim hth(80, 8, 8) As Byte
と宣言しなければならないし、
For i = 0 To n - 1
If p(y(g), i) = 0 Then
hth(y(g), i) = 0
For j = 0 To mx(y(g), i)
If p(y(g), x(g)) = rlst(y(g), i, j) Then
If mx(y(g), i) = 0 Then
klk = 0
Exit Function
End If
hth(y(g), i) = 1
For k = 0 To n - 1
crlst(y(g), i, k) = rlst(y(g), i, k)
Next
cmx(y(g), i) = mx(y(g), i)
w = rlst(y(g), i, j)
rlst(y(g), i, j) = rlst(y(g), i, mx(y(g), i))
rlst(y(g), i, mx(y(g), i)) = w
mx(y(g), i) = mx(y(g), i) - 1
Exit For
End If
Next
End If
Next
・
Sub hukugen(g As Integer)
Dim i As Byte, j As Byte, ybs As Byte, xbs As Byte, isy As Byte, ia As Byte
For i = 0 To n - 1
If hth(y(g), i) = 1 Then
For j = 0 To n - 1
rlst(y(g), i, j) = crlst(y(g), i, j)
Next
mx(y(g), i) = cmx(y(g), i)
End If
Next
・
・
・
は
For i = 0 To n - 1
If p(y(g), i) = 0 Then
hth(g, y(g), i) = 0
For j = 0 To mx(y(g), i)
If p(y(g), x(g)) = rlst(y(g), i, j) Then
If mx(y(g), i) = 0 Then
klk = 0
Exit Function
End If
hth(g, y(g), i) = 1
For k = 0 To n - 1
crlst(g, y(g), i, k) = rlst(y(g), i, k)
Next
cmx(g, y(g), i) = mx(y(g), i)
w = rlst(y(g), i, j)
rlst(y(g), i, j) = rlst(y(g), i, mx(y(g), i))
rlst(y(g), i, mx(y(g), i)) = w
mx(y(g), i) = mx(y(g), i) - 1
Exit For
End If
Next
End If
Next
・
Sub hukugen(g As Integer)
Dim i As Byte, j As Byte, ybs As Byte, xbs As Byte, isy As Byte, ia As Byte
For i = 0 To n - 1
If hth(y(g), i) = 1 Then
For j = 0 To n - 1
rlst(y(g), i, j) = crlst(g, y(g), i, j)
Next
mx(y(g), i) = cmx(g, y(g), i)
End If
Next
・
・
・
でなければならないのです。
それでは、皆さん疑似数独作成ソフトを作って下さい。
ただし、
If g + 1 < hintosu Then
sds (g + 1)
If cn = 1 Then Exit Sub
Else
If g + 1 < n * n Then
sds (g + 1)
If cn = 1 Then Exit Sub
Else
hyouji '問題表示プロシージャ
cn = cn + 1
Exit Sub
End If
End If
が正しいのですが、
n * nのままだと待てども待てども数独は出てきません。
ですから、そこは40ぐらいにしておきましょう。
40にする場合は40セルしか埋まらなかったということです。
0となっているところは埋まらなかったセルです。
n * nのままでも7,8時間ぐらい待てば出てくるのかも知れませんが、
私は実験を途中で打ち切ってしまいました。
数秒できるようになるには2つの工夫が必要です。
たった2つの工夫で、6時間かけても解けなかった数独が、
数秒で解けるようになるのです。
さらに、第4部の講義の進展と共にどんどん解くスピードが速くなっていって、
最終的には0.01秒以内で解けるようになるのです。
eclipse c++ 入門
魔方陣 数独(ナンプレ)で学ぶ VBA 入門
数独(ナンプレ)のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ