예제 #1
0
        /// <summary>
        /// This method handles the main game loop
        /// </summary>
        private void GameLoop()
        {
            Stream      endMusic;
            SoundPlayer soundPlayer;
            bool        exitGame = false;

            rendering.DrawGameWindow();
            rendering.DrawGameScreens(player);
            player.PlaceShips(rendering);
            computer.PlaceShips();
            turn = 0;
            while (!exitGame) //main game loop
            {
                rendering.DrawGameScreens(player);
                rendering.DrawInfoBox(player, computer, turn);
                player.TakeShot(computer, rendering);
                System.Threading.Thread.Sleep(1000);
                rendering.DrawGameScreens(player);
                computer.TakeShot(player, rendering);
                System.Threading.Thread.Sleep(1000);
                if (player.AllShipsDestroyed())
                {
                    endMusic    = Battleships.Properties.Resources.BattleshipsLoss;
                    soundPlayer = new SoundPlayer(endMusic);
                    soundPlayer.Play();
                    rendering.DrawVictoryScreen(1);
                    Console.ReadLine();
                    soundPlayer.Stop();
                    endMusic.Dispose();
                    soundPlayer.Dispose();
                    exitGame = true;
                }
                if (computer.AllShipsDestroyed())
                {
                    endMusic    = Battleships.Properties.Resources.BattleshipsVictory;
                    soundPlayer = new SoundPlayer(endMusic);
                    soundPlayer.Play();
                    rendering.DrawVictoryScreen(0);
                    Console.ReadLine();
                    soundPlayer.Stop();
                    endMusic.Dispose();
                    soundPlayer.Dispose();
                    exitGame = true;
                }
                turn++;
            }
        }