10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que...
-
Upload
leonardo-balasco -
Category
Documents
-
view
17 -
download
1
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/1.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/2.jpg)
![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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/11.jpg)
![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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/14.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/15.jpg)
![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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/17.jpg)
<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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/18.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/19.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/20.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/21.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/22.jpg)
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.](https://reader036.fdocuments.es/reader036/viewer/2022070303/54ad5a3a497959bc0a8b5330/html5/thumbnails/23.jpg)