PROGRAM practica2;
USES
crt;
VAR
n, op: integer;
PROCEDURE menu;
BEGIN
CLRSCR;
writeln('MENU: ');
writeln;
writeln('1. - Jugar.');
writeln('2. - Salir.');
writeln;
writeln('Eliga una opcion: ');
END;
FUNCTION jugadaMaquina: integer;
VAR
x: integer;
BEGIN
RANDOMIZE;
x:= random(3);
CASE x OF
0: jugadaMaquina:=0;
1: jugadaMaquina:=1;
2: jugadaMaquina:=2;
END;
END;
FUNCTION jugadaHumano: integer;
VAR
y: integer;
BEGIN
CLRSCR;
writeln('Introduzca la jugada (0= piedra, 1= papel, 2= tijera)');
readln(y);
CASE y OF
0: jugadaHumano:=0;
1: jugadaHumano:=1;
2: jugadaHumano:=2;
END;
END;
PROCEDURE juego;
VAR
jugada1, jugada2: integer;
BEGIN
jugada1:=jugadaHumano;
jugada2:=jugadaMaquina;
IF jugada1>jugada2 THEN
writeln('Ganas!')
ELSE
IF jugada1=jugada2 THEN
writeln('Empatas')
ELSE
IF (jugada1=2) AND (jugada2=0) THEN
writeln('Pierdes')
ELSE
IF (jugada1=0) AND (jugada2=2) THEN
writeln('¡Ganas!')
ELSE
writeln('Pierdes');
writeln('La maquina escogio: ');
CASE jugada2 OF
0: writeln('Piedra');
1: writeln('Papel');
2: writeln('Tijera');
END;
END;
BEGIN
n:=0;
REPEAT
menu;
readln(op);
IF (op=1) THEN BEGIN
juego;
n:=n+1;
writeln('N§ de partidas: ' ,n);
writeln('Pulse una tecla para continuar');
readln;
CLRSCR;
END;
UNTIL (op=2);
END.
si jM=jH entonces
-- empate
sino si (jM=0 y jH=1) ó (jM=1 y jH=2) ó (jM=2 y jH=0) entonces
-- ganas
sino
-- pierdes
finsi
seleccionar (jH-jM+2) mod 3
caso 0
-- ganas
caso 1
-- pierdes
caso 2
-- empatas
finseleccionar
PROGRAM PiedraPapelTijera;
USES CRT;
VAR
contador, ganadas, empatadas, perdidas, opcion: Integer;
PROCEDURE Menu;
BEGIN
CLRSCR;
Writeln('Este es el juego de piedra papel y tijera.');
Writeln;
Writeln('Introduzca 1 si quiere jugar.');
Writeln;
Writeln('Introduzca 2 si quiere salir.');
Writeln;
Writeln('Elija una opcion: ');
END;
FUNCTION JugadaMaquina: Integer;
VAR
X: Integer;
BEGIN
X:= random(3) + 1;
CASE X OF
1: JugadaMaquina:= 1;
2: JugadaMaquina:= 2;
3: JugadaMaquina:= 3;
END;
END;
FUNCTION JugadaHumano: Integer;
VAR
Y: Integer;
BEGIN
CLRSCR;
Writeln('Introduzca una opcion: ');
Writeln;
Writeln('1 para elegir Piedra.');
Writeln;
Writeln('2 para elegir Papel.');
Writeln;
Writeln('3 para elegir Tijera.');
REPEAT
Readln(Y);
IF ((Y<1) OR (Y>3)) THEN
Writeln('Opcion erronea, introduzca otro numero: ');
UNTIL ((Y>=1) AND (Y<=3));
CASE Y OF
1: JugadaHumano:=1;
2: JugadaHumano:=2;
3: JugadaHumano:=3;
END;
END;
PROCEDURE Juego;
VAR
Jugada1, Jugada2: Integer;
BEGIN
Jugada1:=JugadaHumano;
Jugada2:=JugadaMaquina;
IF (Jugada1 = Jugada2) THEN
BEGIN
Writeln('EMPATAS!!');
empatadas:=empatadas + 1;
END
ELSE
IF ((Jugada1=1) AND (Jugada2=3)) OR ((Jugada1=2) AND (Jugada2=1)) OR ((Jugada1=3) AND (Jugada2=2)) THEN
BEGIN
Writeln('GANAS!!');
ganadas:=ganadas + 1;
END
ELSE
BEGIN
Writeln('PIERDES!!');
perdidas:=perdidas + 1;
END;
Writeln('La maquina escogio: ');
CASE Jugada2 OF
1: Writeln('PIEDRA');
2: Writeln('PAPEL');
3: Writeln('TIJERA');
END;
END;
BEGIN
contador:=0;
ganadas:=0;
perdidas:=0;
empatadas:=0;
REPEAT
Menu;
Readln(opcion);
IF (opcion=1) THEN
BEGIN
Juego;
contador:= contador + 1;
Writeln('Numero de partidas jugadas: ', contador);
Writeln;
Writeln('Numero de partidas ganadas: ', ganadas);
Writeln;
Writeln('Numero de partidas perdidas: ', perdidas);
Writeln;
Writeln('Numero de partidas empatadas: ', empatadas);
Writeln;
Writeln('PULSE ENTER PARA CONTINUAR');
Readln;
CLRSCR;
END;
UNTIL (opcion=2);
END.
CASE Y OF
1: JugadaHumano:=1;
2: JugadaHumano:=2;
3: JugadaHumano:=3;
END;
seneri escribió:hola quien me puede ayudar hacer un juego en pascal que llene una matriz de 10x10 con las letras del abecedario de forma aleatoria con las funciones random y randomize?
amuchamu escribió:Aquí no te vamos a hacer los deberes.
amuchamu escribió:Aquí no te vamos a hacer los deberes, yo iría buscando un manual de pascal.
seneri escribió:Por favor necesito ayuda de verdad yo no tengo idea de como trabajar con pascal