public void Move() { if (InfectionMap[currentYPos][currentXPos]) { switch (direction) { case EDirections.eUp: direction = EDirections.eRight; break; case EDirections.eDown: direction = EDirections.eLeft; break; case EDirections.eLeft: direction = EDirections.eUp; break; case EDirections.eRight: direction = EDirections.eDown; break; } } else { InfectionBursts++; switch (direction) { case EDirections.eUp: direction = EDirections.eLeft; break; case EDirections.eDown: direction = EDirections.eRight; break; case EDirections.eLeft: direction = EDirections.eDown; break; case EDirections.eRight: direction = EDirections.eUp; break; } } InfectionMap[currentYPos][currentXPos] = !InfectionMap[currentYPos][currentXPos]; switch (direction) { case EDirections.eUp: currentYPos--; break; case EDirections.eDown: currentYPos++; break; case EDirections.eLeft: currentXPos--; break; case EDirections.eRight: currentXPos++; break; } if (!InfectionMap.ContainsKey(currentYPos)) { InfectionMap.Add(currentYPos, new Dictionary <int, bool>()); } if (!InfectionMap[currentYPos].ContainsKey(currentXPos)) { InfectionMap[currentYPos].Add(currentXPos, false); } }
public void Move() { if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eInfected) { switch (direction) { case EDirections.eUp: direction = EDirections.eRight; break; case EDirections.eDown: direction = EDirections.eLeft; break; case EDirections.eLeft: direction = EDirections.eUp; break; case EDirections.eRight: direction = EDirections.eDown; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eFlagged; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eClean) { switch (direction) { case EDirections.eUp: direction = EDirections.eLeft; break; case EDirections.eDown: direction = EDirections.eRight; break; case EDirections.eLeft: direction = EDirections.eDown; break; case EDirections.eRight: direction = EDirections.eUp; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eWeakened; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eFlagged) { switch (direction) { case EDirections.eUp: direction = EDirections.eDown; break; case EDirections.eDown: direction = EDirections.eUp; break; case EDirections.eLeft: direction = EDirections.eRight; break; case EDirections.eRight: direction = EDirections.eLeft; break; } InfectionMap[currentYPos][currentXPos] = ENodeStates.eClean; } else if (InfectionMap[currentYPos][currentXPos] == ENodeStates.eWeakened) { InfectionMap[currentYPos][currentXPos] = ENodeStates.eInfected; InfectionBursts++; } switch (direction) { case EDirections.eUp: currentYPos--; break; case EDirections.eDown: currentYPos++; break; case EDirections.eLeft: currentXPos--; break; case EDirections.eRight: currentXPos++; break; } if (!InfectionMap.ContainsKey(currentYPos)) { InfectionMap.Add(currentYPos, new Dictionary <int, ENodeStates>()); } if (!InfectionMap[currentYPos].ContainsKey(currentXPos)) { InfectionMap[currentYPos].Add(currentXPos, ENodeStates.eClean); } }