Ejemplo n.º 1
0
        private static void GetInputsAndShoot()
        {
            var angle = GetAngle();
            var speed = GetSpeed();

            var attempt = new CannonShotAttempt(angle, speed);
            var result  = CannonInstance.Shoot(attempt);

            if (result.Hit)
            {
                Console.Write($"Hit - {CannonInstance.PreviousShotResults.Count} shot(s)");
                Console.Write("Would you like to play again? (Y/N)");
                var answerKey = Console.ReadKey();
                var answer    = answerKey.Key == ConsoleKey.Y;
                if (answer)
                {
                    CannonInstance.Reset();
                    Play();
                }
            }
            else
            {
                Console.WriteLine($"Missed shot landed at {result.ShotDistance}m");
                GetInputsAndShoot();
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to CannonAttack");
            bool isStillPlaying = true;

            while (isStillPlaying)
            {
                bool   isAHit = false;
                Cannon cannon = Cannon.GetInstance();
                while (!isAHit && cannon.Shots < MaxNumberOfShots)
                {
                    int angle;
                    int velocity;
                    Console.WriteLine(String.Format("Target is at {0} meters", cannon.DistanceOfTarget));
                    GetInputVariable(out angle, out velocity);
                    var shot = cannon.shoot(angle, velocity);
                    isAHit = shot.Item1;
                    int distanceOfShotFromTarget = cannon.DistanceFromTarget(cannon.CalculateDistanceOfCannonShot(angle, velocity), cannon.DistanceOfTarget);
                    Console.WriteLine(shot.Item2);
                    Console.WriteLine("Shot Landed {0} distance away from target!", distanceOfShotFromTarget);
                }
                isStillPlaying = GetIsPlayingAgain();
                cannon.Reset();
            }
            Console.WriteLine("Thanks for playing Cannon Attack");
        }