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); }
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"); } }
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)); }
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; } }
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); }
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(); } }