elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda - Algoritmo Sudoku
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda - Algoritmo Sudoku  (Leído 5,550 veces)
VonN

Desconectado Desconectado

Mensajes: 151


Learnin' Python&C++


Ver Perfil
Ayuda - Algoritmo Sudoku
« en: 10 Julio 2009, 04:16 am »

Hola, estoy haciendo un sudoku. Me falta la parte para comprobar que un número "x" , no se repita en su cuadro de 3x3, me imagino que sabrán a que me refiero, aquellos que lo sepan jugar. He logrado hacer la comprobación por filas y columnas.

La parte que está comentada es la supuesta búsqueda pero mal hecha.
La parte de la definición de la matriz cuadros correponde a los elementos que se encuentran en cada cuadro de 3x3.

Alguna ayuda?

Código
  1. Dim cuadros(9, 9) As Integer
  2. Private Sub Cmd_Comprobar_Click()
  3. For i = 0 To 80
  4.    fila = i \ 9
  5.    columna = i Mod 9
  6.    For j = fila * 9 To (fila * 9) + 8
  7.        If i <> j Then
  8.            If Command1(j).Caption = Command1(i).Caption Then
  9.                Command1(i).FontBold = True
  10.            End If
  11.        End If
  12.    Next
  13.    For j = columna To 72 + columna Step 9
  14.        If i <> j Then
  15.            If Command1(j).Caption = Command1(i).Caption Then
  16.                Command1(i).FontBold = True
  17.            End If
  18.        End If
  19.    Next
  20.    'For k = i\3 To i\3
  21.     '   For j = 0 To 8
  22.      '      If cuadros(k, j) <> cuadros(fila, columna) Then
  23.       '         If (Command1(cuadros(k, j)).Caption = Command1(i).Caption) And (Command1(cuadros(k, j)).Caption <> "") Then
  24.        '            Command1(cuadros(k, j)).FontBold = True
  25.         '       End If
  26.          '  End If
  27.        'Next
  28.    'Next
  29. Next
  30. End Sub
  31.  
  32. Private Sub Cmd_LimpiarN_Click()
  33. For i = 0 To 80
  34.    Command1(i).FontBold = False
  35. Next
  36. End Sub
  37.  
  38. Private Sub Command1_Click(Index As Integer)
  39. Dim valor As Integer
  40. Command1(Index).FontBold = False
  41. valor = Val(InputBox("Ingresa numero", "Sudoku", ""))
  42. If valor > 0 And valor < 10 Then
  43.    Command1(Index).Caption = valor
  44. Else
  45.    Command1(Index).Caption = ""
  46. End If
  47. End Sub
  48.  
  49. Private Sub Form_Load()
  50. Dim i As Integer
  51. For i = 0 To 80
  52.    Command1(i).Caption = ""
  53. Next
  54. Cmd_Comprobar.Caption = "Comprobar"
  55. Cmd_LimpiarN.Caption = "Limpiar comprobación"
  56. cuadros(0, 0) = 0
  57. cuadros(0, 1) = 1
  58. cuadros(0, 2) = 2
  59. cuadros(0, 3) = 9
  60. cuadros(0, 4) = 10
  61. cuadros(0, 5) = 11
  62. cuadros(0, 6) = 18
  63. cuadros(0, 7) = 19
  64. cuadros(0, 8) = 20
  65. cuadros(1, 0) = 3
  66. cuadros(1, 1) = 4
  67. cuadros(1, 2) = 5
  68. cuadros(1, 3) = 12
  69. cuadros(1, 4) = 13
  70. cuadros(1, 5) = 14
  71. cuadros(1, 6) = 21
  72. cuadros(1, 7) = 22
  73. cuadros(1, 8) = 23
  74. cuadros(2, 0) = 6
  75. cuadros(2, 1) = 7
  76. cuadros(2, 2) = 8
  77. cuadros(2, 3) = 15
  78. cuadros(2, 4) = 16
  79. cuadros(2, 5) = 17
  80. cuadros(2, 6) = 24
  81. cuadros(2, 7) = 25
  82. cuadros(2, 8) = 26
  83. cuadros(3, 0) = 27
  84. cuadros(3, 1) = 28
  85. cuadros(3, 2) = 29
  86. cuadros(3, 3) = 36
  87. cuadros(3, 4) = 37
  88. cuadros(3, 5) = 38
  89. cuadros(3, 6) = 45
  90. cuadros(3, 7) = 46
  91. cuadros(3, 8) = 47
  92. cuadros(4, 0) = 30
  93. cuadros(4, 1) = 31
  94. cuadros(4, 2) = 32
  95. cuadros(4, 3) = 39
  96. cuadros(4, 4) = 40
  97. cuadros(4, 5) = 41
  98. cuadros(4, 6) = 48
  99. cuadros(4, 7) = 49
  100. cuadros(4, 8) = 50
  101. cuadros(5, 0) = 33
  102. cuadros(5, 1) = 34
  103. cuadros(5, 2) = 35
  104. cuadros(5, 3) = 42
  105. cuadros(5, 4) = 43
  106. cuadros(5, 5) = 44
  107. cuadros(5, 6) = 51
  108. cuadros(5, 7) = 52
  109. cuadros(5, 8) = 53
  110. cuadros(6, 0) = 54
  111. cuadros(6, 1) = 55
  112. cuadros(6, 2) = 56
  113. cuadros(6, 3) = 63
  114. cuadros(6, 4) = 64
  115. cuadros(6, 5) = 65
  116. cuadros(6, 6) = 72
  117. cuadros(6, 7) = 73
  118. cuadros(6, 8) = 74
  119. cuadros(7, 0) = 57
  120. cuadros(7, 1) = 58
  121. cuadros(7, 2) = 59
  122. cuadros(7, 3) = 66
  123. cuadros(7, 4) = 67
  124. cuadros(7, 5) = 68
  125. cuadros(7, 6) = 75
  126. cuadros(7, 7) = 76
  127. cuadros(7, 8) = 77
  128. cuadros(8, 0) = 60
  129. cuadros(8, 1) = 61
  130. cuadros(8, 2) = 62
  131. cuadros(8, 3) = 69
  132. cuadros(8, 4) = 70
  133. cuadros(8, 5) = 71
  134. cuadros(8, 6) = 78
  135. cuadros(8, 7) = 79
  136. cuadros(8, 8) = 80
  137. End Sub





