Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 05-10-2008
luisfco luisfco is offline
Registrado
 
Registrado: oct 2008
Posts: 4
luisfco Va por buen camino
Ayuda: tablero y piezas de ajedrez en c++ builder

Soy nuevo en programacion, quiero programar ajedrez en c++ builder, ya conosco la base de builder..

Nececito saber como empezar a contruir la base para el ajedrez es decir el tablero y como poner las piezas,
Yo lo estoy armandolo con una imagen grande el tablero y piezas sobrepuestas en el.


Sin embargo no veo muy bien como hacer que las piezas se muevan con respecto a una order con sus debidas restricciones,
o como tendria que darle a orden a la imagen que se mueva, o como debo armar el tablero y la piezas, para que actue como una matriz...
alguien me puede ayudar...


PD: Si alguien sabe como hacerlo podria especificar un poco como armarlo porfas, de antemano gracias

Responder Con Cita
  #2  
Antiguo 05-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.679
coso Va por buen camino
Hola, lo primero seria tener una matriz 8x8 y en ellas que estuvieran representadas las fichas (por ejemplo, una matriz de char y cada ficha una letra) y luego si eso representarla graficamente. Luego para los movimientos, calcular segun el tipo de letra y posicion los movimientos posibles, por ejemplo, una funcion que te devuelva un array de longitud indeterminada con las x,y donde puede ir la ficha. La verdad es que es bastante trabajo, lo mejor seria que o bien te basaras en un ejemplo o que fueses poniendo tus dudas concretas. Saludos.
Responder Con Cita
  #3  
Antiguo 07-10-2008
luisfco luisfco is offline
Registrado
 
Registrado: oct 2008
Posts: 4
luisfco Va por buen camino
Cita:
Empezado por coso Ver Mensaje
Hola, lo primero seria tener una matriz 8x8 y en ellas que estuvieran representadas las fichas (por ejemplo, una matriz de char y cada ficha una letra) y luego si eso representarla graficamente. Luego para los movimientos, calcular segun el tipo de letra y posicion los movimientos posibles, por ejemplo, una funcion que te devuelva un array de longitud indeterminada con las x,y donde puede ir la ficha. La verdad es que es bastante trabajo, lo mejor seria que o bien te basaras en un ejemplo o que fueses poniendo tus dudas concretas. Saludos.
Primero que nada muchas gracias por contestar..
No se si seria mucho pedir


me gustaria que me programaras la base es decir construir un tablero y una pieza que se mueva con respecto a una matriz, no importa que no tenga restricciones, como una pieza de ajedrez, solo quiero ver como hacerle que se mueva, y me lo mamdaras ami correo forfas,

creo que es mucho pedir, pero seria mas facil que explicar como declarar la variables como cordenadas de las imagenes para usarlo en una matriz y despues debolverlo como las cordenas donde se localizaria la imagen
Creo te tomarias menos de tiempo en hacerla que en explicarme xDD, ya asi yo solo tendre que interpretar lo que haz hecho...
saludos
PD: mi correo es luisfcoo@gmail.com
Responder Con Cita
  #4  
Antiguo 07-10-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Zona Libre de Madrid, Reino de Dick
Posts: 4.736
Ñuño Martínez Va por buen camino
Te recomendaría el libro de Tim Hartnel "El Libro Gigante de los Juegos para Ordenador", o sus partenaires, "El Libro Gigante de los Juegos para SpectrumZX" e "Inteligencia Artificial, Conceptos y Programas", si no fuera porque son imposibles de encontrar por ninguna parte. Incluyen la descripción de decenas de juegos, incluyendo Ajedrez, Damas y juegos de rol y simulación.

Y no pongas tu dirección de correo, salvo que te guste recibir SPAM, claro.
__________________
Proyectos actuales ----> Nuevo proyecto: http://www.burdjia.com/
Entorno de desarrollo ----> Materia gris.

Última edición por Ñuño Martínez fecha: 07-10-2008 a las 08:44:16.
Responder Con Cita
  #5  
Antiguo 07-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.679
coso Va por buen camino
Cita:
No se si seria mucho pedir

me gustaria que me programaras la base


