Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda con algunas funciones y procedimientos!!

Estas en el tema de Ayuda con algunas funciones y procedimientos!! en el foro de Programación General en Foros del Web. Hola tengo porblemas con las funciones de los juegos mayores(FULL POKER etc) cunado las compilo todo bien no me salta ningun error pero en el ...
  #1 (permalink)  
Antiguo 04/12/2006, 06:31
 
Fecha de Ingreso: diciembre-2006
Mensajes: 1
Antigüedad: 17 años, 5 meses
Puntos: 0
Exclamación Ayuda con algunas funciones y procedimientos!!


Hola tengo porblemas con las funciones de los juegos mayores(FULL POKER etc) cunado las compilo todo bien no me salta ningun error pero en el momento de ejecutarlas salen siempre true! y no encuentro cual puede ser el error...y tambien tengo problemas con el procedimiento cambiar dados q no me cambia los dados! si me pueden solucionar el error se los agradecerìa mucho1!(uso el compilador Free pascal compilater win32 para compilar) desde ya muchas gracias...

ro



Program generala;

uses

crt,dos;

type


matriz = array [1..2,1..5] of byte;

t_puntos= array [1..11, 1..5] of byte;

vector= array [1..6] of byte;

var



i,j:integer;

cant_jugadores:integer;

dados: matriz;

E,F,P,G,D: boolean;

tabla:t_puntos;

s:boolean;



{FUNCION QUE VALIDA EL INGRESO DE NUMEROS POR TECLADOS}
function validar:integer;

var
c:char;

s:string;

error:integer;

valid:integer;

begin

s:='';

repeat

repeat

c:=upcase(readkey);

until c in ['1','2','3','4','5','6','7','8','9',#13];

write (c);

if (c<>#13) then s:=s+c;

until (c=#13);

val (s,valid,error);

validar:=valid;

end;


procedure cambiardados (dados: matriz);

var

cambio:integer;

I,j: integer;

begin

writeln ('Elija el dado a cambiar, cero para no cambiar nada');

readln (cambio);

cambio:= validar;

while (cambio<>0) do

begin

if (dados[2,cambio]= 1) then

writeln ('Dado ya seleccionado, elija otro')

else

dados[2,cambio]:= 1;


end;

for j:= 1 to 5 do

begin

if (dados [2,i]= 1) then

begin

dados[1,i]:= random (6) + 1;

end;



end;

readkey;
end;

{FUNCION PARA SELECCIONAR CANTIDAD DE JUGADORES}

function seleccionar_cant_jugadores:byte;

var

aux:integer;

begin

repeat

writeln ('Ingrese la cantidad de jugadores');

aux:= validar;

if ((aux>5) or (aux<2)) then

writeln ('la cantidad de jugadores ingresados esta fuera de rango');

until (aux<6) and (aux>1);

seleccionar_cant_jugadores:=aux;

end;


{PRECEDIMIENTO QUE ORDENA LOS DADOS TIRADOS ANTERIORMENTE }


procedure ordenar (var dados: matriz);

var

i,j,k,aux: integer;

begin

for i:= 1 to 4 do

begin

aux:=dados[1,i];

k:= i;

for j:= (i+1) to 5 do

begin

if (dados [1,j]< aux) then

begin

aux:= dados [1,j];

k:= j;

end;

dados [1,k]:= dados [1,i];

dados [1,i]:= aux;

end;
end;
end;


{PROCEDIMIENTO QUE TIRA LOS DADOS}

procedure dado (dados: matriz);

var

color: byte;

i: integer;

j: integer;

begin

for i:= 1 to 5 do

begin

dados [1,i]:= random (6)+1;

dados [2,i]:= 0;

textcolor (10);

end;

ordenar(dados);

for j:= 1 to 5 do



write ('[',dados [1,j], ']');

writeln (' ');

writeln (' ');


readkey;

end;

{FUNCIONES QUE COMPRUEBAN SI HAY JUEGOS MAYORES}

function escalera (dados: matriz):boolean;

Begin
Ordenar (dados);

If ((Dados [1,1] = 1) and (Dados [1,2] = 2) and (Dados [1,3] = 3) and (Dados [1,4] = 4) and (Dados [1,5] = 5)) then


escalera:= true

else

if ((Dados [1,1] = 2) and (Dados [1,2] = 3) and (Dados [1,3] = 4) and (Dados [1,4] = 5) and (Dados [1,5] = 6)) then

escalera:=true

else

if ((Dados [1,1] = 1) and (Dados [1,2] = 3) and (Dados [1,3] = 4) and (Dados [1,4] = 5) and (Dados [1,5] = 6)) then


escalera:= true;

end;

function full (dados: matriz): boolean;

begin

ordenar (dados);

If ((Dados [1,1] = Dados [1,3]) and (Dados [1,4] = Dados [1,5]) and (Dados [1,1]<> Dados [1,4]))

or

((Dados [1,1] = Dados [1,2]) and (Dados [1,3] = Dados [1,5]) and (Dados [1,1]<> Dados [1,3])) then

full:= true;

end;

function poker (dados:matriz):boolean;

begin
ordenar(dados);

if (( dados[1,1] = dados[1,4] ) and ( dados[1,1] <> dados [1,5] )) then

poker:= true

else

if (( dados[1,2] = dados [1,5]) and ( dados [1,1]<> dados [1,2] )) then

poker:= true;

readkey;


end;


function generala (dados: matriz): boolean;

begin

ordenar (dados);


If (Dados [1,1] = Dados [1,5]) then


Generala := true;

end;



function doblegenerala (dados:matriz; g:boolean): boolean;

var

d: boolean;

begin

ordenar (dados);


if g then


d:= true;


end;



procedure jugadasmayores(e,f,p,g,d: boolean);

begin

if d then

writeln ('doble generala');

if g then

writeln ('generala');


if p then

writeln ('póker');

if f then

writeln ('full');

if e then

writeln ('escalera');

readkey;

end;


{PROGRAMA PRINCIPAL}

Begin

Randomize;

Clrscr;

cant_jugadores:=seleccionar_cant_jugadores;

Clrscr;

For i:=1 to 11 do

Begin


For j:=1 to cant_jugadores do


Begin

dado(Dados);

G:= Generala (Dados);

D:= Doblegenerala (dados,g);

P:= Poker (dados);

F:= full (dados);

E:= escalera (dados);

jugadasmayores(d,g,p,f,e);

cambiardados(dados);


end;

end;



readkey;

end.

Este es el codigo muchisismas gracias1
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:03.