FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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.
|
#3
|
|||
|
|||
Cita:
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 |
#4
|
||||
|
||||
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. Última edición por Ñuño Martínez fecha: 07-10-2008 a las 08:44:16. |
#5
|
|||
|
|||
Cita:
Cita:
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 } } 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. |
#6
|
||||
|
||||
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
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 |
#8
|
||||
|
||||
Cita:
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
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; } } } 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"); } } Última edición por luisfco fecha: 26-10-2008 a las 15:16:19. |
|
|
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 [Germán.Estévez] | Noticias | 1 | 18-01-2006 16:18:35 |
Ajedrez gratis | Diegoval | Internet | 1 | 10-08-2004 17:02:06 |
|