Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/06/2015, 00:40
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: Pila con solso 5 numeros para mascota virtual :)

Entiendo. Imagina que llegas a una tienda de mascotas, y dices "Quiero un perrito de raza X, con el color blanco y que sea cariñoso y simpático. Ya que lo quiero para jugar con él". Pues el de la tienda de mascotas sabe que tiene que darte algún perro que cumpla con todas las especificaciones que tú le has dado. Sin embargo, el como un perro sea un perro y haga todas las cosas que hace un perro... en cuanto a su funcionamiento como ser vivo... a ti te dan igual mientras que cumpla los requisitos que le has dicho. A ti te da igual cuantas veces le lata de forma normal el corazón por minuto, cuantos litros de sangre circulen por su cuerpo, lo que le mida el intestino... a ti todo eso te da igual mientras sea un perro de raza X, el color blanco, etc.

Por lo tanto, a tu constructor de perros le vas a pasar las variables que tú le dices al dependiente. Sin embargo, el perro puede tener otras variables que puede que otro usuario pase en un constructor de perros diferente, o puede que haya variables que no se asignen en ningún constructor, pero que el perro igualmente tenga.

Así llegamos a tu caso, en el que debes de tener unas variables. No pueden ser locales de ningún método de alimentar, o bañar, etc. Porque si son locales, desaparecen tras terminar el método. Han de ser variables globales. Y por lo tanto se convierten en variables susceptibles de ser inicializadas en un constructor de perros, aunque también puede tener esas características y que a nadie le importe mientras el perro sea y se comporte como esperamos de un perro, el cual es el caso de la pila.

Una vez que la variable global, que viene a ser como una característica del perro o de su comportamiento está declarada... ya puedes trabajar con ella.

Yo simplemente te diría que sea una variable numérica, ya que va a usarse de contador. A ese contador le puedes sumar uno a su valor, o reinicializarla cuando quieras o cuando se cumpla alguna condición (Cuando llegue a 5).

En tu caso, lo que intuyo que quieres hacer es que no reste hambre hasta que haya comido 5 veces. Bueno, pues pones algo como:
Código:
if(variablepilacomida>=5){
hambre-=5;
variablepilacomida=0;
print ("Qué rico, estoy lleno")
}
else
print ("Comiendo... "+variablepilacomida+"/5")
Luego puedes seguir metiendo más y más variables para controlar X o Y función. Y no tienes por qué mostrarlas al usuario. Muchas variables son de uso interno y que al usuario no le importan para nada. Igual que a ti no te importa cuantas pulsaciones por minuto tenga tu perro siempre y cuando sean las normales para su perro, la cifra en concreto te da igual... con tal de que sea un perro que no esté enfermo y se muera por un infarto. Mientras no le pase eso... la cifra de sus pulsaciones te da exactamente igual... mientras sea blanco, cariñoso y juguetón, etc.

Por lo tanto, si crees que necesitas otra variable booleana tipo comido=true cuando variablepilacomida=5 y que pase a false solo después de jugar, para que no puedas volver a empezar a comer 1/5, 2/5 etc sin antes haber hecho otra cosa, pues utiliza todas las variables que necesites para hacer de tu programa un programa más completo y que controle más cosas.

Para programar tus propios programas solo necesitas 1 cosa: Imaginación.
Una vez que tienes claro qué quieres hacer (lo has imaginado) ya solo necesitas otra cosa más: "Abstracción". El proceso de llevar un concepto de la vida real a un concepto abstracto como puede ser una variable, un objeto, un método, etc.

Para programar para otros no te hace falta imaginación, ya los otros te dicen: "Hazme un programa que haga X cosa". Lo que si sigues necesitando es la capacidad de abstracción.
Para abstraer un concepto de la vida real... lo primero que necesitas es conocer ese concepto y todas sus propiedades. Las propiedades que después se convertirán en variables globales. Y las acciones que hará, tanto internas (controles de procesos, etc) como externas (que den directamente un resultado al usuario) Y todas ellas han de estar en la mente del programador antes de escribir la primera línea de código. El programador ha de conocer a la perfección los objetos de la vida real con los que quiere trabajar antes de abstraerlos. Llevar esos conceptos al código es muy fácil después de que sepas exactamente todas las características que tiene y su función. Si quieres averiguar cuanta distancia puede recorrer tu perro a la hora has de irte a las características más elementales del perro. No con velocidad en km/h... que si, puedes tener ese dato... pero si no lo tienes tendrás que averiguarlo a partir de datos más simples, y quizás llegues a la longitud de las patas, la fuerza de impulso vertical, lo que llegan a levantarse del suelo en el trote, y el ángulo que recorre cada pata al trotar. Con todo eso puedes llegar a saber cuanta distancia recorre en una zancada. con la velocidad de zancadas averiguar los km/h.

Quiero decir, que eso lo decides tú, a partir de qué datos vas a trabajar y como vas a controlar tu programa. Pero para eso has de conocer algún dato del objeto de la vida real. Ya sea conocer su velocidad en km/h o conocer su velocidad de zancada y la distancia de cada zancada... o la fuerza de las patas en cada zancada... has de conocer algún dato que te pueda servir para sacar la información con la que pretende trabajar.

en tu caso, has de conocer algo con respecto a ese proceso de llenar la pila. Como funciona exactamente tu programa... y luego, qué información necesitas saber para que funcione de esa manera. Necesitas un contador? Necesitas controlar también X cosa? Pues oye... un contador es una variable numérica. Una variable de control de si/no? Eso es una variable booleana. Pero eso debes de conocer tú la información que necesitas para que tu programa haga X o Y cosa.

Última edición por Kritik; 09/06/2015 a las 00:50