public void PrepareToAdd() { _coveringFieldsAddingShip = new int[_sizeOfCurrentAddingShip]; for (int i = 0, j = 0; i < _sizeOfCurrentAddingShip && j < _sizeOfCurrentAddingShip;) { if (Board.GetField(_coordXAddingShip + j, _coordYAddingShip + i) == (int)Marker.EmptyField) { Board.SetField(_coordXAddingShip + j, _coordYAddingShip + i, (int)Marker.ChosenToAdd); } else { int changedFiled = _isVerticalAddingShip ? j : i; _coveringFieldsAddingShip[changedFiled] = Board.GetField(_coordXAddingShip + j, _coordYAddingShip + i); Board.SetField(_coordXAddingShip + j, _coordYAddingShip + i, (int)Marker.CannotAdd); _isFitAddingShip = false; } if (_isVerticalAddingShip) { ++j; } else { ++i; } } }
private bool WantAdd() { for (int i = 0, j = 0; i < _sizeOfCurrentAddingShip && j < _sizeOfCurrentAddingShip;) { int changedFiled = _isVerticalAddingShip ? j : i; int previousVal = Board.GetField(_coordXAddingShip + j, _coordYAddingShip + i) == (int)Marker.CannotAdd ? _coveringFieldsAddingShip[changedFiled] : (int)Marker.EmptyField; Board.SetField(_coordXAddingShip + j, _coordYAddingShip + i, previousVal); if (_isVerticalAddingShip) { ++j; } else { ++i; } } return(ReadKey()); }
public void UndoAddedShip(int shipNumb) { for (int i = 0; i < PlayerShips[shipNumb].Size; ++i) { (int coordX, int coordY) = PlayerShips[shipNumb][i]; Board.SetField(coordX, coordY, (int)Marker.EmptyField); } for (int i = 0; i < PlayerShips[shipNumb].Size; ++i) { (int coordX, int coordY) = PlayerShips[shipNumb][i]; for (int j = -1; j < 2; ++j) { for (int k = -1; k < 2; ++k) { Board.SetField(coordX, coordY, (int)Marker.EmptyField); } } } }