Simulación – Siembra y cosecha

Descripción

Dado un campo de 16 celdas (4×4).

En cada celda se puede sembrar, al inicio las celdas están vacias, cuando se hace click en ellas se siembra he inicia el proceso de crecimiento, si se realiza click nuevamente en una celda mientras esta en estado de crecimiento se procede a la siembra.

Los distintos estados se dan de la siguiente manera:

  • Blanco – empty (vacio)
  • Negro – just planted (en crecimiento)
  • Verde – growing (floreciendo)
  • Amarillo – inmature (no ha madurado)
  • Rojo – mature (maduro)
  • Cafe – overgrown (dañado)

Se puede controlar la velocidad del crecimiento.

Estado Inicial

En crecimiento


Implementación

enum CellState
{
    Empty,
    Planted,
    Green,
    Immature,
    Mature,
    Overgrow
}
class Cell
{
    public double step = 0.1;
    public double progress = 0;
    public CellState state = CellState.Empty;

    private const int prPlanted = 20;
    private const int prGreen = 100;
    private const int prImmature = 120;
    private const int prMature = 140;

    public void Plant()
    {         
        state = CellState.Planted;
        progress = 1;
    }

    public void Harvest()
    {         
        state = CellState.Empty;         
        progress = 0;     
    }     

    public void NextStep()     
    {         
        if ((state != CellState.Empty) && (state != CellState.Overgrow))         
        {             
            progress += step;             

            if (progress < prPlanted) state = CellState.Planted;            
            else if (progress < prGreen) state = CellState.Green;             
            else if (progress < prImmature) state = CellState.Immature;             
            else if (progress < prMature) state = CellState.Mature;             
            else state = CellState.Overgrow;         
        }     
    }
}

Descargar Proyecto