Function de un dado
Publicado por David (9 intervenciones) el 17/07/2008 18:09:27
Tengo un problemilla con esta funcion que en un principio parece facil pero no se porque siempre se mete por ELSE macado abajo. No veo cual es mi fallo Gracias si alguien me puede ayudar.
FUNCTION elegirjugador:byte;
(***************************************************************************
DADO de 6 lados para ver quien es el jugador 1
***************************************************************************)
CONST
salir='salir';
VAR
cifra,rand:integer;
numero:STRING[6];
BEGIN
CLRSCR;
elegirjugador:=1;
WRITELN;
WRITELN('Escribe `salir´ si quiere salir del juego');
WRITELN;
WRITELN(' Para ver quien es el jugador que empieza a jugar primero voy a pensar un numero al azar entre 1 y 6. El jugador que lo acierte sera el jugador 1 y el otro sera el jugador 2.');
WRITELN;
WRITELN;
RANDOMIZE;
rand:= RANDOM(5)+1;
REPEAT
WRITELN;
WRITELN('Escribe un numero de 1 al 6 y pulsa intro');
READLN(numero);
((((((((((((((((((((((((nose xk siempre se mete por el else)))))))))))))))))))))))))))))))))))
IF (numero=salir) OR (numero=upcase(salir)) THEN elegirjugador:=0
ElSE
cifra := ORD(numero[1]) - ord('0');
IF (numero[1]<'1') OR (numero[1]>'6') OR (LENGTH(numero)<>1) THEN
BEGIN
WRITELN;
WRITELN('El numero es erroneo!!!!');
END;
IF (rand=cifra) THEN
BEGIN
WRITELN( '=> Tu eres el jugador 1 <=');
WRITE('Pulsa intro para continuar');
READLN;
END;
UNTIL ((cifra=rand) AND (LENGTH(numero)=1)) OR (numero=salir) OR (numero=upcase(salir));
END;
FUNCTION elegirjugador:byte;
(***************************************************************************
DADO de 6 lados para ver quien es el jugador 1
***************************************************************************)
CONST
salir='salir';
VAR
cifra,rand:integer;
numero:STRING[6];
BEGIN
CLRSCR;
elegirjugador:=1;
WRITELN;
WRITELN('Escribe `salir´ si quiere salir del juego');
WRITELN;
WRITELN(' Para ver quien es el jugador que empieza a jugar primero voy a pensar un numero al azar entre 1 y 6. El jugador que lo acierte sera el jugador 1 y el otro sera el jugador 2.');
WRITELN;
WRITELN;
RANDOMIZE;
rand:= RANDOM(5)+1;
REPEAT
WRITELN;
WRITELN('Escribe un numero de 1 al 6 y pulsa intro');
READLN(numero);
((((((((((((((((((((((((nose xk siempre se mete por el else)))))))))))))))))))))))))))))))))))
IF (numero=salir) OR (numero=upcase(salir)) THEN elegirjugador:=0
ElSE
cifra := ORD(numero[1]) - ord('0');
IF (numero[1]<'1') OR (numero[1]>'6') OR (LENGTH(numero)<>1) THEN
BEGIN
WRITELN;
WRITELN('El numero es erroneo!!!!');
END;
IF (rand=cifra) THEN
BEGIN
WRITELN( '=> Tu eres el jugador 1 <=');
WRITE('Pulsa intro para continuar');
READLN;
END;
UNTIL ((cifra=rand) AND (LENGTH(numero)=1)) OR (numero=salir) OR (numero=upcase(salir));
END;
Valora esta pregunta


0