En línea




Se toma por necios a aquellos que dicen lo que todos pesamos
VonN

Desconectado Desconectado

Mensajes: 151


Learnin' Python&C++


Ver Perfil
Re: Ayuda - Algoritmo Sudoku
« Respuesta #1 en: 10 Julio 2009, 04:18 am »

Tengan en cuenta que la definición de la matriz no es tan importante si se encuentra un algoritmo para buscar un elemento dentro de un cuadro de 3x3. Como verán se puede apreciar el algoritmo matemático para buscar elementos por filas y columnas, me imagino que existe uno para los cuadros 3x3 también, pero todavía no logro encontrarlo.

Muchas gracias por su ayuda.

PD: Traten de no ensuciar el post.


En línea




Se toma por necios a aquellos que dicen lo que todos pesamos
DarkItachi


Desconectado Desconectado

Mensajes: 516


Itachi Uchiha


Ver Perfil
Re: Ayuda - Algoritmo Sudoku
« Respuesta #2 en: 11 Julio 2009, 01:38 am »

Perdona que no aporte nada pero me parece increible que el 75% del code sean asignaciones de array.

PD: Acabo de leer lo de no ensuciar el post, perdona :S
« Última modificación: 11 Julio 2009, 01:41 am por Dudasamonton » En línea

Come to me when you have these eyes...

By more that you try it, a feather never will achieve to fly.
VonN

Desconectado Desconectado

Mensajes: 151


Learnin' Python&C++


Ver Perfil
Re: Ayuda - Algoritmo Sudoku
« Respuesta #3 en: 11 Julio 2009, 02:02 am »

Si lamentablemente no quería este tipo de mensajes.

Pero bien, la cosa es que no puedo encontrar un algoritmo matemático para reemplazarlo.
En línea




Se toma por necios a aquellos que dicen lo que todos pesamos
NsTeam

Desconectado Desconectado

Mensajes: 125


Ver Perfil
Re: Ayuda - Algoritmo Sudoku
« Respuesta #4 en: 11 Julio 2009, 02:13 am »

mira

te dejo 2        S.Code

para que te guies


http://www.sendspace.com/file/zdqcpf


Salu2
En línea

BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 3.140


I'Love...!¡.


Ver Perfil WWW
Re: Ayuda - Algoritmo Sudoku
« Respuesta #5 en: 11 Julio 2009, 02:28 am »

mira

te dejo 2        S.Code

para que te guies


http://www.sendspace.com/file/zdqcpf


Salu2


Tu archivo no tiene nada¡!
En línea




CScript (Actualizado 26/06/2013).

FileX <-- Re-modelando...
Web Principal-->[ Blog(VB6/C/C++) | Host File | Scan Port) ]

The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilit y el metal mi relig
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Ayuda - Algoritmo Sudoku
« Respuesta #6 en: 11 Julio 2009, 02:31 am »

Hola VonN tu idea me ha gustado, imagino que es open source asi que lo mejoraré... Mientras, aqui te dejo un algoritmo para búsqueda en cuadros de 3x3 utilizando tu matriz:

Código
  1. For i = 0 To 8
  2.    For j = 0 To 8
  3.        For k = 0 To 8
  4.            If j <> k Then
  5.                If Command1(cuadros(i, j)).Caption = Command1(cuadros(i, k)).Caption Then
  6.                    Command1(cuadros(i, j)).FontBold = True
  7.                End If
  8.            End If
  9.        Next
  10.    Next
  11. Next

Un saludo!
En línea

VonN

Desconectado Desconectado

Mensajes: 151


Learnin' Python&C++


Ver Perfil
Re: Ayuda - Algoritmo Sudoku
« Respuesta #7 en: 11 Julio 2009, 02:33 am »

Exactamente FSEND a eso me refería. Parece que hay gente que no lee bien los post aqui.

Bien, ahora podré completar el trabajo, ya me estoy comunicando por MP's contigo. Es open source  :xD, unicamente lo utilizo para practicar.

Un saludo!
En línea




Se toma por necios a aquellos que dicen lo que todos pesamos
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Ayuda - Algoritmo Sudoku
« Respuesta #8 en: 11 Julio 2009, 02:35 am »

 :xD Bien, espero tus mp's, ahora lo mejoraré.

Un saludo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] Sudoku « 1 2 3 »
Programación Visual Basic
Psyke1 25 9,558 Último mensaje 24 Septiembre 2011, 13:02 pm
por fary
ayuda con unos algoritmos de mi SUDOKU en Java :D
Java
Legnak 0 4,388 Último mensaje 29 Noviembre 2012, 19:53 pm
por Legnak
Algoritmo para resolver sudoku incomprensible
Programación C/C++
kutcher 1 1,427 Último mensaje 5 Noviembre 2014, 20:48 pm
por _Enko
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines