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 C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sudoku
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Sudoku  (Leído 5,665 veces)
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Sudoku
« Respuesta #10 en: 23 Noviembre 2014, 07:27 am »

Exacto por eso les pregunto xq no tengo idea de que mas podria hacer de acuerdo a mi nivel de conocimiento actual


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Sudoku
« Respuesta #11 en: 24 Noviembre 2014, 01:17 am »

Publiqué un tema de esto mismo hace poco pero en python 0% aleatorio

Ve el código,  analizalo y ve que puedes aplicar


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Sudoku
« Respuesta #12 en: 24 Noviembre 2014, 04:13 am »

Código
  1. import pprint
  2.  
  3. #crea array bidimensiona
  4. def create_matrix(m, n): return [[0]*n for _ in xrange(m)]
  5.  
  6. #gira la matriz ccw
  7. def rotar_matrix(matrix):
  8.  matrix_auxiliar = create_matrix(9,9)
  9.  for x in range(9):
  10.    for y in range(9):
  11.      matrix_auxiliar[y][x] = matrix[x][y]
  12.  return matrix_auxiliar
  13.  
  14.  
  15.  
  16. def generar_tablero(semilla):
  17.  #se genera un sudoku base sobre el que aplicar transformaciones
  18.  basesudoku = create_matrix(9,9)
  19.  for y in range(9):
  20.    for x in range(9):
  21.      basesudoku[y][x]= (x+(y%3)*3+(y/3))%9+1
  22.  #declaracion e inicializacion de variables
  23.  #variables de transformacion
  24.  #desplazamiento del 0 al 8
  25.  desplazamiento = 0
  26.  #rotacion del 0 al 3
  27.  rotacion = 0
  28.  #combinacion cada elemento del 0 al 5
  29.  combinacion = [0,0,0,0,0,0,0,0]
  30.  
  31.  #numero generatriz de 0 60466175
  32.  desplazamiento = semilla%9
  33.  semilla /=9
  34.  rotacion = semilla%4
  35.  semilla /=4
  36.  for i in range(8):
  37.    combinacion[i] = semilla%6
  38.    semilla /= 6
  39.  
  40.  #sudoku final
  41.  sudoku = create_matrix(9,9)
  42.  
  43.  #auxiliar para copiar elementos
  44.  auxiliar = create_matrix(3,9)
  45.  
  46.  #posibles combinaciones de 3 elementos
  47.  combinatorias = create_matrix(6,3)
  48.  combinatorias = [[0,1,2],[1,2,0],[2,0,1],[1,0,2],[0,2,1],[2,1,0]]
  49.  
  50.  #combinacion para cada elemento segun combinacion escogida
  51.  combinador = create_matrix (8,3)
  52.  for i in range(8):combinador[i] = combinatorias[combinacion[i]]
  53.  
  54.  #modificacion de matriz por desplazamiento lateral con desp
  55.  for y in range(9):
  56.    for x in range(9):
  57.      sudoku[y][x] = basesudoku[y][(x+desplazamiento)%9]
  58.  
  59.  #mecla lineas de 3 en 3 segun combinacion
  60.  for z in range(3):
  61.    for copia in range(3): auxiliar[copia] = sudoku[z*3+copia]
  62.    for y in range(3):
  63.      sudoku[z*3+y] = auxiliar[combinador[z][y]]
  64.  
  65.  #se copia sudoku en auxiliar
  66.  auxiliar = sudoku[:]
  67.  
  68.  #se mezclan los 3 renglones mayores
  69.  for z in range(3):
  70.    for y in range(3):
  71.      sudoku[z*3+y] = auxiliar[combinador[3][z]*3+y]
  72.  
  73.  #se rota la matriz para aplicar conversiones en otro eje
  74.  sudoku = rotar_matrix(sudoku)
  75.  
  76.  #se repite el proceso
  77.  for z in range(3):
  78.    for copia in range(3): auxiliar[copia] = sudoku[z*3+copia]
  79.    for y in range(3):
  80.      sudoku[z*3+y] = auxiliar[combinador[z+4][y]]
  81.  
  82.  auxiliar = sudoku[:]
  83.  
  84.  for z in range(3):
  85.    for y in range(3):
  86.      sudoku[z*3+y] = auxiliar[combinador[7][z]*3+y]
  87.  
  88.  #se endereza la matriz a su orientacion original
  89.  for i in range(3): sudoku = rotar_matrix(sudoku)
  90.  
  91.  #se le da la orientacion indicada en rot
  92.  for i in range(rotacion): sudoku = rotar_matrix(sudoku)
  93.  return sudoku
  94.  
  95. pprint.pprint( generar_tablero(0) )
  96.  

Si te soy sincero no sabría como tomar algo de alli a dev c++, entiendo algunas cosas pero no sabria como pasarla.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Sudoku
« Respuesta #13 en: 24 Noviembre 2014, 04:38 am »

Pequeña introducción

Código
  1. for i in range(x)
Sería
Código
  1. for(i=0;i<x;i++)

De resto no hay llaves sino espacios a la izquierda y create_matrix es para crear un array bidimensional

Creo que hay debuggers online,intentalo  ;)
« Última modificación: 24 Noviembre 2014, 04:41 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Jaua10

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Re: Sudoku
« Respuesta #14 en: 24 Noviembre 2014, 05:23 am »

gracias mano
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sudoku.. « 1 2 »
Programación Visual Basic
loco! 16 7,742 Último mensaje 3 Junio 2006, 13:40 pm
por karmany
Sudoku
Programación C/C++
Jorge1452 1 1,626 Último mensaje 4 Diciembre 2014, 15:19 pm
por _Enko
sudoku
Programación C/C++
cesar2015 3 1,986 Último mensaje 8 Noviembre 2015, 21:04 pm
por ivancea96
sudoku en dev c++
Programación C/C++
andres timo 2 3,333 Último mensaje 3 Marzo 2019, 02:50 am
por andres timo
javascript - Generador Sudoku
Desarrollo Web
TickTack 1 2,205 Último mensaje 4 Enero 2020, 16:22 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines