Está en la página 1de 18

JUEGO DE CACHO

Main Cacho

clc
fprintf('\t \t \t \t \t ************************************************* \n')
fprintf('\t \t \t \t \t * JUEGO DE CACHO * \n ')
fprintf('\t \t \t \t \t * MENU PRINCIPAL * \n ')
fprintf('\t \t \t \t \t * 1. Reglas (Llenado de Puntos) * \n')
fprintf('\t \t \t \t \t * 2. jugar con dos jugadores * \n')
fprintf('\t \t \t \t \t * 3. jugar con la maquina * \n')
fprintf('\t \t \t \t \t * 4. Salir * \n')
fprintf('\t \t \t \t \t ************************************************* \n')
op=input(' Elija opcion: ');
if (op==1)||(op==2)||(op==3)||(op==4)
switch op
case 1
regla();
case 2
j1j2();
case 3
j1maquina();
case 4
clc
disp('Usted salio del Juego')
end
else
clc
disp('Usted salio del Juego')
end


function cont=contar()
for j=1:5
d(j)=lanzar2();
end
fprintf('\n \t Lanzamiento de los Dados \n')
fprintf('\n \n')
fprintf(' Dado1 Dado2 Dado3 Dado4 Dado5')
fprintf('\n \n')
disp(d);
disp('Desea Realizar otro lanzamiento?: ');
disp('1 Si');
disp('2 No');
z=input('Respuesta:');
if(z==1)
while 1
c=input('Que cantidad de dados desea introducir al cubilete?: ');
fprintf('\n')
disp('Para elegir el dado debe presionar solo la tecla del numero del dado,
Ej. Dado1=1')
disp('Solo puede presionar elegir un dado a la vez, luego presionar ENTER')
fprintf('\n')
if(c>=1&&c<6)
break
end
end
for j=1:c
while 1
p=input('Cual dado desea introducir al cubilete: ');
if(p>=1&&p<6)
break;
end
end
d(p)=lanzar2();
end
fprintf('\n')
fprintf(' Dado1 Dado2 Dado3 Dado4 Dado5')
fprintf('\n \n')
disp(d);
disp('Desea Voltear algun dado?: ');
disp('1 Si');
disp('2 No');
r=input('Respuesta: ');
if (r==1)
while 1
j=input('Cual dado desea voltear: ');
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
disp('Desea Voltear otro dado?: ');
disp('1 Si');
disp('2 No');
s=input('Respuesta: ');
if(s==1)
while 1
j=input('Cual dado desea voltear: ');
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
end
end
cont(2)=0;
cont(6)=0;
for i=1:5
if (d(i)==1)
cont(1)=cont(1)+1;
else
if (d(i)==2)
cont(2)=cont(2)+1;
else
if (d(i)==3)
cont(3)=cont(3)+1;
else
if (d(i)==4)
cont(4)=cont(4)+1;
else
if (d(i)==5)
cont(5)=cont(5)+1;
else
if (d(i)==6)
cont(6)=cont(6)+1;
end
end
end
end
end
end
end
else
disp('Desea Voltear algun dado?: ');
disp('1 Si');
disp('2 No');
r=input('Respuesta: ');
if (r==1)
while 1
j=input('Cual dado desea voltear: ');
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
disp('Desea Voltear otro dado?: ');
disp('1 Si');
disp('2 No');
s=input('Respuesta: ');
if(s==1)
while 1
j=input('Cual dado desea voltear: ');
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
end
end
cont(2)=0;
cont(6)=0;
for i=1:5
if (d(i)==1)
cont(1)=cont(1)+1;
else
if (d(i)==2)
cont(2)=cont(2)+1;
else
if (d(i)==3)
cont(3)=cont(3)+1;
else
if (d(i)==4)
cont(4)=cont(4)+1;
else
if (d(i)==5)
cont(5)=cont(5)+1;
else
if (d(i)==6)
cont(6)=cont(6)+1;
end
end
end
end
end
end
end
end
d
b=1;
d=sort(d);
if(d(1)==d(3))
if(d(2)~=d(3))
b=0;
end
if(d(4)~=d(5))
b=0;
end
else
if(d(3)~=d(4)||d(3)~=d(5)||d(4)~=d(5))
b=0;
end
if(d(1)~=d(2))
b=0;
end
end
if(b==1)
if(z==1)
cont(7)=30;
else
cont(7)=35;
end
else
cont(7)=0;

end
b=1;
d=sort(d);
if(d(1)==d(2))
for i=2:4
if(d(i)~=d(1))
b=0;
end
end
else
for i=2:5
if(d(i)~=d(2))
b=0;
end
end
end
if(b==1)
%disp('poker exito')
if(z==2)
cont(8)=45;
else
cont(8)=40;
end
else
cont(8)=0;
end
b=1;
d=sort(d);
if(d(1)==1&&d(2)==3)
for i=3:5
if(d(i)~=(i+1))
b=0;
end
end
else
dif=d(1)-1;
for i=1:5
if((d(i)-dif)~=i)
b=0;
end
end
end
if(b==1)
if(z==2)
cont(9)=25;
else
cont(9)=20;
end
else
cont(9)=0;
end
b=1;
d=sort(d);
if(d(1)~=d(5))
b=0;
end
if(b==1)
cont(10)=50;
cont(11)=50;
else
cont(10)=0;
cont(11)=0;
end
disp('Posibles Puntuaciones')
F=[];
cont(1)=cont(1)*1;
cont(2)=cont(2)*2;
cont(3)=cont(3)*3;
cont(4)=cont(4)*4;
cont(5)=cont(5)*5;
cont(6)=cont(6)*6;
cont(7);
cont(8);
cont(9);
F(1,1)=cont(1);
F(2,1)=cont(2);
F(3,1)=cont(3);
F(1,2)=cont(9);
F(3,2)=cont(8);
F(2,2)=cont(7);
F(1,3)=cont(4);
F(2,3)=cont(5);
F(3,3)=cont(6);
F(4,1)=cont(10);
F(4,3)=cont(11);
F
end


function cont=contarmaq()
for j=1:5
d(j)=lanzar2();
end
fprintf('\n Lanzamiento del Dado \n')
d
disp('Desea Realizar otro lanzamiento?: ');
disp('1 Si');
disp('2 No');
z=elanz();
if(z==1)
while 1
c=elanz2();
if(c>=1&&c<6)
break
end
end
for j=1:c
while 1
p=elanz2();
if(p>=1&&p<6)
break;
end
end
d(p)=lanzar2();
end
d
disp('Desea Voltear algun dado?: ');
disp('1 Si');
disp('2 No');
r=elanz();
if (r==1)
while 1
j=elanz2();
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
disp('Desea Voltear otro dado?: ');
disp('1 Si');
disp('2 No');
s=elanz();
if(s==1)
while 1
j=elanz2();
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
end
end
cont(2)=0;
cont(6)=0;
for i=1:5
if (d(i)==1)
cont(1)=cont(1)+1;
else
if (d(i)==2)
cont(2)=cont(2)+1;
else
if (d(i)==3)
cont(3)=cont(3)+1;
else
if (d(i)==4)
cont(4)=cont(4)+1;
else
if (d(i)==5)
cont(5)=cont(5)+1;
else
if (d(i)==6)
cont(6)=cont(6)+1;
end
end
end
end
end
end
end
else
disp('Desea Voltear algun dado?: ');
disp('1 Si');
disp('2 No');
r=elanz();
if (r==1)
while 1
j=elanz2();
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
disp('Desea Voltear otro dado?: ');
disp('1 Si');
disp('2 No');
s=elanz();
if(s==1)
while 1
j=elanz2();
if(j>=1&&j<6)
break
end
end
d(j)=7-d(j);
end
end
cont(2)=0;
cont(6)=0;
for i=1:5
if (d(i)==1)
cont(1)=cont(1)+1;
else
if (d(i)==2)
cont(2)=cont(2)+1;
else
if (d(i)==3)
cont(3)=cont(3)+1;
else
if (d(i)==4)
cont(4)=cont(4)+1;
else
if (d(i)==5)
cont(5)=cont(5)+1;
else
if (d(i)==6)
cont(6)=cont(6)+1;
end
end
end
end
end
end
end
end
d
b=1;
d=sort(d);
if(d(1)==d(3))
if(d(2)~=d(3))
b=0;
end
if(d(4)~=d(5))
b=0;
end
else
if(d(3)~=d(4)||d(3)~=d(5)||d(4)~=d(5))
b=0;
%disp('full')
end
if(d(1)~=d(2))
b=0;
end
end
if(b==1)
%disp('full exito')
if(z==1)
cont(7)=30;
else
cont(7)=35;
end
else
cont(7)=0;
%disp('prueba2')
end
b=1;
d=sort(d);
if(d(1)==d(2))
for i=2:4
if(d(i)~=d(1))
b=0;
end
end
else
for i=2:5
if(d(i)~=d(2))
b=0;
end
end
end
if(b==1)
%disp('poker exito')
if(z==2)
cont(8)=45;
else
cont(8)=40;
end
else
cont(8)=0;
end
b=1;
d=sort(d);
if(d(1)==1&&d(2)==3)
for i=3:5
if(d(i)~=(i+1))
b=0;
end
end
else
dif=d(1)-1;
for i=1:5
if((d(i)-dif)~=i)
b=0;
end
end
end
if(b==1)
if(z==2)
cont(9)=25;
else
cont(9)=20;
end
else
cont(9)=0;
end
b=1;
d=sort(d);
if(d(1)~=d(5))
b=0;
end
if(b==1)
cont(10)=50;
cont(11)=50;
else
cont(10)=0;
cont(11)=0;
end
disp('Posibles Puntuaciones')
F=[];
cont(1)=cont(1)*1;
cont(2)=cont(2)*2;
cont(3)=cont(3)*3;
cont(4)=cont(4)*4;
cont(5)=cont(5)*5;
cont(6)=cont(6)*6;
cont(7);
cont(8);
cont(9);
F(1,1)=cont(1);
F(2,1)=cont(2);
F(3,1)=cont(3);
F(1,2)=cont(9);
F(3,2)=cont(8);
F(2,2)=cont(7);
F(1,3)=cont(4);
F(2,3)=cont(5);
F(3,3)=cont(6);
F(4,1)=cont(10);
F(4,3)=cont(11);
F
end


function z=elanz()
z=rand();
if(z<=0.5)
z=1;
else
z=2;
end
end


function z=elanz2()
z=rand();
if(z<=0.2)
z=1;
else
if(z<=0.4)
z=2;
else
if(z<=0.6)
z=3;
else
if(z<=0.8)
z=4;
else
z=5;
end
end
end
end
end


function A=elegir2maq(A)
fprintf('\t \t TIRO \n')
cont=contarmaq();
disp('1. Llenar a las balas')
disp('2. Llenar a los tontos')
disp('3. Llenar a los trenes')
disp('4. Llenar a las cuadras')
disp('5. Llenar a las quinas')
disp('6. Llenar a las senas')
disp('7. Llenar a Full')
disp('8. Llenar a poker')
disp('9. Llenar a escalera')
disp('10. Llenar a Grande 1')
disp('11. Llenar a Grande 2')
op=elanz3()
switch op
case 1
A(1,1)=cont(1);
case 2
A(2,1)=cont(2);
case 3
A(3,1)=cont(3);
case 4
A(1,3)=cont(4);
case 5
A(2,3)=cont(5);
case 6
A(3,3)=cont(6);
case 7
A(2,2)=cont(7);
case 8
A(3,2)=cont(8);
case 9
A(1,2)=cont(9);
case 10
A(4,1)=cont(10);
case 11
A(4,3)=cont(11);
end
clc
end


function A=elegir2(A)
%clc
fprintf('\t \t TIRO \n')
disp('Lanzamiento del cacho, presione 1 para lanzar')
dado=input('Presione Tecla: ');
if(dado==1)
cont=contar();
disp('1. Llenar a las balas')
disp('2. Llenar a los tontos')
disp('3. Llenar a los trenes')
disp('4. Llenar a las cuadras')
disp('5. Llenar a las quinas')
disp('6. Llenar a las senas')
disp('7. Llenar a Full')
disp('8. Llenar a poker')
disp('9. Llenar a escalera')
disp('10. Llenar a Grande 1')
disp('11. Llenar a Grande 2')
op=input('elija opcion:')
switch op
case 1
A(1,1)=cont(1);
case 2
A(2,1)=cont(2);
case 3
A(3,1)=cont(3);
case 4
A(1,3)=cont(4);
case 5
A(2,3)=cont(5);
case 6
A(3,3)=cont(6);
case 7
A(2,2)=cont(7);
case 8
A(3,2)=cont(8);
case 9
A(1,2)=cont(9);
case 10
A(4,1)=cont(10);
case 11
A(4,3)=cont(11);
end
end
clc
end


function z=elanz3()
z=rand();
if(z<0.09)
z=1;
else if(z<0.18)
z=2;
else if(z<0.27)
z=3;
else if(z<0.36)
z=4;
else if(z<0.45)
z=5;
else if(z<0.54)
z=6;
else if(z<0.63)
z=7;
else if(z<0.72)
z=8;
else if(z<0.81)
z=9;
else if(z<0.90)
z=10;
else
z=11;
end
end
end
end
end
end
end
end
end
end
end


function d=lanzar2(n)
%clear
%clc
d=0;
al=rand();
if (al<=0.17 )
d=1;
else if (al<=0.34)
d=2;
else if (al<=0.51)
d=3;
else if(al<=0.69)
d=4;
else if (al<=0.86)
d=5;
else if(al<=1)
d=6;
end
end
end
end
end
end
end


function j1j2()
M=zeros(4,3);
N=zeros(4,3);
R=zeros(4,3);
for i=1:2
clc
fprintf('\t \t ANOTACIONES\n')
disp('Su puntuacion hasta el momento del JUGADOR 1 es: ')
disp(M);
disp('jugador 1')
M=elegir2(M);
fprintf('\t \t ANOTACIONES\n')
disp('Su puntuacion hasta el momento del JUGADOR 2 es: ')
disp(N);
disp('jugador 2')
N=elegir2(N);
fprintf('\t \t ANOTACIONES\n')
disp('Su puntuacion hasta el momento del JUGADOR 2 es: ')
disp(N);
end
clc
disp('Su ANOTACION FINAL del JUGADOR 1 es: ')
disp(M);
disp('Su ANOTACION FINAL del JUGADOR 2 es: ')
disp(N);
P=0;
for i=1:4
for j=1:3
P=M(i,j)+P;
end
end
disp('Su puntuacion FINAL del JUGADOR 1 es: ')
disp(P)
Q=0;
for i=1:4
for j=1:3
Q=N(i,j)+Q;
end
end
disp('Su puntuacion FINAL del JUGADOR 2 es: ')
disp(Q)
if (P==Q)
disp('Es un EMPATE!!!')
else if (P>Q)
disp('el ganador es el JUGADOR 1!!!')
else
disp('El ganador es la JUGADOR 2!!!')
end
end
end



function j1maquina()
M=zeros(4,3);
N=zeros(4,3);
for i=1:11
clc
disp('Su puntuacion hasta el momento del jugador 1 es: ')
M
disp('jugador 1')
M=elegir2(M);
disp('Su puntuacion hasta el momento del jugador maquina es: ')
M
disp('jugador Maquina')
N=elegir2maq(N);
disp('Su puntuacion hasta el momento del jugador 1 es: ')
M
end
clc
disp('Su ANOTACION FINAL del jugador 1 es: ')
M
disp('Su ANOTACION FINAL del jugador maquina es: ')
N
P=0;
for i=1:4
for j=1:3
P=M(i,j)+P;
end
end
disp('Su puntuacion FINAL del jugador 1 es: ')
disp(P)
Q=0;
for i=1:4
for j=1:3
Q=N(i,j)+Q;
end
end
disp('Su puntuacion FINAL del jugador maquina es: ')
disp(Q)
if (P==Q)
disp('Es un EMPATE!!!')
else if (P>Q)
disp('el ganador es el JUGADOR 1!!!')
else
disp('El ganador es la MAQUINA!!!')
end
end
end


function pruebacachomaquina()
M=zeros(4,3);
N=zeros(4,3);
clc
for i=1:3
disp('jugador 1')
M=elegir2(M);
disp('jugador maquina')
N=elegir2maq(N);
end
clc
disp('Su ANOTACION FINAL del jugador 1 es: ')
M
disp('Su ANOTACION FINAL del jugador maquina es: ')
N
P=0;
for i=1:4
for j=1:3
P=M(i,j)+P;
end
end
disp('Su puntuacion FINAL del jugador 1 es: ')
disp(P)
Q=0;
for i=1:4
for j=1:3
Q=N(i,j)+Q;
end
end
disp('Su puntuacion FINAL del jugador maquina es: ')
disp(Q)
if (P==Q)
disp('Es un EMPATE!!!')
else if (P>Q)
disp('el ganador es el JUGADOR 1!!!')
else
disp('El ganador es la MAQUINA!!!')
end
end
end


function regla()
clc
fprintf('\t \t \t \t \t ***************************************** \n')
fprintf('\t \t \t \t \t * PARA LLENADO DE LAS ANOTACIONES * \n')
fprintf('\t \t \t \t \t * 1. Balas * \n')
fprintf('\t \t \t \t \t * 2. Tontos * \n')
fprintf('\t \t \t \t \t * 3. Trenes * \n')
fprintf('\t \t \t \t \t * 4. Cuadras * \n')
fprintf('\t \t \t \t \t * 5. Quinas * \n')
fprintf('\t \t \t \t \t * 6. Senas * \n')
fprintf('\t \t \t \t \t * 7. Full * \n')
fprintf('\t \t \t \t \t * 8. Poker * \n')
fprintf('\t \t \t \t \t * 9. Escalera * \n')
fprintf('\t \t \t \t \t * 10. GRANDE 1 * \n')
fprintf('\t \t \t \t \t * 11. GRANDE 2 * \n')
fprintf('\t \t \t \t \t ***************************************** \n')
fprintf('\t \t \t \t \t 1 * 9 * 4 \n')
fprintf('\t \t \t \t \t BALAS * ESCALERA * CUADRAS\n')
fprintf('\t \t \t \t \t * * \n')
fprintf('\t \t \t \t \t ******************************************* \n')
fprintf('\t \t \t \t \t 2 * 7 * 5\n')
fprintf('\t \t \t \t \t TONTOS * FULL * QUINAS\n')
fprintf('\t \t \t \t \t * * \n')
fprintf('\t \t \t \t \t * * \n')
fprintf('\t \t \t \t \t ******************************************* \n')
fprintf('\t \t \t \t \t 3 * 8 * 6\n')
fprintf('\t \t \t \t \t TRENES * POKER * SENAS\n')
fprintf('\t \t \t \t \t * * \n')
fprintf('\t \t \t \t \t * * \n')
fprintf('\t \t \t \t \t * * \n ')
fprintf('\t \t \t \t \t ******************************************* \n')
fprintf('\t \t \t \t \t 10 * * 11\n')
fprintf('\t \t \t \t \t GRANDE 1 * * GRANDE 2\n')
fprintf('\t \t \t \t \t * * \n \n')
disp('Desea volver al MENU PRINCIPAL?')
disp('Presione 1 para volver')
volver=input('Presione Tecla: ');
if(volver==1)
maincacho();
else
clc
disp('Usted salio del Juego')
end
end