Cita:
quiero programar ajedrez en c++ builder


la una y la otra son excluyentes...

un array en c++ (una matriz) podria ser

Código:
char Tablero[8][8];
;

por ejemplo para poner las fichas iniciales...

Código:
void Inicio;
{
       // negras
 
       Tablero[0][0] = Tablero [7][0] = "t"; // torres
       Tablero[1][0] = Tablero [6][0] = "c"; // caballos
       Tablero[2][0] = Tablero [5][0] = "a"; // alfiles
       Tablero[4][0] = "d" // dama
       Tablero[3][0] = "r" // rey
 
       // blancas
 
       Tablero[0][7] = Tablero [7][7] = "T"; // torres
       Tablero[1][7] = Tablero [6][7] = "C"; // caballos
       Tablero[2][7] = Tablero [5][7] = "A"; // alfiles
       Tablero[4][7] = "D" // dama
       Tablero[3][7] = "R" // rey
 
        // peones
       for (int i = 0;i<8;i++) 
       {  
             Tablero[i][1] = "p" // peon blanco
             Tablero[i][6] = "P" // peon negro
        }
}
etc...

lo mejor sera que sigas el consejo tambien de ñuño...echa un vistazo y busca mucha informacion de cada paso que vayas a hacer. Pon aqui, como mucho, las dudas concretas (¿Como se hace una matriz 8x8?¿Como dibujar una matriz a la pantalla?) etc...aunque como te decia al principio, lo mejor sera que te cojas un buen ejemplo (hay realmente mucho codigo abierto sobre juegos de ajedrez) y intentar entender cada paso. Saludos.
Responder Con Cita
  #6  
Antiguo 08-10-2008
Avatar de Neftali
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 13.323
Neftali Va por buen camino
Hola.
Primeramente, y viendo que eres nuevo por aquí, te daré unas recomendaciones. La primera que revises la Guía de estilo de los foros.

* No es necesario que escribas en negrita, la letra normal también se lee.
* Normalmente aquí no programamos a media. Eso quieres decir que te podemos ayudar, pero no solemos hacer los trabajos del resto de personas. * No contestamos por e-mail. La razón más sencilla, porque entonces la posibles respuestas no le servirán a otras personas con los mismos problemas o similares. Toda la información es buena que quede en los foros; La pregunta y las respuestas.

En cuanto a tu problema, creo que estás empezando la caso por la ventana. Personalmente creo que lo primero que deberías tener son la reglas básicas de movimientos permitidos. Y a partir de ahí generar los movimientos. Lo más sencillo en pintarlos en una matriz y mover las pieas.

Si aun así te interesa seguir por ese camino, en mi página web, en la sección de ejemplos hay uno llamado "Crear/destruir componentes (imagenes) en Runtime y moverlas con el ratón"; Puedes ver cómo crear imágenes y como moverlas por el formulario.
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 24-10-2008
luisfco luisfco is offline
Registrado
 
Registrado: oct 2008
Posts: 4
luisfco Va por buen camino
Gracias a todos por responder.

Ya estroy trabajando con el codigo para los movimientos de las piezas casi termino, digamos los movimientos basicos,

Pero mi duda es
Habra alguna forma para que que me busque automaticamente una imagen que se encuentra en una posicion (x,y) y que le aplique condiciones determinada

Si se puede ?

Podria yo hacer algo parecido, esto es para poder mover las imagenes[piezas] esque aun no se como hacerle para poder mover las imagenes sin referirme a una especificamente

De antemano gracias y un saludo a todos
Responder Con Cita
  #8  
Antiguo 26-10-2008
Avatar de Neftali
Neftali Neftali is offline
Aporreador de teclados
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 13.323
Neftali Va por buen camino
Cita:
Empezado por luisfco Ver Mensaje
Habra alguna forma para que que me busque automaticamente una imagen que se encuentra en una posicion (x,y) y que le aplique condiciones determinada

Si se puede ?

