Пример #1
0
        private static PlaceShipRequest Prompt(Board x, int Count)
        {
            Coordinate    cord  = ConsoleInput.InputtoCoordinate();
            ShipDirection dir   = Output.PickADirection();
            ShipType      shipT = Output.UserTypeShip(x, Count);



            PlaceShipRequest Player_ShipRequest = new PlaceShipRequest();

            Player_ShipRequest.Coordinate = cord;
            Player_ShipRequest.Direction  = dir;
            Player_ShipRequest.ShipType   = shipT;
            return(Player_ShipRequest);
        }
Пример #2
0
        public static void Flow()
        {
            Output.WelcomeMessage();
            P1_Name = Output.P1_name();
            P2_Name = Output.P2_name();

            //p1 Build Board

            Make.Blank(p1_Board);
            Output.PlayerTurn(P1_Name);
            Console.WriteLine("");
            GameFlow.PlaceShipTest2(p1_Board);
            Make.Drawboard(p1_Board);
            Console.ReadKey();
            Console.Clear();

            //p2 Build Board
            Make.Blank(p2_Board);
            Output.PlayerTurn(P2_Name);
            Console.WriteLine("");
            GameFlow.PlaceShipTest2(p2_Board);
            Make.Drawboard(p2_Board);
            Console.ReadKey();
            Console.Clear();

            Random _Rnd = new Random();
            int    turn = _Rnd.Next(1, 2);

            ShotStatus Victorious = new ShotStatus();

            Console.WriteLine("Let the Games begin!");

            do
            {
                if (turn % 2 == 0)
                {
                    Console.Clear();
                    bool repeat = false;
                    Console.WriteLine($"It's {P2_Name}'s turn");
                    //player 2 goes first
                    Console.WriteLine($"{P2_Name}'s Board");
                    Make.Drawboard(p2_Board);
                    Console.WriteLine($"{P1_Name}'s Board");
                    Make.DrawEnemyBoard(p1_Board);

                    do
                    {
                        Console.WriteLine("Pick Somewhere to Fire");


                        Coordinate       FireCord            = (ConsoleInput.InputtoCoordinate());
                        FireShotResponse p2_ResponseOfChoice = p1_Board.FireShot(FireCord);

                        if (p2_ResponseOfChoice.ShotStatus == ShotStatus.Duplicate)
                        {
                            Console.WriteLine("You already tried that silly!, try again!");
                            repeat = true;
                        }
                        else if (p2_ResponseOfChoice.ShotStatus == ShotStatus.Hit)
                        {
                            Console.WriteLine("It's a hit!");
                            Make.DrawEnemyBoardFire(p1_Board, p2_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p2_ResponseOfChoice.ShotStatus == ShotStatus.HitAndSunk)
                        {
                            Console.WriteLine($"Massive hit!, You sunk the {p2_ResponseOfChoice.ShipImpacted}");
                            Make.DrawEnemyBoardFire(p1_Board, p2_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p2_ResponseOfChoice.ShotStatus == ShotStatus.Invalid)
                        {
                            Console.WriteLine("Invalid input, try again");
                            repeat = true;
                        }
                        else if (p2_ResponseOfChoice.ShotStatus == ShotStatus.Miss)
                        {
                            Console.WriteLine("Oops, looks like you missed");
                            Make.DrawEnemyBoardFire(p1_Board, p2_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p2_ResponseOfChoice.ShotStatus == ShotStatus.Victory)
                        {
                            Console.WriteLine($"{P2_Name} Wins!");
                            Victorious = ShotStatus.Victory;
                            repeat     = false;
                        }
                    } while (repeat == true);

                    Console.ReadKey();
                    turn++;
                }
                else
                {
                    Console.Clear();
                    bool repeat = false;
                    //player 1 goes first
                    Console.WriteLine($"{P1_Name}'s turn");
                    Console.WriteLine($"{P1_Name}'s Board");
                    Make.Drawboard(p1_Board);
                    Console.WriteLine($"{P2_Name}'s Board");
                    Make.DrawEnemyBoard(p2_Board);

                    //player 1 goes first
                    do
                    {
                        Console.WriteLine("Pick Somewhere to Fire");



                        Coordinate       FireCord            = (ConsoleInput.InputtoCoordinate());
                        FireShotResponse p1_ResponseOfChoice = p2_Board.FireShot(FireCord);

                        if (p1_ResponseOfChoice.ShotStatus == ShotStatus.Duplicate)
                        {
                            Console.WriteLine("You already tried that silly!, try again!");
                            repeat = true;
                        }
                        else if (p1_ResponseOfChoice.ShotStatus == ShotStatus.Hit)
                        {
                            Console.WriteLine("It's a hit!");
                            Make.DrawEnemyBoardFire(p2_Board, p1_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p1_ResponseOfChoice.ShotStatus == ShotStatus.HitAndSunk)
                        {
                            Console.WriteLine($"Massive hit!, You sunk the {p1_ResponseOfChoice.ShipImpacted}");
                            Make.DrawEnemyBoardFire(p2_Board, p1_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p1_ResponseOfChoice.ShotStatus == ShotStatus.Invalid)
                        {
                            Console.WriteLine("Invalid input, try again");
                            repeat = true;
                        }
                        else if (p1_ResponseOfChoice.ShotStatus == ShotStatus.Miss)
                        {
                            Console.WriteLine("Oops, looks like you missed");
                            Make.DrawEnemyBoardFire(p2_Board, p1_ResponseOfChoice, FireCord);
                            repeat = false;
                        }
                        else if (p1_ResponseOfChoice.ShotStatus == ShotStatus.Victory)
                        {
                            Console.WriteLine($"{P1_Name} Wins!");
                            Victorious = ShotStatus.Victory;
                            repeat     = false;
                        }
                    }while (repeat == true);
                    Console.ReadKey();
                    turn++;
                }
            } while (Victorious != ShotStatus.Victory);

            Output.replay();


            Console.ReadKey();
            Console.Clear();
        }