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!
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?
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 :) .
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...
nombre es privado, por eso te da error...
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]
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.
hacen falta dos end:
[code language="bennu"]declare jugador()
public
string nombre;
end
end[/code]
Ops! no sabia que existia el declare xD. Aun asi.. sigue dando error -.- .
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
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 :)
Lo mas simple es poner el codigo completo... seguro estas haciendo algo mal...
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]
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
otra cosa, si en jugador, no pones un loop con un frame, tampoco va a funcionar, ya que el proceso, comienza y termina...
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"
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.
Perfecto... de nada... ;)
Windgate, como ves ya teniamos juegos de cartas en Bennu :)