Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Raul muchas gracias por tu atencion, de veras.

Puedes agregarme al msn : [email protected]
y te paso el programita por alli, o si lo prefieres mandame un correo a mi direccion y te contesto a tu correo con el programita.
Que te parece?

Un saludo
Responder Con Cita
  #2  
Antiguo 17-01-2007
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 21
lag_0 Va por buen camino
y la nota será para ti o para quien haga tu practica?

si los hay con morro
Responder Con Cita
  #3  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Cita:
Empezado por lag_0
y la nota será para ti o para quien haga tu practica?

si los hay con morro
No me confundas, la práctica esta hecha en su totalidad ( me ha llevado bastante tiempo) sólo que busco ayuda porque nosé modularizar (me crea conflicto) un parrafo de apenas 7 lineas ...

No creo que sea apropiado tu comentario, puesto que la práctica me la he currado durante un mes, y solo es ultimar un detalle que ya le he dado mil vueltas.

Un saludo desde Madrid
Responder Con Cita
  #4  
Antiguo 17-01-2007
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 21
lag_0 Va por buen camino
y por que no pasteas los codigos que te fallen aquí y explicas el fallo y no pones tu email con intencion de que te ayude alguien sin tan solo mover un dedo? Que esperabas asistencia gratis por e-mail? Es club delphi no club hermanitas de la caridad y aún así con respeto y educación se hacen ayudas desinteresadamente claro que se harán siempre y cuando el que pide ayuda esté interesado en trabajar.

A que esperas, pastea tu codigo y el error y la versión de delphi que estás utilizando y verás que rapido encuentras una solución.
Responder Con Cita
  #5  
Antiguo 17-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Aqui está el codigo, se trata de modularizar el programa principal, meter los 5 primeros bloques (o parrafos de instrucciones) cada uno en un procedure para así hacer el programa principal lo menos extenso posible.

El problema me surgió al modularizar el 3º bloque que contiene otro subprograma,y creo que se crea un conflicto de variables (un efecto lateral) y aunque el compilador lo da por bueno, en el tiempo de ejecución no se obtienen resultados esperados (en el descarte del poker cambia todas las cartas en vez de las deseadas,....)


GRacias :


Código Delphi [-]
 
PROGRAM JuegoPoquer;
{$APPTYPE CONSOLE}

USES
  SysUtils,
  PoquerDados in 'PoquerDados.pas',
  PoquerDadosES in 'PoquerDadosES.pas',
  TiposPoquerDados in 'TiposPoquerDados.pas';
  {El prograa principal del Juega del Poquer usa las unidades de importación
  ´PoquerDados´ y ´PoquerDadosES´ de la biblioteca ´LibPoquerDados´ y la
    unidad ´TiposPoquerDados´}

PROCEDURE        LeeDados(VAR vec:TValorDados);
{Este procedimiento genera la tirada de 4 dados}
VAR
        i:integer;
BEGIN
        FOR i:=1  TO 4  DO BEGIN
        Vec[i]:=TiraDado;
        END;
END;
 
PROCEDURE     LeeMano  (v:TValorDados;  VAR   Mano:TMano);
{Este procedimiento se encarga de leer los campos de una mano, a partir del
 valor de los dados}
VAR
        dat:TDatosCombinacion;
BEGIN
        dat:=Combinacion(v);
        Mano.Dados:=v;
        Mano.Combinacion:=dat;
END;
 
PROCEDURE     CambiaDados(v:TValorDados;cad:string; VAR vec:TValorDados);
{Este procedimiento lo he creado para la opción que se da a ambos jugadores de
 volver a tirar algún dado. Le entra el valor de los dados antiguos y un string
 con información a cerca de los dados q se desean volver a tira, y salen los
  dados actualizados con las nuevas tiradas}
VAR
        i:integer;
BEGIN
     vec:=v;
     FOR i:= 1 TO length(cad) DO BEGIN
        IF cad[i]='1' THEN
          vec[1]:=Tiradado
       ELSE IF cad[i]='2' THEN
            vec[2]:=tiradado
            ELSE IF  cad[i]='3' THEN
                 vec[3]:=tiradado
                 ELSE IF  cad[i]='4' THEN
                      vec[4]:=tiradado;
     END;
     {Se comprueva si algún elemento del string es un 1, 2, 3 o 4, y si lo es
      se tira el dado que corresponde a ese número}
END;
 
VAR
   {Variables que uiliza el programa principal}
        dados1,dados2:TValorDados;
        jugador1,jugador2:TMano;
        cambio:string;
        Gana1,iguales:boolean;
        fin:char;
 
 
BEGIN     {PROGRAMA PRINCIPAL}
   
