Bennu Game Development

Foros en Español => Offtopic => Topic started by: lukas182 on December 26, 2007, 05:43:03 PM

Title: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 26, 2007, 05:43:03 PM
Hola!, sigo sin poder postear en los foros de Divsite, cree otra cuenta y me sigue dando error en el login.. incluso haciendo copy/paste del correo q se manda al buzon, ya se que soy algo tonto pero tanto como pa confundirme en un copy/paste creo q es demasiado xD!.

Ya termine el juego de cartas, que presente en el foro de divsite, se trataba de un juego de Tute, se puede mejorar, aun asi creo q kedo bastante bien. Aki dejo la direccion para el ke lo kiera probar:

http://rapidshare.com/files/79213692/Pctute2007.rar.html

Si alguno kiere y puede postearlo en el foro divsite en el post "Pc tute para Fenix" en el apartado Proyectos, se agradeceria :) .

Las otras preguntas son sobre programacion en fenix tb:

1)Quiero crear un array que guarde los identicadores de ua serie de procesos que creo de la manera:
[code language="bennu"]
jugadores[10];
for(i=0;i<11;i++)
     id_jugador=jugador(paramentros);
     jugadores=id_jugador;
end
[/code]
Suponemos que el proceso jugador es:
[code language="bennu"]
process jugador(parametros)

private

int numero;
String nombre;
int edad;

... //Resto del proceso
[/code]
Bien el problema reside, en que si yo kiero acceder a uno de esos id de los procesos,accedere a su correspodiente posicion del array, lo que pasa que solo me permite modificar los atributos x e y del proceso correspondiente, e intentado poner public las variables del proceso jugador y me sigue dando error, como debo acceder a esas variables?

[code language="bennu"]
//Acceder al jugador 3
write(0,200,200,0,jugadores[3].nombre); <- esto daria error
write_int(0,200,200,0,&jugadores[3].x); <-seria correcto
[/code]

Solo eso de momento, sorry por tener q postear aki sobre preguntas de Fenix , pero es que no puedo acceder al otro foro.

Saludos!
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 26, 2007, 05:56:37 PM
Que error exacto te da el otro foro?
De donde sos y que proveedor de internet tenes?
Fuiste baneado alguna vez en el foro de divsite con algun otro nick?
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 26, 2007, 07:15:52 PM
Oh! Ahora lo probe para decirte el error exacto del foro y se conecto correctamente... Supongo que algo tocarias.. xq llevaba mas de 1 mes se poder hacer login alli xD. Solo he usado el nick lukas182, nunka fui baneado tampoko.

Cambiando de tema, sabes como solucionar lo del array de ids? , o si acaso, ya lo posteare mañana en el divsite, gracias :) .
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 26, 2007, 07:34:30 PM
Exactamente toque... nada... es mas, ni entre al foro desde que te puse la pregunta... seguro algo mal estabas haciendo o tenes el cache del explorador activado...
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 26, 2007, 07:36:15 PM
nombre es privado, por eso te da error...
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 26, 2007, 08:14:53 PM
MmmM, bastante extraño ya que no kambie nada de la configuracion del explorador xD.

Lo del nombre.. aun declarandolo como "public" en el proceso sigue dando error.

[code language="bennu"]
program test;


Global
jugadores[10];
id_jugador;
i;

Begin

    set_mode(640,480,16);
   
    for(i=0;i<11;i++)
        id_jugador=jugador();
        jugadores=id_jugador;
    end

    write(0,200,200,0,jugadores[2].nombre); <---- Error

    repeat
       Frame;
    end
end
process jugador()

public

nombre;

Begin

    nombre= " Pedro ";

end

[/code]
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: Drumpi on December 26, 2007, 10:36:29 PM
Eso se debe a que se deben declarar la public antes que el proceso (externo) que las llama. Seguramente hayas escrito el proceso jugadores después de las llamadas... como el caso que indicas en tu ejemplo. Hay dos soluciones:
-Escribir el proceso jugadores antes del begin del main (o de cualquier proceso que quiera acceder)
-Como no siempre es posible conseguir un orden correcto, lo mejor es declarar las cabeceras de los procesos previamente. Si mi memoria no me falla sería algo así (según tu ejemplo)

