polimorfismo en variables públicas

Started by Prg, November 02, 2010, 02:51:55 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

Hola, recientemente estaba trabajando con varias funciones que tiene variable públicas y me doy cuenta que lo conveniente que sería poder hacer algo como esto:

declare interfaz enemigo();
private
estado,valentía, energía, fuerza, resistencia;
end
end

process araña(...) implements enemigo;
begin
...
end

process gusano(...) implements enemigo;
begin
...
end

process cienpies(...) implements enemigo;
begin
...
end

...
otros 10 enemigos que implementan la interfaz enemigo
...

...
procesos que no requieren tener ninguna de las variables públicas de los enemigos que nos hacen pensar en no usar locales
...

process protagonista(...);
private
enemigo enem;
begin
loop
    if (enemigo=collision(type araña))
       ener-=enemigo.fuerza;
    end

   if (enemigo=collision(type gusano))
       ener-=enemigo.fuerza;
   end

  if (enemigo=collision(type cienpies))
       ener-=enemigo.fuerza;
   end
...
frame;
end
end


esta es una sugerencia a largo plazo.
lo que hago actualmente es una variable de cada tipo de dato, hay otra forma?


por otro lado, hay alguna forma de declarar los parámetros de alguna función como públicos?, sería bueno poderlo hacer.

gracias y saludos

pd: espero no haber sugerido una barbaridad XD
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Windgate

Tu idea de herencia es muy buena, ahora mismo puedes usar INCLUDE de los fragmentos de código a heredar, el funcionamiento final sería muy similar, pero pierdes la posibilidad de tener una única variable de tipo enemigo para todos ellos :(

Sobre los parámetros PUBLIC no se puede, pero puedes usar una variable intermedia como parámetro y luego asignar.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

no esta mal la idea, pero hay algunos problemas:

1) las variables privadas no se pueden acceder desde otro proceso
2) eso deberia ser una declaracion, o sea, que esas serian las unicas variables (solo en el caso de las publicas) que tiene el proceso que use esa interfaz, se complicaria un poco el tema de variables.

entiendo la necesidad y me gusta, pero se necesita pensar bastante en como implementarlo sin que no de problemas o la otra es reescribir todo el core del compilador y del interprete, cosas que me parece un poco loco.

pero bueno, anotado y tendre en mete alguna manera de heredad cosas.

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

Quotepero bueno, anotado y tendre en mete alguna manera de heredad cosas.
excelente, gracias :)

Quote
1) las variables privadas no se pueden acceder desde otro proceso

se me pasó, ahí son públicas

[code language="bennu"]
declare interfaz enemigo();
private
public int estado;
public int valentía;
public int energía;
public int fuerza;
public int resistencia;
end
end[/code]

gracias, y saludos

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)