private void ValidateTransition(SquareStates oldState, SquareStates newState) { if (_squareStateTransitions.IsValidTransition(oldState, newState) == false) { throw new InvalidStateTransitionException($"Old state: {oldState}, new state: {newState}"); } }
IEnumerator SwitchToStraight() { yield return(new WaitForSeconds(switchToStraightTime)); currentFlyerState = SquareStates.flyStraight; switchingCoroutine = null; }
private bool IsPlaceForVerticalShipTest(int gridSize, int shipSize) { var filler = new ShipsVerticalFiller(null); var squares = new SquareStates[gridSize, gridSize]; return(filler.IsPlaceForVerticalShip(squares, gridSize - 1, 0, 0, shipSize)); }
private void ValidateChangeSquareState(SquareStates expectedState, SquareStates returnedState, int x, int y, IGrid grid) { Assert.AreEqual(expectedState, returnedState); var squareState = grid.GetSquares()[x, y]; Assert.AreEqual(expectedState, squareState); }
public void Move() { //if (_Animate) //{ // AnimateSquare(); // return; //} if (_Destination == PointF.Empty) { return; } _PrevPosition = _Position; _SquareState = SquareStates.Moving; if (_Destination.X - _Position.X > 0 && _Destination.X - _Position.X + _SpeedX < 0) { _Position.X = _Destination.X; } else if (_Destination.X - _Position.X < 0 && _Destination.X - _Position.X + _SpeedX > 0) { _Position.X = _Destination.X; } else if (_Destination.X == _Position.X) { } else { _Position.X = _Position.X + (float)_SpeedX; } if (_Destination.Y - _Position.Y > 0 && _Destination.Y - _Position.Y + _SpeedY < 0) { _Position.Y = _Destination.Y; } else if (_Destination.Y - _Position.Y < 0 && _Destination.Y - _Position.Y + _SpeedY > 0) { _Position.Y = _Destination.Y; } else if (_Destination.Y == _Position.Y) { } else { _Position.Y = _Position.Y + (float)_SpeedY; } if (_Position == _Destination) { _DestinationReached = true; _Destination = PointF.Empty; _SquareState = SquareStates.Stopped; } }
public void Fill_Negative(int gridSize, int shipSize, int shipCount) { var ships = PrepareShips(new Dictionary <int, int>() { { shipSize, shipCount } }); var filler = new ShipsVerticalFiller(ships); var squares = new SquareStates[gridSize, gridSize]; filler.Fill(ref squares, gridSize); }
public void Fill_Positive(int gridSize, int shipSize, int shipCount) { var ships = PrepareShips(new Dictionary <int, int>() { { shipSize, shipCount } }); var filler = new ShipsVerticalFiller(ships); var squares = new SquareStates[gridSize, gridSize]; var shipsOnGrid = filler.Fill(ref squares, gridSize); Assert.AreEqual(shipCount, shipsOnGrid.Count, $"There should be {shipCount} ships placed on grid ({gridSize})."); }
public override void Start() { base.Start(); currentFlyerState = SquareStates.flyStraight; rb = GetComponent <Rigidbody>(); rb.drag = 20.0f; //switchingCoroutine = StartCoroutine(SwitchToSpin()); circleSwitcher = 0; switchToStraightTime = 0.7f; switchToCurveTime = 1.5f; arcStage = 1; }
public void ChangeSquareState_Test() { int size = 3; int x = 1; int y = 1; SquareStates shipState = SquareStates.Ship; var grid = PrepareEmptyGridWithTransition(size, shipState); var returnedState = grid.ChangeSquareState(new Coordinates(x, y), null); ValidateChangeSquareState(shipState, returnedState, x, y, grid); }
private IGrid PrepareEmptyGridWithTransition(int size, SquareStates stateToReturn) { var returnShipTransitionMoq = new Mock <ISquareStateTransition>(); returnShipTransitionMoq .Setup(stm => stm.GetNewState(It.IsAny <SquareStates>())) .Returns(stateToReturn); returnShipTransitionMoq .Setup(stm => stm.GetNewState(It.IsAny <SquareStates>(), It.IsAny <SquareStates>())) .Returns(stateToReturn); return(new Grid(size, null, returnShipTransitionMoq.Object)); }
IEnumerator SwitchToSpin() { yield return(new WaitForSeconds(switchToCurveTime)); currentFlyerState = SquareStates.spin; arcStage++; if (arcStage == 5) { arcStage = 1; } switchingCoroutine = null; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { SquareTypeIndex pi = value as SquareTypeIndex; if (pi == null) { return(null); } SquareStates src = (SquareStates)((byte)pi._type); Style s = new Style(typeof(Button)); s.Setters.Add(new Setter(Button.BackgroundProperty, Brushes.Transparent)); Binding b = new Binding(); switch (src) { case SquareStates.EMPTY: b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 1); b.Path = new PropertyPath("DataContext.clickEmpty"); s.Setters.Add(new Setter(Button.CommandProperty, b)); return(s); case SquareStates.ALLIED_PIECE: b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 1); b.Path = new PropertyPath("DataContext.clickAllied"); s.Setters.Add(new Setter(Button.CommandProperty, b)); s.Setters.Add(new Setter(Button.CommandParameterProperty, pi._index)); return(s); case SquareStates.TARGET_SQUARE: b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 1); b.Path = new PropertyPath("DataContext.clickTarget"); s.Setters.Add(new Setter(Button.BackgroundProperty, new SolidColorBrush(Color.FromArgb(150, 155, 255, 155)))); s.Setters.Add(new Setter(Button.CommandProperty, b)); s.Setters.Add(new Setter(Button.CommandParameterProperty, pi._index)); return(s); case SquareStates.SELECTED_SQUARE: b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 1); b.Path = new PropertyPath("DataContext.clickCurrent"); s.Setters.Add(new Setter(Button.CommandProperty, b)); return(s); default: return(s); } }
public void AnimateSquare() { if (!_Animate) { return; } _SquareState = SquareStates.Animating; if (_AnimationState == AnimationStates.Enlarge) { _AnimationPosition.X = _AnimationPosition.X - (float)_AnimateSpeed; _AnimationPosition.Y = _AnimationPosition.Y - (float)_AnimateSpeed; _AnimationWidth = _AnimationWidth + (_AnimateSpeed * 2); if (_AnimationPosition.X <= _Position.X - _AnimateMax || _AnimationPosition.Y <= _Position.Y - _AnimateMax) { _AnimationPosition.X = _Position.X - (float)_AnimateMax; _AnimationPosition.Y = _Position.Y - (float)_AnimateMax; _AnimationState = AnimationStates.Shrink; } } else if (_AnimationState == AnimationStates.Shrink) { _AnimationPosition.X = _AnimationPosition.X + (float)_AnimateSpeed; _AnimationPosition.Y = _AnimationPosition.Y + (float)_AnimateSpeed; _AnimationWidth = _AnimationWidth - (_AnimateSpeed * 2); if (_AnimationPosition.X >= _Position.X || _AnimationPosition.Y >= _Position.Y) { _AnimationPosition.X = _Position.X; _AnimationPosition.Y = _Position.Y; _AnimationWidth = _Width; _AnimationState = AnimationStates.None; _Animate = false; _SquareState = SquareStates.Stopped; } } }
public static char GetCharFromSquareState(SquareStates state) { switch (state) { case SquareStates.Ship: case SquareStates.HittedShip: case SquareStates.Virgin: return(' '); case SquareStates.SunkShip: return('X'); case SquareStates.MissedShot: return('*'); default: return('?'); } }
public static string GetFormat(SquareStates state) { switch (state) { case SquareStates.Ship: return("bg-primary"); case SquareStates.HittedShip: return("bg-warning"); case SquareStates.SunkShip: return("bg-danger"); case SquareStates.Virgin: return("bg-white"); case SquareStates.MissedShot: return("bg-secondary"); default: return("bg-white"); } }
private static SquareStates GetState(SquareStates currentState) => currentState switch {
public void ChangeState(SquareStates _state) { this.state = _state; }
private void SetStateForWholeShip(Coordinates coordinates, SquareStates newState) { var ship = GetShip(coordinates); ship.Parts.ForEach(p => Squares[p.X, p.Y] = newState); }
public void StopAnimation() { _Animate = false; _AnimationState = AnimationStates.None; _SquareState = SquareStates.Stopped; }
public void SetSquareState(int x, int y, SquareStates newState) { Squares[x, y] = newState; }
public SquareStates GetNewState(SquareStates currentState, SquareStates suggestedState) { return(UpdateState(new Tuple <SquareStates, SquareStates>(currentState, suggestedState))); }
public SquareStates GetNewState(SquareStates currentState) { return(UpdateState(currentState)); }
public void UpdateOpponentGrid(Coordinates coordinates, SquareStates newState) { OpponentGrid.ChangeSquareState(coordinates, newState); }