Ejemplo n.º 1
0
        public override State LoadGame(BoardData boardData)
        {
            const string fileName       = "savedata.json";
            string       pathToLoadFrom = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\" + fileName;

            if (boardData.GetType().GetProperties().Any(property => property == null))
            {
                throw new SaveDataCorruptedException("Save data in " + pathToLoadFrom + " + is corrupted.");
            }

            if (boardData.GridStones.Length != _size * _size || boardData.GridGroups.Length != _size * _size ||
                boardData.ActivePlayer != State.White && boardData.ActivePlayer != State.Black)
            {
                throw new SaveDataCorruptedException("Save data in " + pathToLoadFrom + " + is corrupted.");
            }

            // Copy the values into this object
            _gridStones = boardData.GridStones;
            _gridGroups = boardData.GridGroups;
            _groups     = boardData.Groups;
            _capWhite   = boardData.CapWhite;
            _capBlack   = boardData.CapBlack;
            _size       = boardData.Size;
            _nextId     = boardData.NextId;
            _borCor     = boardData.BorCor;

            return(boardData.ActivePlayer);
        }