REPEAT
     
     writeln('Jugador 1:');      {BLOKE 1}
     readln;
     LeeDados(dados1);  {Genera aleatoriamente los dados del jugador 1}
     LeeMano(dados1,jugador1);
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln;
     {Jugada del Jugador 1, por pantalla se escriben los dados que ha sacado
      y la cominación que tiene (mano del jugador 1)}
     
 
     writeln('Jugador 2:');           {BLOKE2}
     readln;
     LeeDados(dados2); {Genera aleatoriamente los dados del jugador 2}
     LeeMano(dados2,jugador2);
     EscribeMano(jugador2);
     writeln;
     writeln;
     writeln;
     {Jugada del jugador 2, por pantalla se escriben los dados que ha sacado
      y la cominación que tiene (mano del jugador 1)}

     
                          {BLOKE3}
      writeln('Jugador 1, indique los dados que desea volver a     tirar separados     por -:');
     readln(cambio);
     CambiaDados(dados1,cambio,dados1);
     writeln;
     writeln('Jugador 1:');
     LeeMano(dados1,jugador1);
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln;
     {Se da opción al jugador 1, para que vuelva a tirar algún dado, yse escribe
      la nueva mano}
     
                         {BLOKE4}
      writeln('Jugador 2, indique los dados que desea volver a tirar separados por -:');
     readln(cambio);
     CambiaDados(dados2,cambio,dados2);
     writeln;
     writeln('Jugador 2:');
     LeeMano(dados2,jugador2);
     EscribeMano(jugador2);
     writeln;
     writeln;
     writeln;
     {Se da opción al jugador 1, para que vuelva a tirar algún dado, yse escribe
      la nueva mano}
     
                 {BLOKE5}
     writeln('RESULTADOS FINALES:');
     writeln;
     writeln('Jugador 1:');
     writeln;
     EscribeMano(jugador1);
     writeln;
     writeln;
     writeln('Jugador 2:');
     writeln;
     EscribeMano(jugador2);
     writeln;
     writeln;
     
{FIN MODULARIZACION}
 
 
 
MayorOIgual(jugador1,jugador2,Gana1,iguales);
     
 
{Llamada al procedimiento ´MayorOIgual´ para saber que jugador gana la
      partida}
     
 
 
IF Gana1 THEN
        writeln('¡!! GANA JUGADOR 1 ¡!!')
     ELSE
        IF iguales THEN
          writeln('¡!! HAY EMPATE ¡!!')
        ELSE
          writeln('¡!! GANA JUGADOR 2 ¡!!');
     writeln;
     write('Otra ronda?  (S/N)');
     REPEAT
     readln(fin);
     writeln;
     UNTIL  (fin='s') or (fin='S') or (fin='n') or (fin='N');
     writeln;
  UNTIL  (fin='N')  or (fin='n')
END.

Última edición por marcoszorrilla fecha: 17-01-2007 a las 23:39:10.
Responder Con Cita
  #6  
Antiguo 17-01-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
ByIvan, estoy seguro que en este lugar siempre se ayuda a quien lo necesita; sin hacer distinción de ningún tipo. Y te lo digo porque ya tengo un buen tiempecito por este club y siempre he encontrado solución a mis problemas.

Lo único que se pide a cambio es que se cumplan un pequeño número de normas de convivencia (que nisiquiera son reglas estrictas), vamos pues, que lo único que se pide es que se sigua una guía de estilo. Y desafortunamente, a pesar de que has dicho que ya la leíste, a mi me parece que no lo has hecho porque sigues haciendo cosas que van en contra de esta guía. Entonces pues, te invito a que la leas nuevamente.

Y te invito a que conozcas tambien la posibilidad de utilizar etiquetas vb para encerrar tu código y sea mas legible para todos nosotros. Edito: Este párrafo ya no es necesario ya que Marcos ha modificado tu mensaje

Ahora bien, dicho lo que se tenía que decir, mencionas que no tienes ningún error de sintaxis. Entonces, si nos dices que es lo que sale mal y en que parte de tu código esto no se realiza como debe de ser, tal vez este club te pueda dar una idea de como resolver ese problema específico.

A mi me parece que lo que requieres son dos procedimientos más (uno que realize lo que tienes en bloque 1 y 2, y otro que realize lo que tienes en el bloque 3 y 4), este procedimiento recibiendo un parámetro que indique que jugador es para hacer la distinción correspondiente.

Pero como te mencioné, si nos dices que es lo que sale mal, y en que parte de tu código las cosas no se hacen como se supone, tal vez pueda tener una mejor idea.

Saludos.
__________________


Última edición por ContraVeneno fecha: 18-01-2007 a las 00:03:14.
Responder Con Cita
  #7  
Antiguo 18-01-2007
byivan byivan is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
byivan Va por buen camino
Joer pues parala proxima vez, me anoto lo del código para que sea mas legible, lo siento.

El porblema es que al meter en un procedure el bloque 3 4 y 5 me produce un problema en tiempo de ejecucion (el compilador lo pasa)
por tanto me gustaria que me escribieseis como serian los procedures del bloque 3 4 y 5.

Muchas gracias!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Programador desesperado falbano Conexión con bases de datos 8 08-04-2005 17:25:55
Problema con el programa para saber si estoy conectado. Kamikaze Internet 3 25-11-2004 01:02:40
Programa para saber si estoy conectado. Kamikaze Internet 2 13-11-2004 16:47:46
Realmente Desesperado Descendents Impresión 1 09-06-2003 23:20:14


La franja horaria es GMT +2. Ahora son las 14:28:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi