static void Main(string[] args)
    {
        CardDataBase DataBase = new CardDataBase();
        GameDataBase GameBase = new GameDataBase();
        GameState    State;
        Best         BestPlays = new Best();

        Rate(DataBase);

        // GameLoop
        while (true)
        {
            State = new GameState(new PlayerStats(Console.ReadLine().Split(' ')),
                                  new PlayerStats(Console.ReadLine().Split(' ')));
            State.opponent.setHand(int.Parse(Console.ReadLine()));

            Globals.startTime = new Stopwatch();
            Globals.startTime.Start();

            int CardCount = int.Parse(Console.ReadLine());

            // Draft
            if (State.player.Mana == 0)
            {
                GameBase.DraftPicks.Add(new Pick(GameBase,
                                                 new Card(Console.ReadLine().Split(' ')),
                                                 new Card(Console.ReadLine().Split(' ')),
                                                 new Card(Console.ReadLine().Split(' '))));
            }
            // Battle
            else
            {
                for (int i = 0; i < CardCount; i++)
                {
                    Card card = new Card(Console.ReadLine().Split(' '));

                    switch (card.Location)
                    {
                    case -1:
                        State.EnemyBoard.Add(new Unit(card, true));
                        break;

                    case 0:
                        State.MyHand.Add(card);
                        break;

                    case 1:
                        State.MyBoard.Add(new Unit(card, true));
                        break;

                    default:
                        Console.Error.WriteLine("Data loading error ##########1");
                        break;
                    }
                }
                BestPlays.Clear();
                State.EvalState();

                SearchAll(State, BestPlays);

                BestPlays.GetBestState();
            }
        }
    }