Example #1
0
            public static void MoltenTest()
            {
                var rnd    = new Random();
                var p1Deck = new Deck(CardClass.WARRIOR, Archetype.QUEST, "IceFireWarrior", 100,
                                      new List <Card>
                {
                    Cards.FromName("Fire Plume's Heart"),
                    Cards.FromName("Goldshire Footman"),
                    Cards.FromName("Wax Elemental"),
                    Cards.FromName("Wax Elemental"),
                    Cards.FromName("Cleave"),
                    Cards.FromName("Cornered Sentry"),
                    Cards.FromName("Drywhisker Armorer"),
                    Cards.FromName("Drywhisker Armorer"),
                    Cards.FromName("Execute"),
                    Cards.FromName("Execute"),
                    Cards.FromName("Plated Beetle"),
                    Cards.FromName("Plated Beetle"),
                    Cards.FromName("Warpath"),
                    Cards.FromName("Warpath"),
                    Cards.FromName("Phantom Militia"),
                    Cards.FromName("Phantom Militia"),
                    Cards.FromName("Shield Block"),
                    Cards.FromName("Shield Block"),
                    Cards.FromName("Stonehill Defender"),
                    Cards.FromName("Stonehill Defender"),
                    Cards.FromName("Brawl"),
                    Cards.FromName("Direhorn Hatchling"),
                    Cards.FromName("Direhorn Hatchling"),
                    Cards.FromName("Rotten Applebaum"),
                    Cards.FromName("Ornery Direhorn"),
                    Cards.FromName("Unidentified Shield"),
                    Cards.FromName("Unidentified Shield"),
                    Cards.FromName("Geosculptor Yip"),
                    Cards.FromName("Scourgelord Garrosh"),
                    Cards.FromName("Molten Blade")
                });

                var p2Deck = new Deck();

                var gameConfig = new GameConfig
                {
                    StartPlayer      = rnd.Next(1, 2),
                    Player1HeroClass = CardClass.WARRIOR,
                    Player1Name      = "Garrosh Hellscream",
                    Player1Deck      = p1Deck,
                    Player2HeroClass = CardClass.DRUID,
                    Player2Name      = "Malfurion Stormrage",
                    Player2Deck      = p2Deck.FromDB(CardClass.DRUID, deckName: "Malygos_Druid1"),
                    Shuffle          = false,
                    Logging          = true,
                    History          = true,
                    //SkipMulligan = false
                };

                var testGame = new Game(gameConfig);

                var           player1 = new MCTSAgent();
                AbstractAgent player2 = new RandomAgent();

                player1.InitializeAgent();
                player2.InitializeAgent();

                player1.InitializeGame();
                player2.InitializeGame();

                testGame.StartGame();

                //bool check = true;
                //var molten = (IPlayable)testGame.CurrentPlayer.HandZone.Find(c => c.Type == CardType.WEAPON);
                //if (molten?.Cost != molten?.Card.Cost)
                //	check = false;
                var root = new HearthNode(null, testGame, null);

                //molten = (IPlayable)root.Game.CurrentPlayer.HandZone.Find(c => c.Type == CardType.WEAPON);
                //if (molten.Cost != molten.Card.Cost)
                //	check = false;

                HearthNode state = root.Frontier.Find(p => p.IsEndTurn);

                for (int i = 0; i < 5; ++i)
                {
                    state = state.Frontier.Find(p => p.IsEndTurn);
                }
            }