A la despesperada
Publicado por ricki (5 intervenciones) el 09/03/2010 23:18:30
Tengo que entregar para mñn un programa de piedra, papel o tijera.Todos sabemos cmo va, la cosa esque no consigo realizar el recuento de las victorias ni el recuento total de las partidas.Es olbigatorio usar los types que aparecen en mi codigo....es para mñn pero bueno a la desesperada...alguna ayuda?Aqui esta el codigo,esta fatal pero es el resultadod e pruebas y pruebas.....
_______________________
(**************************************************************************
* PRACTICA: 1
**************************************************************************)
program PiedraPapelTijera;
{ Este programa realiza el juego de piedra, papel o tijera }
uses crt; (* Incluye en el programa bibliotecas de funciones y procedimientos *)
type
TSeleccion = ( Piedra, Papel, Tijera ); (* Tres tipos de seleccion *)
TResultado = ( GanaMaquina, GanaHumano, Empate ); (* Tres posibles resultados *)
var
opcion, gan, emp,perd,total: integer;
mElec, tElec,mpunt,tpunt: TSeleccion;
(**************************************************************************)
(***************************** SUBPROGRAMAS *******************************)
(**************************************************************************)
procedure Introduccion;
{ Descripcion del juego piedra, papel o tijera }
begin
writeln ('------------------------------');
writeln (' REGLAS DEL JUEGO ');
writeln ('------------------------------');
writeln;
writeln (' El juego consiste en un una partida entre una maquina y un humano. ');
writeln (' Haran su eleccion entre las tres alternativas existentes (piedra, papel o tijera). ');
writeln (' El ganador se determina por: ');
writeln (' La piedra gana a las tijeras (puede golpearlas hasta romperlas) ');
writeln (' Las tijeras ganan al papel (pueden cortarlo) ');
writeln (' El papel gana a la piedra (puede envolverla) ');
writeln (' Si las dos elecciones coinciden se produce un empate. ');
writeln (' La maquina decide quien gana, indicandole al humano la eleccion hecha por ella. ');
writeln (' Se cuentan las partidas ganadas, empatadas y perdidas por cada jugador. ');
writeln (' Se juegan las partidas que se quieran, hasta que el humano decida finalizar el juego. ');
writeln;
writeln (' Introduzca un 1 si quiere jugar.' );
writeln;
writeln (' Introduzca un 2 si desea abandonar el juego');
writeln;
writeln (' Elija una opcion: ');
end;
(***************************************************************************)
procedure eleccionMaquina ( var elMaquina: TSeleccion );
var
numero:integer;
begin
randomize;
numero:=( random(3) );
writeLn;
case numero of
0: begin
elmaquina:=Piedra;
writeln('La maquina eligio Piedra');
end;
1: begin
elmaquina:=Papel;
writeln('La maquina eligio Papel');
end;
2: begin
elmaquina:=Tijera;
writeln('La maquina eligio Tijera');
end;
end;
readln;
end;
(***************************************************************************)
procedure eleccionHombre ( var eleccion: TSeleccion );
var
op: integer;
begin
repeat
writeln ('---------------------------');
writeln (' MENU DE ELECCION ');
writeln ('---------------------------');
writeln;
writeln (' 1. Elijo PIEDRA ');
writeln (' 2. Elijo PAPEL ');
writeln (' 3. Elijo TIJERA ');
writeln;
write ('Escoja una opcion: ');
readln (op);
if (op > 3) or (op < 1) then
begin
writeln ('Opcion incorrecta');
writeln;
writeln ('Pulse cualquier tecla para continuar');
readKey;
end;
until (op > 0) and (op < 4);
eleccion:= TSeleccion ( op-1 );
case op of
1:writeln('El usuario escojio Piedra');
2:writeln('El usuario escojio Papel');
3:writeln('El usuario escojio Tijera');
end;(*case*)
end;
(***************************************************************************)
function resultadoJugada (miElec,tuElec: TSeleccion):TResultado;
begin
if(miElec = tuElec) then
begin
resultadoJugada:=TResultado(0);
writeln('El resultado es empate');
end(*if*)
else
if ((miElec = Piedra) and (tuElec = Papel)) or ((miElec = Papel) and (tuElec = Tijera))
or ((miElec = Tijera) and (tuElec = Piedra)) then
begin
writeln('Tu pierdes,vuelve a intentarlo');
resultadoJugada:=TResultado(1);
end(*if*)
else
begin
writeln('Tu ganas,enhorabuena');
resultadoJugada:=TResultado(2);
end;
readln;
end;
(***************************************************************************)
procedure mostrarPuntuacion ( var emp1,gan1,perd1,total: integer );
var
x:integer ;
begin
if resultadoJugada(TElec,melec)=Empate then
emp1:=emp1+1
else
if resultadoJugada(TElec,melec)=GanaMaquina then
gan1:=gan1+1 else
if resultadoJugada(TElec,melec)=GanaHumano then
perd1:=perd1+1 ;
total:=total+1;
writeln('El numero de empates es:',emp1);
writeln('El numero de victorias es:',gan1);
writeln('El numero de perdidas es:',perd1);
writeln('El numero de partidas totales:',total);
readln;
end;
(**************************************************************************)
(************************ PROGRAMA PRINCIPAL ******************************)
(**************************************************************************)
begin
repeat
clrscr;
Introduccion;
readln (opcion);
if ( opcion = 1 ) then
begin
eleccionHombre (tElec);
eleccionMaquina (mElec);
emp:=0;
gan:=0;
perd:=0;
total:=0;
mostrarPuntuacion (emp,gan,perd,total);
end;
until ( opcion = 2 );
end.
(**************************************************************************)
(**************************************************************************)
_______________________
(**************************************************************************
* PRACTICA: 1
**************************************************************************)
program PiedraPapelTijera;
{ Este programa realiza el juego de piedra, papel o tijera }
uses crt; (* Incluye en el programa bibliotecas de funciones y procedimientos *)
type
TSeleccion = ( Piedra, Papel, Tijera ); (* Tres tipos de seleccion *)
TResultado = ( GanaMaquina, GanaHumano, Empate ); (* Tres posibles resultados *)
var
opcion, gan, emp,perd,total: integer;
mElec, tElec,mpunt,tpunt: TSeleccion;
(**************************************************************************)
(***************************** SUBPROGRAMAS *******************************)
(**************************************************************************)
procedure Introduccion;
{ Descripcion del juego piedra, papel o tijera }
begin
writeln ('------------------------------');
writeln (' REGLAS DEL JUEGO ');
writeln ('------------------------------');
writeln;
writeln (' El juego consiste en un una partida entre una maquina y un humano. ');
writeln (' Haran su eleccion entre las tres alternativas existentes (piedra, papel o tijera). ');
writeln (' El ganador se determina por: ');
writeln (' La piedra gana a las tijeras (puede golpearlas hasta romperlas) ');
writeln (' Las tijeras ganan al papel (pueden cortarlo) ');
writeln (' El papel gana a la piedra (puede envolverla) ');
writeln (' Si las dos elecciones coinciden se produce un empate. ');
writeln (' La maquina decide quien gana, indicandole al humano la eleccion hecha por ella. ');
writeln (' Se cuentan las partidas ganadas, empatadas y perdidas por cada jugador. ');
writeln (' Se juegan las partidas que se quieran, hasta que el humano decida finalizar el juego. ');
writeln;
writeln (' Introduzca un 1 si quiere jugar.' );
writeln;
writeln (' Introduzca un 2 si desea abandonar el juego');
writeln;
writeln (' Elija una opcion: ');
end;
(***************************************************************************)
procedure eleccionMaquina ( var elMaquina: TSeleccion );
var
numero:integer;
begin
randomize;
numero:=( random(3) );
writeLn;
case numero of
0: begin
elmaquina:=Piedra;
writeln('La maquina eligio Piedra');
end;
1: begin
elmaquina:=Papel;
writeln('La maquina eligio Papel');
end;
2: begin
elmaquina:=Tijera;
writeln('La maquina eligio Tijera');
end;
end;
readln;
end;
(***************************************************************************)
procedure eleccionHombre ( var eleccion: TSeleccion );
var
op: integer;
begin
repeat
writeln ('---------------------------');
writeln (' MENU DE ELECCION ');
writeln ('---------------------------');
writeln;
writeln (' 1. Elijo PIEDRA ');
writeln (' 2. Elijo PAPEL ');
writeln (' 3. Elijo TIJERA ');
writeln;
write ('Escoja una opcion: ');
readln (op);
if (op > 3) or (op < 1) then
begin
writeln ('Opcion incorrecta');
writeln;
writeln ('Pulse cualquier tecla para continuar');
readKey;
end;
until (op > 0) and (op < 4);
eleccion:= TSeleccion ( op-1 );
case op of
1:writeln('El usuario escojio Piedra');
2:writeln('El usuario escojio Papel');
3:writeln('El usuario escojio Tijera');
end;(*case*)
end;
(***************************************************************************)
function resultadoJugada (miElec,tuElec: TSeleccion):TResultado;
begin
if(miElec = tuElec) then
begin
resultadoJugada:=TResultado(0);
writeln('El resultado es empate');
end(*if*)
else
if ((miElec = Piedra) and (tuElec = Papel)) or ((miElec = Papel) and (tuElec = Tijera))
or ((miElec = Tijera) and (tuElec = Piedra)) then
begin
writeln('Tu pierdes,vuelve a intentarlo');
resultadoJugada:=TResultado(1);
end(*if*)
else
begin
writeln('Tu ganas,enhorabuena');
resultadoJugada:=TResultado(2);
end;
readln;
end;
(***************************************************************************)
procedure mostrarPuntuacion ( var emp1,gan1,perd1,total: integer );
var
x:integer ;
begin
if resultadoJugada(TElec,melec)=Empate then
emp1:=emp1+1
else
if resultadoJugada(TElec,melec)=GanaMaquina then
gan1:=gan1+1 else
if resultadoJugada(TElec,melec)=GanaHumano then
perd1:=perd1+1 ;
total:=total+1;
writeln('El numero de empates es:',emp1);
writeln('El numero de victorias es:',gan1);
writeln('El numero de perdidas es:',perd1);
writeln('El numero de partidas totales:',total);
readln;
end;
(**************************************************************************)
(************************ PROGRAMA PRINCIPAL ******************************)
(**************************************************************************)
begin
repeat
clrscr;
Introduccion;
readln (opcion);
if ( opcion = 1 ) then
begin
eleccionHombre (tElec);
eleccionMaquina (mElec);
emp:=0;
gan:=0;
perd:=0;
total:=0;
mostrarPuntuacion (emp,gan,perd,total);
end;
until ( opcion = 2 );
end.
(**************************************************************************)
(**************************************************************************)
Valora esta pregunta


0