#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//Prototipos
void menu();
void reglas();
void fin_juego();
void Elegir_Bosque();
void Iniciar_Bosque();
void Actualizar_Juego();
void Bucle_Juego();
void mover_tirarflecha(int);
//Variables globales
char bosque6x6[6][6];
char bosque8x8[8][8];
char bosque10x10[10][10];
char bosque14x14[14][14];
char bosque18x18[18][18];
int opcion=0;
int tam_bosque=0;
int main()
{
while(opcion!=3)
{
menu();
switch(opcion)
{
case 1: Elegir_Bosque();
break;
case 2: reglas();
break;
case 3: fin_juego();
break;
}
}
return 0;
}
void menu()
{
printf(" ______ARQUEROS EN EL BOSQUE_______\n"); printf(" ____________OOOOOO________________\n"); printf(" _________OOOOOOOOOOOOO____________\n"); printf(" _____OOOOOOOOOOOOOOOOOOOO_________\n"); printf(" ___OOOOOOOOOOOOOOOOOOOOOOOO_______\n"); printf(" ___OOOOOOOOOOOOOOOOOOOOOOOO_______\n"); printf(" _____OOOOOOOOOOOOOOOOOOOO_________\n"); printf(" ______OOOOOOOOOOOOOOOOOO__________\n"); printf(" _________OOOOOOOOOOOO_____________\n"); printf(" __<----____OOOOOOOO_______________\n"); printf(" _____________OOOO_________________\n"); printf(" _____________OOOO_______---->_____\n"); printf(" _____________OOOO_________________\n"); printf(" _____________OOOO_________________\n"); printf(" Ingrese una de las opciones: \n"); printf(" 3.Salir del juego\n"); }
void reglas() //aca muestro las reglas. tiene que poder volver al menu anterior
{
printf("El juego consiste en eliminar al arquero del extremo opuesto. \n"); printf("Cada turno puede elegir moverse una casilla o lanzar un flechazo. \n"); printf("Los flechazos se mueven en linea recta, maximo cinco lugares.\n"); printf("Ni los jugadores ni los flechazos pueden atravezar los arboles(X)"); printf(" Al recibir un flechazo el jugador pierde el round, las partidas se componen de 3 round y las gana el que gane 2 de ellos.\n"); printf("Jugador primero sera identificado como 1 y jugador segundo como 2.\n"); char p;
printf (">>Presiona cualquier tecla y enter para volver al menu "); }
void fin_juego()
{
printf("\n\n\n\t\t\t* GRACIAS POR JUGAR! *\n\n\n"); printf("\t\t\t Sabrina Cabrera.\n \t\t\t Programacion.\n \t\t\t Tecnologo 2015\n\n"); }
void Elegir_Bosque()
{
int elige_bosque;
printf(" > Ingresa una opcion: <\n\n"); printf(" > 1- Bosque de 6 x 6 <\n"); printf(" > 2- Bosque de 8 x 8 <\n"); printf(" > 3- Bosque de 10 x 10 <\n"); printf(" > 4- Bosque de 14 x 14 <\n"); printf(" > 5- Bosque de 18 x 18 <\n"); scanf(" %d", &elige_bosque
);
switch(elige_bosque)
{
case 1: tam_bosque = 6;
Iniciar_Bosque();
Bucle_Juego();
break;
case 2: tam_bosque = 8;
Iniciar_Bosque();
Bucle_Juego();
break;
case 3: tam_bosque = 10;
Iniciar_Bosque();
Bucle_Juego();
break;
case 4: tam_bosque = 14;
Iniciar_Bosque();
Bucle_Juego();
break;
case 5: tam_bosque = 18;
Iniciar_Bosque();
Bucle_Juego();
break;
}
}
//valores iniciales para el bosque
void Iniciar_Bosque()
{
int Xnum=0;
int i, j;
if(tam_bosque == 6)
{
for(i = 0; i < tam_bosque;i++)
for(j = 0; j < tam_bosque;j++)
bosque6x6[i][j] = ' ';
bosque6x6[0][0] = '1';
bosque6x6[5][5] = '2';
while(Xnum < tam_bosque/2 )
{
i
= (rand() % tam_bosque
); j
= (rand() % tam_bosque
);
if(bosque6x6[i][j] == ' ')
{
bosque6x6[i][j] = 'X';
Xnum++;
}
}
}
else if(tam_bosque == 8)
{
for(i = 0; i < tam_bosque;i++)
for(j = 0; j < tam_bosque;j++)
bosque8x8[i][j] = ' ';
bosque8x8[0][0] = '1';
bosque8x8[7][7] = '2';
while(Xnum < tam_bosque/2 )
{
if(bosque8x8[i][j] == ' ')
{
bosque8x8[i][j] = 'X';
Xnum++;
}
}
}
else if(tam_bosque == 10)
{
for(i = 0; i < tam_bosque;i++)
for(j = 0; j < tam_bosque;j++)
bosque10x10[i][j] = ' ';
bosque10x10[0][0] = '1';
bosque10x10[9][9] = '2';
while(Xnum < tam_bosque/2 )
{
if(bosque10x10[i][j] == ' ')
{
bosque10x10[i][j] = 'X';
Xnum++;
}
}
}
else if(tam_bosque == 14)
{
for(i = 0; i < tam_bosque;i++)
for(j = 0; j < tam_bosque;j++)
bosque14x14[i][j] = ' ';
bosque14x14[0][0] = '1';
bosque14x14[13][13] = '2';
while(Xnum < tam_bosque/2 )
{
if(bosque14x14[i][j] == ' ')
{
bosque14x14[i][j] = 'X';
Xnum++;
}
}
}
else if(tam_bosque == 18)
{
for(i = 0; i < tam_bosque;i++)
for(j = 0; j < tam_bosque;j++)
bosque18x18[i][j] = ' ';
bosque18x18[0][0] = '1';
bosque18x18[17][17] = '2';
while(Xnum < tam_bosque/2 )
{
if(bosque18x18[i][j] == ' ')
{
bosque18x18[i][j] = 'X';
Xnum++;
}
}
}
}
//dibuja cuando sea necesario
void Actualizar_Juego()
{
if(tam_bosque == 6)
{
int i,j;
for (j = 0; j < tam_bosque;j++) //filas alfabeticas
for (i = 0;i < tam_bosque;i++) //columnas numeradas
{
for (j = 0;j < tam_bosque;j++)
{
printf("| %c", bosque6x6
[i
][j
]); }
}
}
else if( tam_bosque == 8)
{
int i,j;
for (j = 0;j < tam_bosque;j++) //filas alfabeticas
for (i = 0;i < tam_bosque;i++) //columnas numeradas
{
for (j = 0;j < tam_bosque;j++)
{
printf("| %c", bosque8x8
[i
][j
]); }
}
}
else if( tam_bosque == 10)
{
int i,j;
for (j = 0;j < tam_bosque;j++) //filas alfabeticas
for (i = 0;i < tam_bosque;i++) //columnas numeradas
{
for (j = 0;j < tam_bosque;j++)
{
printf("| %c", bosque10x10
[i
][j
]); }
}
}
else if( tam_bosque == 14)
{
int i,j;
for (j = 0;j < tam_bosque;j++) //filas alfabeticas
for (i = 0;i < tam_bosque;i++) //columnas numeradas
{
for (j = 0;j < tam_bosque;j++)fin_juego()
{
printf("| %c", bosque14x14
[i
][j
]); }
}
}
else if( tam_bosque == 18)
{
int i,j;
for (j = 0;j < tam_bosque;j++) //filas alfabeticas
for (i = 0;i < tam_bosque;i++) //columnas numeradas
{
for (j = 0;j < tam_bosque;j++)
{
printf("| %c", bosque18x18
[i
][j
]); }
}
}
}
//a jugar!!
void Bucle_Juego()
{
int ganador=0;
int turno=0;
printf("Que jugador empieza?: ");
do
{
while(ganador == 0)//que se repita mientras no haya ningun ganador
{
Actualizar_Juego(); //Actualiza el juego
mover_tirarflecha(turno); //mueve o ataca
//Falta comprobar si alguno ya ganó
//Cambiando los turnos
if(turno == 1)
{
turno = 2;
}
else
turno = 1;
}
//cuando se termine el bucle comprueba quien ha ganado
if(ganador == 1)
{
printf("Ha Ganado el jugador 1"); }
else if(ganador == 2)
printf("Ha Ganado el jugador 2");
ganador++;
}
while (ganador < 3);
//para que pregunte si quiere salir o seguir jugando
/*char respuesta;
int s=0,n=1;
printf("Quiere jugar de nuevo? (s/n): ");
scanf(" %c", &respuesta);
if (respuesta==s)
{
}
else if (respuesta==n)
fin_juego();*/
}
void mover_tirarflecha(int turno)
{
char imagen_jugador; //dibuja 1' o '2' dependiendo del turno
if(turno == 1)
{
imagen_jugador = '1';
printf("Es el turno del jugador 1\n"); }
else
{
imagen_jugador = '2';
printf("Es el turno del jugador 2\n"); }
char accion;
//moverse
int o_i,d_i; //coordenadas origen
char o_j,d_j; //coordenadas destino
printf("Moverte o tirar flecha? (m o t)");
//para saber lo que ha ingresado
if(accion == 'm')
{
printf("\nIngrese Coordenadas origen (ej. 0-a) "); //origen scanf("%d-%c", &o_i
,&o_j
);
printf("\nIngrese Coordenadas destino (1 lugar) "); //destino scanf("%d-%c", &d_i
,&d_j
);
/*Dependiendo del tamaño del bosque*/
if( tam_bosque == 6)
{
//para que se mueva 1 solo lugar
/*if ((bosque6x6[d_i+1][d_j])&&(bosque6x6[d_i][d_j+1])&&(bosque6x6[d_i-1][d_j])&&(bosque6x6[d_i][d_j-1]))*/
{
bosque6x6[o_i][o_j - 97]= ' '; //queda vacio donde estaba
bosque6x6[d_i][d_j - 97]= imagen_jugador; //a donde lo mueve mientras esté el espacio vacio
}
}
else if( tam_bosque == 8)
{
bosque8x8[o_i][o_j - 97]= ' ';
bosque8x8[d_i][d_j - 97]= imagen_jugador;
}
else if( tam_bosque == 10)
{
bosque10x10[o_i][o_j - 97]= ' ';
bosque10x10[d_i][d_j - 97]= imagen_jugador;
}
else if( tam_bosque == 14)
{
bosque14x14[o_i][o_j - 97]= ' ';
bosque14x14[d_i][d_j - 97]= imagen_jugador;
}
else if( tam_bosque == 18)
{
bosque18x18[o_i][o_j - 97]= ' ';
bosque18x18[d_i][d_j - 97]= imagen_jugador;
}
}
else if(accion == 't') //para disparar flecha. Se mueven arriba,abajo,izq,derecha
{
//para el bosque x6
if (tam_bosque==6)
{
int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
int i=d_i;
int j=d_j;
while((limite<5) && (arriba<6) && (bosque6x6[i][j]!='X'))//para arriba
{
if (bosque6x6[i][j]=='2')
{
arriba++;
j++;
printf("GAME OVER: Jugador 2"); }
}
while((limite<5) && (abajo<6) && (bosque6x6[i][j]!='X'))//para abajo
{
if (bosque6x6[i][j]=='2')
{
abajo++;
j--;
printf("GAME OVER: Jugador 2"); }
}
while((limite<5) && (izq<6) && (bosque6x6[i][j]!='X'))//para la izquierda
{
if (bosque6x6[i][j]=='2')
{
izq++;
i--;
printf("GAME OVER: Jugador 2"); }
}
while((limite<5) && (derecha<6) && (bosque6x6[i][j]!='X'))//para la derecha
{
if (bosque6x6[i][j]=='2')
{
derecha++;
i++;
printf("GAME OVER: Jugador 2"); }
}
}/*
//para el bosque x8
if (tam_bosque==8)
{
int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
int i=d_i;
int j=d_j;
while((limite<7) && (arriba<8) && (bosque6x6[i][j]!='X'))//para arriba
{
if (bosque8x8[i][j]=='2')
{
arriba++;
j++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<7) && (abajo<8) && (bosque8x8[i][j]!='X'))//para abajo
{
if (bosque8x8[i][j]=='2')
{
abajo++;
j--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<7) && (izq<8) && (bosque8x8[i][j]!='X'))//para la izquierda
{
if (bosque8x8[i][j]=='2')
{
izq++;
i--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<7) && (derecha<8) && (bosque8x8[i][j]!='X'))//para la derecha
{
if (bosque8x8[i][j]=='2')
{
derecha++;
i++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
}
//para el bosque x10
if (tam_bosque==10)
{
int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
int i=d_i;
int j=d_j;
while((limite<9) && (arriba<10) && (bosque10x10[i][j]!='X'))//para arriba
{
if (bosque10x10[i][j]=='2')
{
arriba++;
j++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<9) && (abajo<10) && (bosque10x10[i][j]!='X'))//para abajo
{
if (bosque10x10[i][j]=='2')
{
abajo++;
j--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<9) && (izq<10) && (bosque10x10[i][j]!='X'))//para la izquierda
{
if (bosque10x10[i][j]=='2')
{
izq++;
i--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<9) && (derecha<10) && (bosque10x10[i][j]!='X'))//para la derecha
{
if (bosque10x10[i][j]=='2')
{
derecha++;
i++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
}
//para el bosque x14
if (tam_bosque==14)
{
int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
int i=d_i;
int j=d_j;
while((limite<13) && (arriba<14) && (bosque14x14[i][j]!='X'))//para arriba
{
if (bosque14x14[i][j]=='2')
{
arriba++;
j++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<13) && (abajo<14) && (bosque14x14[i][j]!='X'))//para abajo
{
if (bosque14x14[i][j]=='2')
{
abajo++;
j--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<13) && (izq<14) && (bosque6x6[i][j]!='X'))//para la izquierda
{
if (bosque6x6[i][j]=='2')
{
izq++;
i--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<13) && (derecha<14) && (bosque14x14[i][j]!='X'))//para la derecha
{
if (bosque6x6[i][j]=='2')
{
derecha++;
i++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
}
//para el bosque x18
if (tam_bosque==6)
{
int limite=0, arriba=0, abajo=0, izq=0, derecha=0;
int i=d_i;
int j=d_j;
while((limite<17) && (arriba<18) && (bosque18x18[i][j]!='X'))//para arriba
{
if (bosque18x18[i][j]=='2')
{
arriba++;
j++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<17) && (abajo<18) && (bosque18x18[i][j]!='X'))//para abajo
{
if (bosque18x18[i][j]=='2')
{
abajo++;
j--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<17) && (izq<18) && (bosque18x18[i][j]!='X'))//para la izquierda
{
if (bosque18x18[i][j]=='2')
{
izq++;
i--;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
while((limite<17) && (derecha<18) && (bosque18x18[i][j]!='X'))//para la derecha
{
if (bosque6x6[i][j]=='2')
{
derecha++;
i++;
printf("GAME OVER: Jugador 2");
}
else printf("Fallaste!\n");
}
}*/
}
}