Creo que esa información deberás tenerla tú almacenada el alguna estructura. es la forma enque sabes en cada momento cómo va la partida. No acabo de enterderte muy bien.
Si te olvidas de las imágenes (eso debería ser lo último que te deberías preocupar), y pensaras en un tablero con letras, por ejemplo. En algun sitio deberás tener almacenado en cada casilla del tablero qué pieza hay. Luego ya pondrás las imágenes.
__________________
Neftalí -web - MyDropBox-
Guía de estilo, Guía alternativa, TAG's.
*Añade tu foto al Club*

(UPDATE) TrackInfo v.1.7b

Contactar con el Clubdelphi


P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 26-10-2008
luisfco luisfco is offline
Registrado
 
Registrado: oct 2008
Posts: 4
luisfco Va por buen camino
Tengo ya casi todo los movimientos yo hice esto para verlo mejor

Código:
 
int i,j,x;
        for (i=1;i<9;i=i+1)  //peones
        {
                StringGrid1->Cells[i-1][6]=1;
                StringGrid1->Cells[i-1][1]=-1;
        }
        //torres
        StringGrid1->Cells[0][0]=-5;
        StringGrid1->Cells[7][0]=-5;
        StringGrid1->Cells[0][7]=5;
        StringGrid1->Cells[7][7]=5;
        //caballos
        StringGrid1->Cells[1][7]=3;
        StringGrid1->Cells[6][7]=3;
        StringGrid1->Cells[1][0]=-3;
        StringGrid1->Cells[6][0]=-3;
        //alfiles
        StringGrid1->Cells[2][0]=-4;
        StringGrid1->Cells[5][0]=-4;
        StringGrid1->Cells[2][7]=4;
        StringGrid1->Cells[5][7]=4;
        //Rey
        StringGrid1->Cells[3][7]=10;
        StringGrid1->Cells[3][0]=-10;
        //Reyna
        StringGrid1->Cells[4][7]=8;
        StringGrid1->Cells[4][0]=-8;
 
        for (i=1;i<9;i=i+1) //celdas vacias
        {
                for (j=1;j<9;j=j+1)
                {
                if(StringGrid1->Cells[i-1][j-1].IsEmpty()==true)
                        {
                        StringGrid1->Cells[i-1][j-1]=0;
                        }
 
                 }
        }
Un ejemplo sobre el movimiento del caballo
Código:
//[col_ini][ren_ini] posicion inicial de caballo y [col_fin][ren_fin] donde se desea mover
if (StringGrid1->Cells[col_ini-1][ren_ini-1]==3)
{
  if ((((col_ini-col_fin==2)&((ren_ini-ren_fin==1)|(ren_ini-ren_fin==-1)))|((col_ini-col_fin==-2)&((ren_ini-ren_fin==1)|(ren_ini-ren_fin==-1)))|((col_ini-col_fin==1)&((ren_ini-ren_fin==2)|(ren_ini-ren_fin==-2)))|((col_ini-col_fin==-1)&((ren_ini-ren_fin==2)|(ren_ini-ren_fin==-2))))&(StringGrid1->Cells[col_fin-1][ren_fin-1]<=0))
   {
       StringGrid1->Cells[col_ini-1][ren_ini-1]=0;
       StringGrid1->Cells[col_fin-1][ren_fin-1]=3;
   }
   else
   {
                        ShowMessage("Movimiento Falso");
   }
}
Por esto ahora me preocupa como enlazar este movimiento a una imagen, es decir que me busque entre todos los caballo a quien deseo mover(quien esta en cordenada(x*col_ini,y*ren_ini), donde x,y seria el tamaño de la imagen si la esquina superior del tablero estaria en (0,0) de la ventana) espero y se entienda, bueno es la forma en que pienso ahora, no se si haria otra...

Última edición por luisfco fecha: 26-10-2008 a las 15:16:19.
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
jugar al ajedrez con el pc Wonni La Taberna 7 07-02-2007 21:44:02
Juegos de tablero metalfox6383 La Taberna 6 31-01-2007 18:45:49
Tablero de Control lucero_chivas C++ Builder 5 23-08-2006 16:59:31
¿Discos duros o piezas de lego? Neftali Noticias 1 18-01-2006 16:18:35
Ajedrez gratis Diegoval Internet 1 10-08-2004 17:02:06


La franja horaria es GMT +2. Ahora son las 11:15:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi