第5講 第4講のプログラムエラー原因探索各アイテムの解説
第7話 全体リスト構造解析の一致・不一致を検証する検証Functionプロシージャkn
2つの全体リスト構造解析が一致しているか、
一致していないかを調べるには1つの困難があります。
それは、
2つの全体リスト構造解析は方式が異なるために、
有効範囲内に限定しても、
数字の順番が異なっているということです。
Total方式は小さい順に並んでいるのに対して、
Ver.1方式は、順番がアットランダムに思えるほど、
順番が異なっています。
2重ランダムにする方が、
自然な数独が早くできるだろうという判断から、
意図してとった方法ですが、
比較するときに困難があります。
コードを掲載しますので、その困難をいかに乗り越えたか考えて下さい。
Function kn()
Dim i As Byte, j As Byte, k As Byte, l As Byte, w As Byte
' For i = 0 To n_1
' For j = 0 To n_1
' If mx(i, j) <> ccmx(i, j) - 1 Then
' kn = 0
' Exit Function
' End If
' Next
' Next
Dim lst(8, 8, 8) As Byte
For i = 0 To n_1
For j = 0 To n_1
For k = 0 To n_1
lst(i, j, k) = rlst(i, j, k)
Next
Next
Next
For i = 0 To n_1
For j = 0 To n_1
For k = 0 To mx(i, j)
If mx(i, j) > 0 Then
For l = 0 To mx(i, j) - 1
If lst(i, j, l) > lst(i, j, l + 1) Then
w = lst(i, j, l)
lst(i, j, l) = lst(i, j, l + 1)
lst(i, j, l + 1) = w
End If
Next
End If
Next
Next
Next
For i = 0 To n_1
For j = 0 To n_1
If p(i, j) = 0 Then
For k = 0 To n_1
Cells(45 + i, 2 + 10 * j + k) = lst(i, j, k)
Next
For k = 0 To ccmx(i, j) - 1
'以下は、マクロの記録から学んだもの
Cells(45 + i, 2 + 10 * j + k).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'以上は、マクロの記録から学んだもの
Next
For k = ccmx(i, j) To n_1
'以下は、マクロの記録から学んだもの
Cells(45 + i, 2 + 10 * j + k).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.388845066682843
.PatternTintAndShade = 0
End With
'以上は、マクロの記録から学んだもの
Next
Else
For k = 0 To n_1
Cells(45 + i, 2 + 10 * j + k) = "*"
Next
End If
Next
Next
For i = 0 To n_1
For j = 0 To n_1
If p(i, j) = 0 Then
For k = 0 To mx(i, j)
If lst(i, j, k) <> ccrlst(i, j, k) Then
Cells(45 + i, 2 + 10 * j + k).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Exit Function
End If
Next
End If
Next
Next
kn = 1
End Function
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入門へ
本サイトトップへ