Comunidad de diseño web y desarrollo en internet online

No se si hay algun "pattern" para esto

Citar            
MensajeEscrito el 03 May 2011 11:00 pm
A ver, tengo una clase llamada InteligenciaArtificialBase desde la cual puedes crear tu propia inteligencia artificial enviando los parametros en el constructor o puedes crear una clase que herede de InteligenciaArtificial, y en el contructor de llamar a super() con los parametros que necesitas.

He creado varias inteligencias artificiales de ejemplo en clases InteligenciaArtificialAgresiva, InteligenciaArtificialPasiva e InteligenciaArtificialDefensiva

La cosa es que solo hay un par de funciones que son publicas. Las variables son de solo lectura y las funciones son protected (para poder sobreescribir las clases y hacer Inteligencias artificiales predefinidas como las mencionadas).

Tambien se pueden crear inteligencias artificiales a partir de la clase base solo enviando los parametros en el constructor.

Habia pensado hacer un singleton de las clases, debido a que las clases no se pueden modificar una vez configuradas y sus variables nunca cambian.

La pregunta es: Es el singleton el mejor pattern para hacerlo? porque no me queda muy claro que sea una buena idea.

PD: No hace falta que expliqueis el pattern que recomendais, con nombrarlo ya vale. Ya buscare yo solo su funcionamiento.

Un saludo y gracias

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 May 2011 04:08 am
Parece que hay alguna confusión de conceptos:

Habia pensado hacer un singleton de las clases, debido a que las clases no se pueden modificar una vez configuradas y sus variables nunca cambian.


Deberías releer el significado de Singleton, que sea única no quiere decir que sea estática o que nunca cambie.

Por otra parte si tienes una clase base, no veo necesidad de aplicar un patrón de diseño para simplemente extenderla.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 May 2011 08:36 am

solisarg escribió:

Parece que hay alguna confusión de conceptos:

Habia pensado hacer un singleton de las clases, debido a que las clases no se pueden modificar una vez configuradas y sus variables nunca cambian.


Deberías releer el significado de Singleton, que sea única no quiere decir que sea estática o que nunca cambie.

Por otra parte si tienes una clase base, no veo necesidad de aplicar un patrón de diseño para simplemente extenderla.

Jorge


Gracias por tu rapida respuesta.

Lo que pasas es que queria evitar la redundancia de instancias de una clase puesto que con una unica instancia es suficiente ya que todas son iguales.

Extrememos el ejemplo al limite. Imaginate que cada clase tiene 400 variables, evitar crear una instancia es realmente importante.

Un saludo

Por X-TUS

94 de clabLevel



 

chrome
Citar            
MensajeEscrito el 04 May 2011 10:45 am
Usualmente en los juegos, la IA que conduce los caracteres, si bien es la misma clase, no es una única instancia, porque cada uno tiene una situación particular, empezando por la posición en el mundo. Mucho me sorprendería que tu caso no fuera así, pero cuentanos tu mismo. Por cierto, ¿leíste los artículos de Hernán sobre AI aquí mismo en Cristalab?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 May 2011 03:21 pm
No, no lei el articulo de Hernan sobre AI, ahora los busco y les hecho un ojo.

La cosa es que a la funcion de la AI se le pasa el objeto del cual analiza sus variables y mueve el objeto en funcion de la misma configuracion.

Por X-TUS

94 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.