コード例 #1
0
ファイル: ToyRobot.cs プロジェクト: Azsael/ToyRobot
        public Position GetNextPosition()
        {
            if (!IsPlaced)
            {
                return(null);
            }

            if (!Direction.HasValue)
            {
                return(null);
            }

            switch (Direction.Value)
            {
            case RobotDirection.North:
                return(new Position {
                    X = PositionX.GetValueOrDefault(), Y = PositionY.GetValueOrDefault() + Speed
                });

            case RobotDirection.East:
                return(new Position {
                    X = PositionX.GetValueOrDefault() + Speed, Y = PositionY.GetValueOrDefault()
                });

            case RobotDirection.South:
                return(new Position {
                    X = PositionX.GetValueOrDefault(), Y = PositionY.GetValueOrDefault() - Speed
                });

            case RobotDirection.West:
                return(new Position {
                    X = PositionX.GetValueOrDefault() - Speed, Y = PositionY.GetValueOrDefault()
                });
            }
            return(null);
        }