Ejemplo n.º 1
0
        /// <summary>
        /// Fires a shot
        /// </summary>
        /// <param name="victim"></param>
        /// <param name="Shoter"></param>
        /// <param name="ShotPoint"></param>
        /// <returns></returns>
        private FireShotResponse Shot(Player victim, Player Shoter, out Coordinate ShotPoint)
        {
            FireShotResponse fire;
            Coordinate       WhereToShot;

            try
            {
                do
                {
                    WhereToShot = ControlInput.GetShotLocationFromUser();
                    fire        = victim.PlayerBoard.FireShot(WhereToShot);
                    if (fire.ShotStatus == ShotStatus.Invalid || fire.ShotStatus == ShotStatus.Duplicate)
                    {
                        ControlOutput.ShowShotResult(fire, WhereToShot, "");
                    }

                    if (fire.ShotStatus == ShotStatus.Victory)
                    {
                        if (players.IsPlayer1)
                        {
                            players.Player1.Win += 1;
                        }
                        else
                        {
                            players.Player2.Win += 1;
                        }
                    }
                } while (fire.ShotStatus == ShotStatus.Duplicate || fire.ShotStatus == ShotStatus.Invalid);
                ShotPoint = WhereToShot;
            }
            catch (Exception)
            {
                throw;
            }

            return(fire);
        }