Exemplo n.º 1
0
        public int FlipCoinsUntilTails()
        {
            int heads = 0;

            while (true)
            {
                if (CoinFlipper.FlipCoin() == CoinFlipper.TAILS)
                {
                    break;
                }

                heads++;
            }

            GameLog?.AddMessage($"Flips {heads + 1} coins and gets {heads} heads");

            var results = new List <bool>();

            for (int i = 0; i < heads; i++)
            {
                results.Add(true);
            }
            results.Add(false);

            SendEventToPlayers(new CoinsFlippedEvent(results));

            LastCoinFlipResult    = heads > 0;
            LastCoinFlipHeadCount = heads;

            return(heads);
        }
Exemplo n.º 2
0
 public static void FlipCoinIfHeadsParalyzed(GameLog log, PokemonCard target)
 {
     if (CoinFlipper.FlipCoin())
     {
         log.AddMessage("Coin flipped heads defending pokemon is now Paralyzed");
         target.ApplyStatusEffect(StatusEffect.Paralyze, new GameField());
     }
     else
     {
         log.AddMessage("Coin flipped tails, nothing happened");
     }
 }
Exemplo n.º 3
0
        public static void StartUp()
        {
            Console.WriteLine("Enter name of first character:");
            var firstPlayerName = Console.ReadLine();

            while (firstPlayerName.Length < 4 || firstPlayerName.Length > 16 || firstPlayerName.Contains(" "))
            {
                Console.WriteLine("Player name must be between 4 and 16 characters");
                Console.WriteLine("Player name must not contain ' ' - spaces");
                firstPlayerName = Console.ReadLine();
            }
            Console.WriteLine("Enter name of second character:");
            var secondPlayerName = Console.ReadLine();

            while (secondPlayerName.Length < 4 || secondPlayerName.Length > 16 || secondPlayerName == firstPlayerName || secondPlayerName.Contains(" "))
            {
                Console.WriteLine("Second player name must be between 4 and 16 characters and different than First player name");
                Console.WriteLine("Player name must not contain ' ' - spaces");
                secondPlayerName = Console.ReadLine();
            }

            List <Player> players = new List <Player>();

            players.Add(new Player {
                Name = firstPlayerName, Hero = HeroType.SelectType(firstPlayerName)
            });
            players.Add(new Player {
                Name = secondPlayerName, Hero = HeroType.SelectType(secondPlayerName)
            });
            players[0].Type = HeroClass.ClassSelection(players[0]);
            players[1].Type = HeroClass.ClassSelection(players[1]);
            if (players[0].Hero == "mage")
            {
                players[0] = GenerateCharacterStats.Mage(players[0]);
            }
            else
            {
                players[0] = GenerateCharacterStats.Warrior(players[0]);
            }

            if (players[1].Hero == "mage")
            {
                players[1] = GenerateCharacterStats.Mage(players[1]);
            }
            else
            {
                players[1] = GenerateCharacterStats.Warrior(players[1]);
            }
            Battle.ExecuteCommand(CoinFlipper.FlipTheCoin(players));
        }
Exemplo n.º 4
0
        protected override void Activate(Player player, Player opponent, int damageTake, GameField game)
        {
            if (coinFlip && CoinFlipper.FlipCoin())
            {
                return;
            }

            var damage = Damage;

            if (DamageMultipliedByEnergy)
            {
                damage *= PokemonOwner.AttachedEnergy.Count(energy => EnergyType == EnergyTypes.All || EnergyType == energy.EnergyType);
            }

            PokemonOwner.KnockedOutBy.DealDamage(new Damage(damage), game, PokemonOwner, true);

            if (PokemonOwner.KnockedOutBy.IsDead())
            {
                PokemonOwner.KnockedOutBy.KnockedOutBy = PokemonOwner;
            }
        }
Exemplo n.º 5
0
        public int FlipCoins(int coins)
        {
            int heads;

            if (forcedFlips.Count > 0)
            {
                heads = 0;
                while (forcedFlips.Count > 0)
                {
                    if (forcedFlips.Dequeue())
                    {
                        heads++;
                    }
                }
            }
            else
            {
                heads = CoinFlipper.FlipCoins(coins);
            }

            GameLog?.AddMessage($"Flips {coins} coins and gets {heads} heads");

            var results = new List <bool>();

            for (int i = 0; i < heads; i++)
            {
                results.Add(true);
            }
            for (int i = 0; i < coins - heads; i++)
            {
                results.Add(false);
            }

            SendEventToPlayers(new CoinsFlippedEvent(results));

            LastCoinFlipResult    = heads > 0;
            LastCoinFlipHeadCount = heads;

            return(heads);
        }
Exemplo n.º 6
0
        static void GetDataFromUserAndStartFlipping()
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("Number of flips: ");
            string numberOfFlipsString = Console.ReadLine();

            ulong numberOfFlips = 0;
            bool  isAsync       = false;

            bool[]          results         = null;
            CoinFlipResults coinFlipResults = null;

            if (UInt64.TryParse(numberOfFlipsString, out numberOfFlips))
            {
                bool   result = false;
                Random random = new Random();
                if (numberOfFlips > 1)
                {
                    GetVariantOfFlippingFromUser(ref isAsync);
                    Console.WriteLine($"Asynchronous: {isAsync}");
                    if (isAsync)
                    {
                        results = CoinFlipper.FlipRepeatedlyAsync(random, numberOfFlips).Result;
                    }
                    else
                    {
                        results = CoinFlipper.FlipRepeatedly(random, numberOfFlips);
                    }
                }
                else
                {
                    result = CoinFlipper.Flip(random);
                }

                if (numberOfFlips > 1)
                {
                    Console.WriteLine("\nWould you like to save results? y/n");

                    string usersAnswerToSaver = Console.ReadLine();

                    switch (usersAnswerToSaver)
                    {
                    case "y":
                        coinFlipResults = PrepareResults(results);
                        SaveResultsToFile(coinFlipResults);
                        break;

                    case "Y":
                        coinFlipResults = PrepareResults(results);
                        SaveResultsToFile(coinFlipResults);
                        break;

                    default:
                        Console.WriteLine("Ok! Without saving");
                        break;
                    }
                }
                else
                {
                    string headOrTail = String.Empty;
                    if (result)
                    {
                        headOrTail = "head";
                    }
                    else
                    {
                        headOrTail = "tail";
                    }
                    Console.WriteLine($"Your result is {headOrTail}");
                }
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("The argument is not in the correct format. Check and enter the value again");
                GetDataFromUserAndStartFlipping();
            }
        }