#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
//prototipos
int a[200], b[200], c[200], d[200], num=0,i=0, R=0; //Arreglo Posiciones, Posicion Dado.
int PosiAct=0, PosiComp=0, x=0, xx=0,contadorCompu; //Movimiento Jugador
int option=0,tempComp=0, tempUser=0, conta=0,meta=64; //Acumuladores
string Aprobado[2], Jugador, turno, Compu; // Players jugador y Compu
char resp='n', y='F', z='F', band='F';
///////////////////////////////////////
void gano();
void asteriscos();
void continua();
void dado();
void menu();
void Player();
void cambiaturno();
void jugando();
void valida();
void valida2();
void avance();
void escaleras();
void correescalera();
void reset();
//////////////////////////////////////////
//metodo principal
int main()
{
turno=Jugador;
int opcion;
do{
menu();
cin>>opcion;
switch(opcion)
{
case 1:
Player(); ///CARGAMOS JUGADORES
continua(); ///APROBADO
break;
case 2: // Estadisticas con Arreglo
cout<<" LAS ESTADISTICAS FUERON "<<endl;
cout<<"****1. PARA USUARIO****"<<endl;
for (int i=0;i<=x;i++)
{
cout<<" El Usuario estuvo en estas posiciones "<<b[i]<<endl;
cout<<" El Usuario tuvo estos Movimientos, de Dado "<<a[i]<<endl;
}
cout<<"****2. PARA COMUTADORA**"<<endl;
for (int i=0;i<=x;i++)
{
cout<<" El Computadora estuvo en estas posiciones "<<d[i]<<endl;
cout<<" La Computadora tuvo estos Movimientos, de Dado "<<c[i]<<endl;
}
reset();
break;
case 3: // SALIR MENU
cout<<"Gracias!. Lo esperamos pronto"<<endl;
break;
default:
cout<<"Por favor verifique las opciones disponibles, ha ingresado una opcion no valida"<<endl;
}
return 0;
}while(opcion!=3);
}
////////////////////////////
////////FUNCIONES //////////////////
////////////////////////////////////////////
void reset() // MUEVE POSICION SI CAE EN ESCALERA
{
PosiAct=0,
PosiComp=0,
contadorCompu=0;
tempComp=0;
tempUser=0;
conta=0;
num=0;
R=0;
y='F';
z='F';
}
////////////////////////////////////////////
////////////////////////////////////////////
void correescalera() // MUEVE POSICION SI CAE EN ESCALERA
{
if (turno==Jugador)
{
R=PosiAct;
}
else
{
R=PosiComp;
}
valida2();
}
////////////////////////////////////////////
////////////////////////////////////////////
void escaleras() // 4 ESCALEREAS QUE SUBEN
{
//inicializadores
int Posi_Final=0;
int Esc1=5,Esc2=14, Esc3=26, Esc4=35; ///Sale
int lleg1=43, lleg2=20, lleg3=41, lleg4=61; ///Llega
int Ser1=17,Ser2=38, Ser3=50, Ser4=59;
int Baja1=2, Baja2=23, Baja3=30, Baja4=37;
switch(R)
{
case 5:
asteriscos();
cout<<endl;
cout <<" Que Buena Suerte "<<endl; // Escalera 1
cout <<turno<<" Subiste en una Escalera " <<endl;
cout <<" Tu nueva posicion es "<<lleg1<<endl;
cout<<endl;
asteriscos();
R=lleg1;
break;
case 14:
asteriscos();
cout<<endl;
cout <<" Que Buena Suerte "<<endl; // Escalera 2
cout <<turno <<" Subiste en una Escalera " <<endl;
cout <<" Tu nueva posicion es "<<lleg2<<endl;
cout<<endl;
asteriscos();
R=lleg2;
break;
case 17:
asteriscos();
cout<<endl;
cout <<" Que Mala Suerte "<<endl; // Serpiente 1
cout <<turno <<" Caiste en una Serpiente " <<endl;
cout <<" Tu nueva posicion es "<<Baja1<<endl;
cout<<endl;
asteriscos();
R=Baja1;
break;
case 26:
asteriscos();
cout<<endl;
cout <<" Que Buena Suerte "<<endl; // Escalera 3
cout <<turno <<" Subiste en una Escalera " <<endl;
cout <<" Tu nueva posicion es "<<lleg3<<endl;
cout<<endl;
asteriscos();
R=lleg3;
break;
case 35:
asteriscos();
cout<<endl;
cout <<" Que Buena Suerte "<<endl; // Escalera 4
cout <<turno <<" Subiste en una Escalera " <<endl;
cout <<" Tu nueva posicion es "<<lleg4<<endl;
cout<<endl;
asteriscos();
R=lleg4;
break;
case 38:
asteriscos();
cout<<endl;
cout <<" Que Mala Suerte "<<endl; // Serpiente 2
cout <<turno <<" Caiste en una Serpiente " <<endl;
cout <<" Tu nueva posicion es "<<Baja2<<endl;
cout<<endl;
asteriscos();
R=Baja2;
break;
case 50:
asteriscos();
cout<<endl;
cout <<" Que Mala Suerte "<<endl; // Serpiente 3
cout <<turno <<" Caiste en una Serpiente " <<endl;
cout <<" Tu nueva posicion es "<<Baja3<<endl;
cout<<endl;
R=Baja3;
asteriscos();
break;
case 59 :
asteriscos();
cout<<endl;
cout <<" Que Mala Suerte "<<endl; // Serpiente 4
cout <<turno <<" Caiste en una Serpiente " <<endl;
cout <<" Tu nueva posicion es "<<Baja4<<endl;
cout<<endl;
asteriscos();
R=Baja4;
break;
default:
correescalera();
}
}
///////////////////////////////////////////////
///////////////////////////////////////////////
void valida2() //valida no avanzar mas de 64
{
if ((R>meta) || ((R)>meta))
{
asteriscos();
asteriscos();
cout<<" "<<turno<<" Tu posicion Actual es "<<R<<endl;
cout<<endl;
cout<<"NO PUEDES AVANZAR TE PASAS DE LA META"<<endl;
cout<<endl;
cout<<" SIGUE INTENTANDO "<<endl;
cout<<endl;
asteriscos();
asteriscos();
if (turno==Compu)
{
PosiComp=PosiComp-num;
cout<<"Regresas a tu Antigua Posicion "<<PosiComp<<endl;
}
else
{
if (turno==Jugador)
{
PosiAct=PosiAct-num;
cout<<"Regresas a tu Antigua Posicion "<<PosiAct<<endl;
cambiaturno();
}
}
}
else
{
if (((R)==meta) || ((R)==meta))
{
gano();
}
}
}
////////////////////////////
///////////////////////////
void avance() // FUNCION AVANCE TABLERO
{
if (turno == Jugador)
{
tempUser=num;
a[xx]=tempUser;
xx++;
asteriscos();
cout<<endl;
cout<<Jugador<<" Tu posicion Actual es "<<PosiAct<<endl;
cout<<endl;
PosiAct=tempUser+PosiAct;
b[xx]=PosiAct;
asteriscos();
cout<<endl;
cout<<turno<<" Avanza "<<tempUser<<" Posiciones,"<<endl;
cout<<endl;
cout<<" ahora estas sobre el numero "<<PosiAct<<endl;
cout<<endl;
asteriscos();
escaleras();
//if (turno!=Jugador)
cambiaturno();
continua();
}
else
{
if (turno == Compu)
{
tempComp=num;
c[x]=tempComp;
x++;
asteriscos();
cout<<Compu<<" Tu posicion Actual es "<<PosiComp<<endl;
asteriscos();
cout<<endl;
PosiComp=tempComp+PosiComp;
d[x]=PosiComp;
asteriscos();
cout<<endl;
escaleras();
cout<<turno<<" Avanza "<<tempComp<<" Posiciones"<<endl;
cout<<endl;
cout<< " ahora estas sobre el numero "<<PosiComp<<endl;
cout<<endl;
asteriscos();
escaleras();
cambiaturno();
continua();
}
}
}
////////////////////
////////////////////
void valida() ///VALIDACION PARA INICIALIZAR
{
if (((turno==Compu) && (z=='F')) || ((turno==Jugador) && (y=='F')))
{
if (num!=6)
{
asteriscos();
cout<<endl;
cout<<turno<<" Lo Siento No Puedes Iniciar Aun"<<endl;
cout<<endl;
asteriscos();
cambiaturno();
}
else
{
if (turno==Compu)
{
z='V';
cout<<turno<<z<<endl;
}
else
{
if (turno==Jugador)
{
y='V';
cout<<turno<<y<<endl;
}
}
asteriscos();
cout<<endl;
cout<<turno<<" Felicidades ya Puedes Iniciar"<<endl;
cout<<endl;
cout<<" en tu siguiente turno "<<endl;
cout<<endl;
asteriscos();
cambiaturno();
}
}
else
avance();
}
//////////////////////////
/////////////////////////
void cambiaturno()
{
if (turno == Compu)
{
turno=Jugador;
}
else
{
turno=Compu;
}
}
/////////////////////////
/////////////////////////
void Player()
{
asteriscos();
cout<<endl;
cout<<"******** Ingresa Nombre Jugador ********"<<endl; // nombre Player
cout<<endl;
asteriscos();
cin>>Jugador;
asteriscos();
cout<<endl;
cout<<"cual sera el Nombre de la computadora"<<endl; // nombre Computadora
cout<<endl;
asteriscos();
cin>>Compu;
asteriscos();
cout<<endl;
cout<<" Alistate Vas a Pelear contra "<<Compu<<endl; //
cout<<endl;
turno=Jugador;
asteriscos();
}
//////////////////////////
/////////////////////////
void menu()
{
asteriscos();
cout<<"*****************MENU*******************"<<endl;
cout<<"1. Jugar"<<endl;
cout<<"2. Estadisticas"<<endl;
cout<<"3. Salir"<<endl;
cout<<"Seleccion una opcion 1-3"<<endl;
asteriscos();
}
///////////////////////
////////////////////////
void asteriscos()
{
for(int i;i<40;i++)
{
cout<<"*";
}
cout<<endl;
}
///////////////////////
//////////////////////
void dado()
{
//////////DADO USUARIO ///////
srand(time(NULL));
for (int i=0;i<=1;i++)
{
num=(rand()%6)+1;
asteriscos();
cout <<"**************** SUERTE "<<turno<<" ***************"<<endl;
asteriscos();
cout<<endl;
cout <<turno<<" TU TIRO DE DADO ES "<<num <<endl;
cout<<endl;
asteriscos();
valida();
}
continua();
}
/////////////////////
////////////////////
void continua()
{
cout<<endl;
cout<<"Vamos a tirar tu dado tu DADO Presiona"<<endl;
cout<<endl;
cout<<"*************(S), (N)****************"<<endl;
cout<<endl;
asteriscos();
cout<<endl;
cout<<"**********Debe ser Mayuscula*************"<<endl;
cout<<endl;
asteriscos();
cout<<endl;
cin>>resp;
if (resp=='S')
{
dado();
if (band='F')
{
valida();
}
}
else
{
if (resp=='N')
{
asteriscos();
cout<<endl;
cout<<"Lastima que Quieras Salirte, ADIOS";
cout<<endl;
asteriscos();
cout<<endl;
main();
}
else
{
asteriscos();
cout<<endl;
cout<<" Verifica tu Opcion debe ser en mayuscula"<<endl;
cout<<"************** (S), (N)**************** "<<endl;
asteriscos();
main();
}
}
}
///////////////////
///////////////////
void gano ()
{
string Jugador;
int lineas;
int i;
for (i = 1; i <= 110; i++)
{
int j;
for (j = 0; j < i; j++)
{
printf("*");
}
printf("\n");
}
asteriscos();
cout<<turno<<" HAS GANADO"<<endl;
asteriscos();
R=0; PosiAct=0; PosiComp=0;
exit;
menu();
}
///////////////////////////////////////////