public void Reset(Game other) { Array.Copy(other._numbers, _numbers, 16); }
public bool Equals(Game other) { for (int i = 0; i < BoardHeight; ++i) for (int j = 0; j < BoardWidth; ++j) if (Numbers[i, j] != other.Numbers[i, j]) return false; return true; }
public Game(Game other) { Array.Copy(other._numbers, _numbers, 16); //Range(0, 4).ForEach(i => Range(0, 4).ForEach(j => _numbers[i, j] = other._numbers[i, j])); //ResetTransformation(); }
public int Coherence() { var directions = new Direction[] { Direction.Up, Direction.Left, Direction.Right, Direction.Down }; var game = new Game(this); int ret = int.MinValue; foreach (var direction in directions) { ret = Math.Max((int)game.Update(direction).MergedCount, ret); for (int i = 0; i < 4; ++i) for (int j = 0; j < 4; ++j) game.AddCellTrivial(i, j, _numbers[i, j]); } return ret; }