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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  Caballo Ajedrez JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Caballo Ajedrez JAVA  (Leído 5,384 veces)
Kacoae

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Caballo Ajedrez JAVA
« en: 17 Mayo 2013, 06:25 am »

Hola a todos:

Quería saber si de casualidad alguien tiene el código en JAVA donde el caballo se desplace por todas las 64 casillas del Ajedrez (8x8) sin repetir casillas.

Gracias!


En línea

Kacoae

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Caballo Ajedrez JAVA
« Respuesta #1 en: 17 Mayo 2013, 06:41 am »

AGREGO INFORMACIÓN:

He podido hacer (creo) el problema, pero en C. Casi no me relaciono con JAVA entonces haber si me podrian ayudar a pasarlo a JAVA.

Código:
#include <stdio.h>

#define N_CUADROS  8
#define N_SALTOS   8
#define CIERTO 1
#define FALSO  0

static int tablero_virtual[N_CUADROS+4][N_CUADROS+4];
static int dx[N_SALTOS]={ 2, 1,-1,-2,-2,-1, 1, 2};
static int dy[N_SALTOS]={ 1, 2, 2, 1,-1,-2,-2,-1};

static void inicia_tablero(void);
void presenta_tablero(void);
static int ensaya_movimiento(int n,int x,int y);


int main(void)
{

  inicia_tablero();
  printf("\ncalculando, espere por favor\n");
  if(ensaya_movimiento(1,2,2))
    printf("Resultado:");
  else
    printf("No hay soluci¢n");
  presenta_tablero();
  return 0;
}

static void inicia_tablero(void)
{
  int i,j;
  for(i=0;i<N_CUADROS+4;i++) {
    for(j=0;j<N_CUADROS+4;j++) {
      if(i>1 && i<N_CUADROS+2 && j>1 && j<N_CUADROS+2 )
           tablero_virtual[i][j]=0;
      else
           tablero_virtual[i][j]=-1;
    }
  }

}

void presenta_tablero(void)
{
  int i,j;

  for(i=0;i<N_CUADROS+4;i++) {
     printf("\n");
     for(j=0;j<N_CUADROS+4;j++) {
        if(tablero_virtual[i][j]!=-1)
         printf("%4d",tablero_virtual[i][j]);
     }
  }
  return;
}

static int ensaya_movimiento(int n,int x,int y)
{
  int i,u,v;
  tablero_virtual[x][y]=n;
  if(n==(N_CUADROS*N_CUADROS))
      return CIERTO;
  else {
    for(i=0;i<N_SALTOS;i++) {
      u=x+dx[i];
      v=y+dy[i];
      if(tablero_virtual[u][v]==0) {
        if(ensaya_movimiento(n+1,u,v))
          return CIERTO;
      }
   }
  }
  tablero_virtual[x][y]=0;
  return FALSO;
}

Gracias!


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Algoritmo movimiento caballo ajedrez
Programación C/C++
DarkItachi 6 25,915 Último mensaje 28 Noviembre 2011, 22:27 pm
por denix
problema con caballo de ajedrez!!! « 1 2 »
Programación C/C++
danic++ 18 13,177 Último mensaje 8 Diciembre 2010, 17:44 pm
por Littlehorse
Caballo del Ajedrez en JAVA
Ejercicios
Kacoae 2 17,491 Último mensaje 24 Febrero 2014, 14:47 pm
por gordo23
Pisar todas las fichas de un tablero de ajedrez con caballo[SOLUCIONADO]
Scripting
SARGE553413 1 2,893 Último mensaje 8 Junio 2014, 19:57 pm
por SARGE553413
Recorrido del caballo y lentitud al ejecutarlo en java
Java
nenea4 3 3,772 Último mensaje 25 Enero 2015, 15:04 pm
por 3n31ch
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines