23
10. Enumeraciones y Propiedades

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

Embed Size (px)

Citation preview

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