SquareExp2 peuvent être 9 ou 16Comment simplifier ce code Sodoku?
place peut être 3 ou 4
La longueur du tableau de gridbox et gridbox1 peut être 0 à 80 ou de 0 à 255
(vous voyez le modèle maintenant)
Ce code est exécuté une seule fois, au début du programme.
For j = 0 To squareExp2 - 1
For i = 0 To squareExp2 - 1
box = (j * squareExp2) + i
gridbox(box) = ((j \ Square) * squareExp2 * Square) + ((j Mod Square) * Square) + (i \ Square) * squareExp2 + (i Mod Square)
gridbox1(gridbox(box)) = ((j \ Square) * squareExp2 * Square) + (((j Mod Square) * Square) * Square)
Next
Next
L'objectif du code ci-dessus est de déplacer le code de
k = (gridRow(pos) \ iSquare) * iSquare
l = (gridCol(pos) \ iSquare) * iSquare
For i = l To l + iSquare - 1
For j = k To k + iSquare - 1
box = (j * squareExp2) + i
foundNumber(grid(box)) = grid(box)
Next
Next
à
j = myGridbox1(i)
For x = j To j + squareExp2 - 1
foundNumber(grid(myGridbox(x))) = grid(myGridbox(x))
Next
* modifier *
à la fin
Dim Square2 As Integer = iSquare * iSquare
Dim Square3 As Integer = Square2 * iSquare
Dim Square4 As Integer = Square2 * Square2
Dim j2_offset As Integer = 0
For j2 As Integer = 0 To iSquare - 1
Dim j1_offset As Integer = 0
Dim j1_interleaved_offset As Integer = 0
For j1 As Integer = 0 To iSquare - 1
Dim i2_offset As Integer = 0
Dim i2_interleaved_offset As Integer = 0
Dim j_offset_value As Integer = j2_offset + j1_offset
For i2 As Integer = 0 To iSquare - 1
Dim offset_value As Integer = j_offset_value + i2_offset
Dim interleaved_value As Integer = j2_offset + i2_interleaved_offset + j1_interleaved_offset
For i1 As Integer = 0 To iSquare - 1
box = offset_value + i1
gridbox(box) = interleaved_value + i1
gridbox1(gridbox(box)) = j_offset_value
Next
i2_offset += iSquare
i2_interleaved_offset += Square2
Next
j1_offset += Square2
j1_interleaved_offset += iSquare
Next
j2_offset += Square3
Next
Mise à jour peu de suivi, quelques mois plus tard.
Il était un programme de sudoku et vous pouvez trouver où il utilisé here
pourquoi la demande de fermeture? – Fredou
Qu'est-ce que * fait *? – Tomalak
c'est quelque chose qui est utilisé dans un programme de sudoku pour trouver tous les autres nombres dans une "boîte" sans faire une double boucle chaque fois qu'il en a besoin, il est calculé au moment de l'exécution – Fredou