public GameResult Evaluate(MineField mineField) { var covers = Covers(); return(new GameResult( mineField .Mines() .Any(mine => !covers.IsCovered(mine)), covers.CoverCount() - mineField.Mines().Count())); }
public static GameState Quit(GameState current, MineField mineField) { return(current.Do( current .Covers() .UncoverRange( mineField.Mines()))); }