public List <AreaChange> Clear() { var newArea = new GameArea(area.Fields.GetLength(0)); var diffs = GameAreaHelper.FindDiffs(area, newArea); area = newArea; return(diffs); }
public List <AreaChange> LoadGame(string file) { var loadedArea = LoadArea(file); if (loadedArea == null) { return(null); } var result = GameAreaHelper.FindDiffs(area, loadedArea); area = loadedArea; return(result); }
public List <AreaChange> CellClicked(int row, int col) { area.Fields[row, col].Toggle(); var headers = GameAreaHelper.GetHeaders(orgArea); var orgRowProj = new Row(orgArea, row).Projection; var rowProj = new Row(area, row).Projection; var orgColProj = new Column(orgArea, col).Projection; var colProj = new Column(area, col).Projection; var rowDiff = !Same(orgRowProj, rowProj); var colDiff = !Same(orgColProj, colProj); var rowHeader = headers[row].RowHeader + (rowDiff ? " *" : ""); var colHeader = headers[col].ColumnHeader + (colDiff ? " *" : ""); var val = area.Fields[row, col].Enabled; return(new List <AreaChange> { new AreaChange { Row = row, Col = col, Value = val, RowHeader = rowHeader, ColumnHeader = colHeader } }); }
public bool IsDifference() { return(GameAreaHelper.FindDiffs(orgArea, area).Count > 0); }
public List <AreaChange> GetInitialState() { return(GameAreaHelper.GetHeaders(orgArea).Select(a => MarkChanges(a)).ToList()); }