Exemplo n.º 1
0
        public override int[] GetShipPlacementInput()
        {
            bool inputIsInt;
            int  ColNum;
            int  RowNum;
            int  DirectionNum;
            int  shipNum;
            Ship ship;
            bool hasLooped = false;

            do
            {
                Console.Clear();
                MyBoard.PrintBoard();
                if (hasLooped)
                {
                    Console.WriteLine("Invalid Ship Position, try again.");
                }
                do
                {
                    Console.WriteLine($"{Name}:Enter a Row number :");
                    inputIsInt = int.TryParse(Console.ReadLine(), out RowNum);
                } while (!inputIsInt || RowNum < 1 || RowNum > BoardSize);
                do
                {
                    Console.WriteLine($"{Name}:Enter a Column number :");
                    inputIsInt = int.TryParse(Console.ReadLine(), out ColNum);
                } while (!inputIsInt || ColNum < 1 || ColNum > BoardSize);
                MyBoard.Matrix[RowNum][ColNum].ChosenForPlacement = true;
                Console.Clear();
                MyBoard.PrintBoard();
                do
                {
                    do
                    {
                        Console.WriteLine($"{Name}:Enter the number of the ship you want to place: ");
                        Console.WriteLine("1:Destroyer");
                        Console.WriteLine("2:Submarine");
                        Console.WriteLine("3:Battleship");
                        Console.WriteLine("4:Aircraft Carrier");

                        inputIsInt = int.TryParse(Console.ReadLine(), out shipNum);
                    } while (!inputIsInt || shipNum < 1 || shipNum > 4);
                    ship = ConvertShipNumToShip(shipNum);
                } while (ship.HasBeenPlaced);
                do
                {
                    Console.WriteLine($"{Name}:Enter the number of an orientation: ");
                    Console.WriteLine("1:Vertical Up");
                    Console.WriteLine("2:Vertical Down");
                    Console.WriteLine("3:Horizontal Left");
                    Console.WriteLine("4:Horizontal Right");


                    inputIsInt = int.TryParse(Console.ReadLine(), out DirectionNum);
                } while (!inputIsInt || DirectionNum < 1 || DirectionNum > 4);
                hasLooped = true;
            } while (!MyBoard.PositionIsValid(RowNum, ColNum, DirectionNum, shipNum + 1));
            return(new int[] { RowNum, ColNum, DirectionNum, shipNum });
        }
Exemplo n.º 2
0
        public override int[] GetShipPlacementInput()
        {
            int shipNum;
            int row;
            int col;
            int dir;

            do
            {
                shipNum = generateRandomInt(4);
                row     = generateRandomInt(BoardSize);
                col     = generateRandomInt(BoardSize);
                dir     = generateRandomInt(4);
            } while (!MyBoard.PositionIsValid(row, col, dir, shipNum + 1) || ConvertShipNumToShip(shipNum).HasBeenPlaced);
            return(new int[] { row, col, dir, shipNum });
        }