# -*- coding: utf-8 -*- """Auxiliar_13.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/drive/1jHm14m8di8IBJVL1-CpIq6qj7Q-w4Tav # Auxiliar 13 - Clases y Objetos ## Pregunta 1 En esta pregunta, usted deberá implementar la estructura recursiva lista (de la Clase 9) con clases de python. Esta debe poder agregar elementos a la lista, poder obtener la cabeza de la lista, obtener la cola de la lista y saber si la lista es vacia. Para lo anterior mencionado, cree métodos que logren hacer lo pedido. HINT: Incorpore un campo llamado *vacia*, que indique cuando la lista sea una lista vacia. Además, en vez de usar None para representar una lista vacia, utilice una Lista que tenga el campo *vacia* en True. """ # Escriba su código aquí """## Pregunta 2 A usted le gustan mucho las mascotas, y es por eso que se le ocurrió que sería buena idea poder tener mascotas dentro de un programa. Debido a lo anterior, usted debe crear la clase *Mascota que posea los siguientes campos y métodos: **Campos**: - nombre: representa el nombre de la mascota - tipo: representa que tipo de mascota es, por ejemplo: perro, gato, hamster, etc. - energía: un número que representa la cantidad de energía de la mascota. Con ella la mascota es capaz de jugar y realizar actividades. **Métodos**: - alimentar: alimenta a la mascota, teniendo como efecto que aumente su energía en 50. - jugar: la mascota juega, siempre y cuando tenga energía suficiente disponible para hacerlo. Asuma que jugar gasta 20 de energía. Además de los métodos anteriores, deberá implementar los métodos accesores (get) y mutadores (set) para todos los campos de la clase. Para los métodos alimentar y jugar, utilice los mutadores y accesores. """ # Escriba su código aquí """## Pregunta 3 En la Clase 20 se usa como ejemplo la Clase *Automovil*, la cual no está implementada. Es por esto que en esta pregunta deberá implementar la Clase *Automovil* con su respectivo constructor y los siguientes campos y métodos. **Campos:** - *color:* indica el color del automovil. - *nivel de gasolina*: indica el nivel actual de gasolina. - *velocidad actual*: indica la velocidad actual del automovil. - *velocidad máxima*: indica la velocidad máxima del automovil. - *apagado*: indica si el automovil está encendido o apagado. - *gasolina maxima*: indica la maxima cantidad de gasolina del automovil. **Métodos:** - *cambiarColor*: cambia el color del automovil. - *encender*: enciende el automovil (solo si está apagado). - *apagar*: apaga el automovil (solo si está encendido). - *acelerar*: aumenta la velocidad del automovil en 10 (la velocidad actual no puede superar la velocidad máxima). Además gasta 1 de gasolina. - *frenar*: disminuye en 10 la velocidad del automovil (la velocidad no puede ser menor a 0). - *gasolinaActual*: entrega la cantidad de gasolina actual. - *llenarEstanque*: llena el nivel de gasolina a su maximo. Asuma que al crear un vehiculo este empezará sin gasolina, apagado y no en movimiento. Además asuma que si el automovil ya llego a su velocidad maxima, de todas formas gastará gasolina al acelerar. """ # Escriba su código aquí