C/Visual C - Damas Inglesas

 
Vista:

Damas Inglesas

Publicado por Markos (1 intervención) el 01/12/2011 08:01:08
Necsito un menu donde tenga la opcion d ejugar, ayuda y salir
y en el codigo en la validacion necesito que cuando haga una jugada que no se puede vuelva a pedir el turno al mismo jugador, y cuando llege un pion a reyna cambie la letra, y por ultimo que diga cuando gano alguine
este es el codigo
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>
int const T = 8;
int turno = 1;
char tablero[T][T];
//LLENAMOS EL TABLERO DE DAMAS INGLESAS


int llenarTablero()
{
for(int i = 0; i < T; i++)
for(int j = 0; j < T; j++)//Definimos la matriz de 8 filas y 8 columnas y T es una constante entera de 8
{
if (i < 3 && ((i + j) % 2 == 0))//Aqui ponemos la condicion de si i <3 osea en la matriz sea abajo de la columna 3 osea 0,1,2
tablero[i][j] = 'R'; // y el % 2==0 es para saltar cada cuadro empezando por el 1 ejemplo R cuadro R cuadro
else
if ((i > 4) && ((i + j) % 2 == 0))//Aqui ponemos la condicion de si i >4 osea del 5 al 8 empieza y % 2==0 para saltar cuadro
tablero[i][j] = 'B';
else
tablero[i][j] = '*' ;//Aqui imprime con el * lo demas despues de cumplir las 2 anteriores condiciones
}
}
void pausar()
{
printf("\nPrecione 'c' para continuar...");//Esta sirve para continuar asiendo el ciclo
while(getchar() != 'c');
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
//IMPRIMIR TABLERO YA ECHO ANTERIORMENTE
int imprimirTablero()
{
system("cls");//SIrve para limpar la pantalla en windows en linux es clear
for(int i = 0; i < T; i++)//Indica que el ciclo lo hasga menor que 8
{
if (i == 0)
{
printf(" ");
for (int k = 0; k < T; k++)
printf(" %i ", k);
printf("\n");
}
printf("%i ", i);
for(int j = 0; j < T; j++)
{
printf(" %c ", tablero[i][j]);
}
printf("\n");
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//VALIDACION DE COMO MOVER LAS PIEZAS
int moverPieza(int x, int y, int direccion)
{

if (!turno)
{
if (tablero[x][y] != 'R')
{
printf("No existe pieza Roja en la posicion %i %i \n", x, y);
}
else
{
printf("Direccion %i \n", direccion);
if (direccion == 1 && (y - 1) >= 0 && (x + 1) < 8)
{
if (tablero[x + 1][y - 1] == '*')
{
tablero[x][y] = '*';
tablero[x + 1][y - 1] = 'R';
}
else
if(tablero[x + 1][y - 1] == 'B' && tablero[x + 2][y - 2] == '*')
{
tablero[x][y] = '*';
tablero[x + 1][y - 1] = '*';
tablero[x + 2][y - 2] = 'R';
printf("La pieza Roja se comio la pieza Blanca en %i %i \n", x + 1, y - 1);
}
else
printf("La pieza no puede moverse a una casilla ocupada");
}
else
{
if (direccion == 1)
printf("La pieza no puede moverse pues sale del tablero");
}
if (direccion == 2 && (y + 1) < 8 && (x + 1) < 8)
{
if (tablero[x + 1][y + 1] == '*')
{
tablero[x][y] = '*';
tablero[x + 1][y + 1] = 'R';
}
else
if(tablero[x + 1][y + 1] == 'B' && tablero[x + 2][y + 2] == '*')
{
tablero[x][y] = '*';
tablero[x + 1][y + 1] = '*';
tablero[x + 2][y + 2] = 'R';
printf("La pieza Roja se comio la pieza Blanca en %i %i \n", x + 1, y + 1);
}
else
printf("La pieza no puede moverse a una casilla ocupada");
}
else
{
if (direccion == 2)
printf("La pieza no puede moverse pues sale del tablero");
}
}
}
else
{
if (tablero[x][y] != 'B')
{
printf("No existe pieza Blanca en la posicion %i %i \n", x, y);
}
else
{
if (direccion == 1 && (y - 1) >= 0 && (x - 1) >= 0)
{
if (tablero[x - 1][y - 1] == '*')
{
tablero[x][y] = '*';
tablero[x - 1][y - 1] = 'B';
}
else
if(tablero[x - 1][y - 1] == 'R' && tablero[x - 2][y - 2] == '*')
{
tablero[x][y] = '*';
tablero[x - 1][y - 1] = '*';
tablero[x - 2][y - 2] = 'B';
printf("La pieza Blanca se comio la pieza Roja en %i %i \n", x - 1, y - 1);
}
else
printf("La pieza no puede moverse a una casilla ocupada");
}
else
{
if (direccion == 1)
printf("La pieza no puede moverse pues sale del tablero");
}
if (direccion == 2 && (y + 1) < 8 && (x - 1) >= 0)
{
if (tablero[x - 1][y + 1] == '*')
{
tablero[x][y] = '*';
tablero[x - 1][y + 1] = 'B';
}
else
if(tablero[x - 1][y + 1] == 'R' && tablero[x - 2][y + 2] == '*')
{
tablero[x][y] = '*';
tablero[x - 1][y + 1] = '*';
tablero[x - 2][y + 2] = 'B';
printf("La pieza Blanca se comio la pieza Roja en %i %i \n", x + 1, y + 1);
}
else
printf("La pieza no puede moverse a una casilla ocupada");
}
else
{
if (direccion == 2)
printf("La pieza no puede moverse pues sale del tablero");
}
}
}
pausar();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//AQUI EMPEZAMOS A JUGAR YA CON LAS REGLAS ANTERIORES
int jugar()
{
int x, y, direccion;
imprimirTablero();
if (turno)
{
printf("Seleccione la ficha Roja que desea mover...\n");
turno = 0;
}
else
{
printf("Seleccione la ficha Blanca que desea mover...\n");
turno = 1;
}
printf("\tIntroduzca la fila: ");
scanf("%i", &x);
printf("\tIntroduzca la columna: ");
scanf("%i", &y);
printf("\tElija la direccion del movimiento, Izquierda (1) Derecha (2): ");
scanf("%i", &direccion);
moverPieza(x, y, direccion);
return 1;
}
////////////////////////////////////////////////////////////////////////////////////////////////
//EL RETONOR AL JUEGO DESPUES DE CADA JUGADA

int main(){
system("cls");
llenarTablero();
while(jugar());
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder