Code Monkey home page Code Monkey logo

granjavilla's Introduction

Granjavilla

Intro

Héctor es un granjero que se gana la vida cultivando plantas de distintas especies. Para ello tiene que sembrar, regar y cosechar sus cultivos. Después de la cosecha, Héctor vende lo que cultivó, obteniendo ganancias en la forma de monedas de oro. Héctor es muy ahorrativo y todo el oro que obtiene por sus cosechas lo acumula.

Nuestro objetivo es construir un juego en el que podamos controlar a héctor, utilizando el teclado para moverlo alrededor del tablero.

En este juego consideramos tres especies: maíz, trigo y tomaco.

Contamos con imágenes en la carpeta assets para ilustrar el juego.

TIP: En los nombres de las imágenes, recordar que "corn" es maíz y "wheat" es trigo en inglés.

Sembrar

Además de moverse, Héctor debe poder realizar las siguientes acciones:

  • Al apretar la M siembra una semilla de maíz en su posición actual.
  • Al apretar la T siembra una semilla de trigo en su posición actual.
  • Al apretar la O siembra una semilla de tomaco en su posición actual.

El acto de sembrar crea una nueva planta, con estas características:

Planta Situación al ser sembrada
Maíz Es una planta bebé, corresponde la imagen corn_baby.png
Trigo Está en etapa de evolución 0, corresponde la imagen wheat_0.png
Tomaco Es una planta hecha y derecha, corresponde la imagen tomaco.png

Atención
queda librado a cada quien si se permite, o no, que haya más de una planta en una misma posición. Vale cuidarse de no hacerlo al principio, y agregar la validación más adelante.
OJO si se pone en la misma posición p.ej. dos plantas de maíz, entonces al regarse se van a regar las dos, al cosecharse se van a cosechar las dos, etc, pero se va a mostrar una sola imagen.

Regar

Una vez sembrado un cultivo, para que crezca debe ser regado. Cuando presionamos la R, Héctor debe regar la planta que se encuentre en su misma posición. Si no hay una planta, tirar una excepción indicando "no tengo nada para regar".

Qué pasa cuando se riega una planta:

Planta Efecto al ser regada
Maíz Si es bebé, pasa a adulta, y la imagen cambia a corn_adult.png.
Si ya es adulta, no hacer nada
Trigo Pasa a la etapa de evolución siguiente: de 0 a 1, de 1 a 2, de 2 a 3, de 3 vuelve a 0.
La imagen cambia a wheat_x.png, donde la x corresponde a la etapa de evolución.
Tomaco Se mueve a la celda de arriba.
Si ya está en el borde de arriba, no hace nada (o pasa abajo de todo :D)

Cosecha

Las plantas adultas se pueden cosechar. Cuando presionamos la C, se espera que Héctor coseche la planta que se encuentra en su misma posición. Otra vez, si no hay ninguna planta, tirar una excepción indicando "no tengo nada para cosechar".

Si hay una planta, puede o no estar lista para la cosecha. El maíz está listo para la cosecha si es adulto, el trigo si está en nivel de evolución 2 o más, el tomaco siempre.

Si la planta está lista para la cosecha, se la cosecha, para luego poder venderla. Héctor debe recordar qué plantas tiene para vender. El acto de cosechar una planta implica que desaparece del juego.
Caso contrario, no se hace nada.

Nota
Si hay varias plantas en el mismo lugar, puede ser que algunas estén para cosechar y otras no. OJO con eso.

TIP
Buscar la docentación de Wollok game en http://www.wollok.org/documentacion/wollokdoc/ para saber cómo obtener los objetos que están en la misma posición que Héctor. Ojo que al hacer eso, entre los objetos que encuentren va a estar el propio Héctor.

Venta

Usando la letra V, Héctor vende lo que tiene para vender.

Al hacerlo, obtiene el oro por cada planta que tiene, de acuerdo a esta especificación:

  • Maíz: 150 monedas por planta.
  • Trigo: 100 monedas si está en etapa 2, 200 si está en etapa 3. La cuenta cheta es (etapa - 1) * 100.
  • Tomaco: 80 monedas por planta.

Héctor debe acumular el oro y recordar cuánto oro obtuvo en total. Al presionar la barra espaciadora, queremos que Héctor nos diga: cuántas plantas tiene para vender, y cuánto oro juntó en total.
P.ej. "tengo 800 monedas, y 3 plantas para vender".

Atenti
Una vez que vende lo que tiene para vender, obviamente, deja de tenerlo.

Bonus: varios mercados

Incluir dos o tres mercados (imagen market.png), eligiendo dónde poner cada uno en el tablero. Cada mercado tiene una cantidad de monedas, y mercadería para vender.
Hacer que Héctor solamente pueda vender si está en un mercado, y además el mercado tiene suficiente cantidad de monedas para pagar lo que Héctor tiene para vender. En tal caso, la mercadería se agrega al mercado, y se le descuentan las monedas que le da a Héctor en pago.

granjavilla's People

Contributors

asanzo avatar charlyraffellini avatar clombardi avatar faloi avatar fdodino avatar jcontardo avatar npasserini avatar palumbon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.