Ejemplo n.º 1
0
        public void OnGameStarted(object sender, GameStartedEventArgs e)
        {
            Console.WriteLine("Welcome to BATTLESHIP!");
            Console.WriteLine("Are you ready to begin? Press any key to start.");

            Console.ReadKey();

            Console.Clear();

            e.Board.Print(printer);

            while (true)
            {
                Console.WriteLine("\nEnter position of a shot, eg. B3.");
                WritePrompt();

                var positionString = Console.ReadLine();

                if (!UiPosition.TryParse(positionString, out var uiPosition))
                {
                    HandleInvalidInput(e.Board);

                    continue;
                }

                e.Board.Shot(uiPosition.Position);
            }
        }
Ejemplo n.º 2
0
        public static bool TryParse(string input, out UiPosition uiPosition)
        {
            input = input.Trim();

            if (input.Length != 2 && input.Length != 3)
            {
                uiPosition = null;
                return(false);
            }

            var letter       = char.ToUpper(input[0]);
            var stringNumber = input.Substring(1, input.Length - 1);

            if ('A' <= letter && letter <= 'J' && uint.TryParse(stringNumber, out var number) && 1 <= number && number <= 10)
            {
                var letterValue = (uint)(letter - 'A');

                var position = new Position(number - 1, letterValue);
                uiPosition = new UiPosition(position);
                return(true);
            }

            uiPosition = null;
            return(false);
        }