[code language="bennu"]
program test;


Global
jugadores[10];
id_jugador;
i;

//****Zona de declaraciones de procesos
declare jugador()

public
string nombre;
end
//****fin declaracion de proceso jugadores

Begin

    set_mode(640,480,16);
   
    for(i=0;i<11;i++)
        id_jugador=jugador();
        jugadores=id_jugador;
    end

    write(0,200,200,0,jugadores[2].nombre); <---- Error?

    repeat
       Frame;
    end
end

process jugador()
Begin
    nombre= " Pedro ";
end

[/code]

Esto debería bastar, los declare son tan nuevos que apenas los he usado aun ^^U
PD: no te olvides los tipos de datos, sólo los INT vienen predefinidos, las strings no.
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: GINO on December 27, 2007, 01:45:30 PM
hacen falta dos end:

[code language="bennu"]declare jugador()
   public
      string nombre;
   end
end[/code]
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 27, 2007, 03:20:06 PM
Ops! no sabia que existia el declare xD. Aun asi.. sigue dando error -.- .
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: Drumpi on December 27, 2007, 04:25:15 PM
Normal, se me ha pasado por alto un error gordo: si usas repeat, no puedes finalizarlo con END, tienes que usar UNTIL (condicion). Para un bucle infinito se usa:
loop
//codigo
end
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 27, 2007, 08:36:08 PM
Se! eso era un error bastante gordo xD.. aun asi ni me lo reporto el compilador.. ya que donde inicialmente da error es en el acceso a esa variable.. Dejemoslo.. no kiero ser pesado, de verdad.. xD( si no lo fui ya lo suficiente ). Uso Fenix 0.92a.

Saludos :)
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 27, 2007, 09:14:32 PM
Lo mas simple es poner el codigo completo... seguro estas haciendo algo mal...
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 27, 2007, 10:08:41 PM
El codigo es este :

[code language="bennu"]
program test;
 
 
Global
jugadores[10];
id_jugador;
i;
 
//****Zona de declaraciones de procesos
declare jugador()
 
public
string nombre;
end
end
//****fin declaracion de proceso jugadores
 
Begin
 
    set_mode(640,480,16);
 
    for(i=0;i<11;i++)
        id_jugador=jugador();
        jugadores=id_jugador;
    end
 
    write(0,200,200,0,jugadores[2].nombre);// <---- Error?
 
    repeat
       Frame;
    until(key(_esc));
end
 
process jugador()
Begin
    nombre= " Pedro ";
end

[/code]
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: HaCkZJuaNN on December 27, 2007, 11:20:11 PM
claro. La variable jugadores tienes que declararla como tipo jugador.

sustituye la linea donde declaras jugadores:

jugadores[10];

por esto:

jugador jugadores[10];

así podrás acceder a las variables públicas propias del proceso jugador
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 28, 2007, 02:17:00 AM
otra cosa, si en jugador, no pones un loop con un frame, tampoco va a funcionar, ya que el proceso, comienza y termina...
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 28, 2007, 02:22:10 AM

program test;

//****Zona de declaraciones de procesos
declare jugador()
public
    string nombre;
end
end
//****fin declaracion de proceso jugadores


Global
jugador jugadores[10];
i;


Begin

    set_mode(640,480,16);

    for(i=0;i<11;i++)
        jugadores[i]=jugador();
    end

    write(0,200,200,0,jugadores[2].nombre);// <---- Error?

    repeat
       Frame;
    until(key(_esc));
    let_me_alone();
end

process jugador()
Begin
    nombre= " Pedro ";
    while(1)
       Frame;
    end;
end


Lo mas importante de esto no es como hacerlo, sino entender el "porque"
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: lukas182 on December 28, 2007, 10:17:16 AM
Gracias :D

@Splinter~ pues claro que lo entiendo :) . Simplemente no encontraba el error y por eso lo pregunte, creo que es el cometido de un foro  :o , aparte de otros temas diversos.
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: SplinterGU on December 28, 2007, 02:19:39 PM
Perfecto... de nada... ;)
Title: Re: Juego Cartas en Fenix y alguna preguntilla
Post by: FreeYourMind on March 16, 2010, 07:07:39 PM
Windgate, como ves ya teniamos juegos de cartas en Bennu :)