public State(int gold, int enemyGold, int roundType, List <Unit> units, InitData initData)
 {
     Gold      = gold;
     EnemyGold = enemyGold;
     RoundType = roundType;
     Units     = units;
     InitData  = initData;
 }
        public State ReadState(InitData initData)
        {
            int gold      = ReadInt();
            int enemyGold = ReadInt();
            int roundType = ReadInt(); // a positive value will show the number of heroes that await a command
            var units     = ReadInt().Times(i => ReadUnit()).ToList();

            Console.Error.WriteLine();
            return(new State(gold, enemyGold, roundType, units, initData));
        }