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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Puzzle 8
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Puzzle 8  (Leído 2,436 veces)
Luis100710

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Puzzle 8
« en: 15 Abril 2014, 18:03 pm »

Buenas dias a todos, espero puedan ayudarme. Necesito hacer un puzzle 8 de proyecto para la universidad, alguien podria ayudarme?  :-(


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Puzzle 8
« Respuesta #1 en: 15 Abril 2014, 18:05 pm »

Buenas dias a todos, espero puedan ayudarme. Necesito hacer un puzzle 8 de proyecto para la universidad, alguien podria ayudarme?  :-(
No se hacen tareas, se resuelven dudas/Problemas.


En línea

erickgracia

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Puzzle 8
« Respuesta #2 en: 16 Abril 2014, 00:29 am »

yo una vez hize algo similar a lo que buscas:

las funciones que puedes hacer es generar numeros de al cuadrado de numero que tenga de largo la cuadricula (N). en este caso seria 3*3, Y guardarlo en una matriz que represente el rompezcabezas dejando el espacio mas grande de la matriz como 0.

algo como esto:
Código:
void generar_puzzle(int puzzle[N][N]){

     int i,j,num;
     num=1;
     for(i=0;i<N;i++){
          for(j=0;j<N;j++){
               puzzle[i][j]=num;
               num++;
               if(i==3 && j==3){
               puzzle[i][j]=0;
   }
          }
     }
}




luego seria otra funcion para intercambiar el espacio de la matriz que guarda el valor de 0 ya sea con el de la izquierda cambiando el valor de las matricez por el de una posicion antes, derecha con el de una posicion despues, de arriba con el de una posicion menos en el otro eje de la matriz y viceversa para abajo de acuerdo a una entrada hecha por el teclado de acuerdo al codigo ascii.(tambien hay que tomar en cuenta las excepciones, ya que no puede subir uno el espacio vacio una casilla mas si esta se encuentra en la fila de hasta arriba por ejemplo)



el siguiente paso, serìa una funciòn para desordenar el puzzle para que no empiece resuelto, llamando la funcion anterior de intercambiar los valores de las matrices una cantidad determinada por un ciclo, y que seleccione cualquiera de las 4 opciones (arriba, abajo, izquierda, derecha) de manera aleatoria.



lo que restaria es imprimir la matriz en pantalla en el orden que se ha estado trabajando mediante dos for

Código:
void imprimir(int puzzle[N][N]){
     int i,j;
     for(i=0;i<N;i++){
          for(j=0;j<N;j++){
               if(puzzle[i][j]==0)
               printf(" |");
               else
               printf("%3d |",puzzle[i][j]);
               }
          printf("\n");
          if(i<N-1)
          printf("\t\t\t ------+-----+-----+------\n");
          }
     }


asi quedaria la impresion mas o menos con  una cuadricula






por ultimo serìa una funciòn que detectara cuando el puzzle esta ordenado, para indicar que se ha trerminado el juego.


espero que te sirva. :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Puzzle en dev c++
Programación C/C++
brikejedek 2 10,083 Último mensaje 22 Noviembre 2010, 00:16 am
por brikejedek
Puzzle 8 en c
Programación C/C++
twins 0 2,846 Último mensaje 21 Junio 2012, 23:27 pm
por twins
Crear una puzzle en c sharp
Programación C/C++
thinlizzy 1 3,753 Último mensaje 25 Agosto 2012, 05:40 am
por durasno
Puzzle 8 mi algoritmo sera eficiente? o no lo es?
Programación C/C++
nolasco281 7 5,632 Último mensaje 16 Abril 2014, 22:28 pm
por NikNitro!
juego slide puzzle
Programación C/C++
ereo 1 1,580 Último mensaje 21 Febrero 2016, 11:30 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines