示例#1
0
        public Game(DataGame data)
        {
            InitializeNulls();
            // Make new game with config
            settings = data;

            board = new Field[2 * settings.GoalLen + settings.TaskLen, settings.BoardWidth];
            for (int y = 0; y < 2 * settings.GoalLen + settings.TaskLen; y++)
            {
                for (int x = 0; x < settings.BoardWidth; x++)
                {
                    board[y, x] = new Field();
                }
            }
            playersDictionary = new Dictionary <int, Player>(2 * settings.PlayersPerTeam);
            redTeam           = new List <int>(settings.PlayersPerTeam); // used for broadcast ip reference, fast lookup without plDict iterating
            blueTeam          = new List <int>(settings.PlayersPerTeam);
            gameName          = settings.Name;


            // Only when board is ready and set up with fields, start adding players
            Piece piece1 = new Piece();

            piece1.pos_x = 0;
            piece1.pos_y = 4;



            Console.WriteLine("Rows:{0}, Cols:{1}", board.GetLength(0), board.GetLength(1));
        }
示例#2
0
        static public DataGame ReadGameInfo(string fileName)
        {
            // Deserializes XML with game config
            XmlDocument doc = new XmlDocument();

            doc.Load(fileName);

            XmlElement root     = doc.DocumentElement;
            DataGame   settings = new DataGame();

            settings.Name           = root.SelectSingleNode("name").InnerXml;
            settings.BoardWidth     = Int32.Parse(root.SelectSingleNode("board_width").InnerXml);
            settings.TaskLen        = Int32.Parse(root.SelectSingleNode("task_len").InnerXml);
            settings.GoalLen        = Int32.Parse(root.SelectSingleNode("goal_len").InnerXml);
            settings.InitialPieces  = Int32.Parse(root.SelectSingleNode("initial_pieces").InnerXml);
            settings.PlayersPerTeam = Int32.Parse(root.SelectSingleNode("players_per_team").InnerXml);

            settings.DelayMove = Int64.Parse(root.SelectSingleNode("delay_move").InnerXml);
            settings.DelayPick = Int64.Parse(root.SelectSingleNode("delay_pick").InnerXml);
            settings.DelayDrop = Int64.Parse(root.SelectSingleNode("delay_drop").InnerXml);

            return(settings);
        }