public State GetUndo() { if (Previous == null) { throw new NullReferenceException("Prev state not set"); } State.Direction nDir = State.Direction.Stop; switch (ReferenceState.Dir) { case State.Direction.Stop: break; case State.Direction.Left: nDir = State.Direction.Right; break; case State.Direction.Right: nDir = State.Direction.Left; break; //case State.Direction.Up: // nDir = State.Direction.Down; // break; //case State.Direction.Down: // nDir = State.Direction.Up; // break; default: break; } return(new State(Previous.NextQ, nDir, Previous.SetMarker)); }
public void move(State.Direction direction) { this.playerDirection = direction; switch (direction) { case State.Direction.North: PlayerPos.Y = PlayerPos.Y - 2; break; case State.Direction.NorthEast: PlayerPos.Y = PlayerPos.Y - 2; PlayerPos.X = PlayerPos.X + 2; break; case State.Direction.NorthWest: PlayerPos.Y = PlayerPos.Y - 2; PlayerPos.X = PlayerPos.X - 2; break; case State.Direction.East: PlayerPos.X = PlayerPos.X + 2; break; case State.Direction.West: PlayerPos.X = PlayerPos.X - 2; break; case State.Direction.South: PlayerPos.Y = PlayerPos.Y + 2; break; case State.Direction.SouthEast: PlayerPos.Y = PlayerPos.Y + 2; PlayerPos.X = PlayerPos.X + 2; break; case State.Direction.SouthWest: PlayerPos.Y = PlayerPos.Y + 2; PlayerPos.X = PlayerPos.X - 2; break; } }