auto reveal

This commit is contained in:
Tim Wundenberg
2018-05-25 11:33:00 +02:00
parent 002a851fc2
commit ce9e703c6e

View File

@@ -108,26 +108,36 @@ namespace CoopSweeper.GameTypes
return true; return true;
} }
private void InternalReveal(int x, int y)
public void Reveal(int x, int y)
{ {
CheckMap();
var field = Map[x, y]; var field = Map[x, y];
//if (field.CheckID < _checkID) if (field.CheckID == _checkID)
// return; return;
field.CheckID = _checkID;
if (field.State != FieldState.REVEALED) if (field.State != FieldState.REVEALED)
{ {
field.State = FieldState.REVEALED; field.State = FieldState.REVEALED;
if (field.ContainsBomb) if (field.ContainsBomb)
GameFinished?.Invoke(false); GameFinished?.Invoke(false);
if (field.SurroundingBombs == 0)
foreach (var surField in GetSorroundedFields(x, y))
{
InternalReveal(surField.X, surField.Y);
}
} }
if (CheckGameFinished()) if (CheckGameFinished())
GameFinished?.Invoke(true); GameFinished?.Invoke(true);
}
//_checkID public void Reveal(int x, int y)
{
CheckMap();
_checkID++;
InternalReveal(x, y);
} }
public void ToggleMark(int x, int y) public void ToggleMark(int x, int y)