10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que...

23
10. Enumeraciones y Propiedades

Transcript of 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que...

Page 1: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

10. Enumeraciones y Propiedades

Page 2: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.
Page 3: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente al definirlas.

enum TipoCarta{

Pica,Diamante,Trébol,Corazones

}

Page 4: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Se utilizaban “Flags”, típicamente int o char, para indicar qué estado o tipo era.

Para el tipo de cartas se podía indicar:

int tipoCarta;

0 : Pica1 : Diamante2 : Trébol3 : Corazones

Page 5: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

enum <nombreEnumeración> : <tipoBase>{

<literal_1>,<literal_2>,…<literal_n>

}

Sólo puede tener como miembros campos públicos, constantes y estáticos.

Page 6: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

enum NumeroCarta: int{

as = 1,dos,tres,cuatro,cinco,…jota = 11,quina = 12,kaiser = 13

}

Page 7: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Una variable de tipo enumerado se define igual que cualquier otra variable:

<nombreTipo> <nombreVariable>;

TipoCarta tipo;NumeroCarta numero;

Page 8: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Para la asignación, se debe asignar a la variable cualquiera de los valores de la enumeración:

<nombreVariable> = <valor_nombreTipo>;

tipo = TipoCarta.Corazones;Numero = NumeroCarta.kaiser;

Page 9: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Fuente: http://xnacommunity.codeplex.com/Wiki/View.aspx?title=IA_maqestados&referringTitle=Noticias

Page 10: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Cómo un enemigo decide realizar una acción? Qué lo hace decidir?

Podemos definirles estados:◦ Buscar◦ Patrullar◦ Seguir

Page 11: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.
Page 12: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

En un momento determinado estamos en un estado.

Si se cumple una condición se salta a otro estado.

Page 13: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Estados básicos del loop de un videojuego.

Page 14: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Estados de acciones de un enemigo.

Page 15: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.
Page 16: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Es una mezcla entre el concepto de variable y el concepto de método.

Externamente es accedida como si de una variable se tratase.

Internamente es posible asociar código a ejecutar en cada asignación o lectura de su valor.

Page 17: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

<tipoPropiedad> <nombrePropiedad>{

set{

<códigoEscritura>}

 get{

<códigoLectura>}

}

Page 18: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

En cada lectura se ejecuta el <codigoLectura>, y en cada escritura a la variable se ejecuta el <codigoEscritura>.

get : retorna el valor de la variable asociada a la propiedad.

set : cambia el valor de la variable asociada a la propiedad.

Page 19: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

En cada lectura se ejecuta el <codigoLectura>, y en cada escritura a la variable se ejecuta el <codigoEscritura>.

get : retorna el valor de la variable asociada a la propiedad.

set : cambia el valor de la variable asociada a la propiedad.

Page 20: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

public float Velocity{

get { return velocity; }set { velocity = value; }

}

get utiliza “return” para retornar un valor. set utiliza “value” para asignar un valor.

Page 21: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Las propiedades también pueden sólo asignar o sólo retornar el valor.

public Sprite SpriteBall {

get { return sp; }}

Page 22: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.

Ball ball;ball = new Ball(sm, "balon", 0, 0);

ball.SpriteBall.X = 0;ball.SpriteBall.Y = 0;

if( ball.Y <= 0)ball.Y = 0;

Page 23: 10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.