Ejemplo n.º 1
0
 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;
         }
     }
 }
Ejemplo n.º 2
0
 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());
 }
Ejemplo n.º 3
0
 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);
             }
         }
     }
 }