Beispiel #1
0
        public static string Serialize(Models.GameProgress gameProgress)
        {
            Csv csv = new Csv ();

            csv.Append (gameProgress.Slot);
            for (int world=0; world < Constants.WorldCount; world++) {
                for (int level=0; level < Constants.WorldLevelCount; level++) {
                    Models.SolvedLevel solvedLevel = gameProgress.GetSolvedLevel (world, level);
                    if (solvedLevel == null) {
                        break; // Levels must be solved in order
                    } else {
                        csv.Append (solvedLevel.WorldNumber);
                        csv.Append (solvedLevel.LevelNumber);
                        csv.Append (solvedLevel.Moves);
                        csv.Append (solvedLevel.Stars);
                    }
                }
            }

            return csv.ToString ();
        }
Beispiel #2
0
        /// <summary>
        /// Generates a string representation of the specified LockGrid: see Deserialize.
        /// </summary>
        /// <param name="lockGrid">Lock grid.</param>
        public static string Serialize(Models.LockGrid lockGrid)
        {
            Csv csv = new Csv ();

            // Serialize the lock grid properties
            csv.Append (lockGrid.RowCount);
            csv.Append (lockGrid.ColCount);
            csv.Append (lockGrid.ButtonCount);
            csv.Append (lockGrid.MaxMovesFor2Stars);
            csv.Append (lockGrid.MaxMovesFor3Stars);

            // Serialize the locks and their buttons
            for (int row=0; row<lockGrid.RowCount; row++) {
                for (int col=0; col<lockGrid.ColCount; col++) {
                    Models.Lock currentLock = lockGrid.Locks [row, col];
                    // Serialize the lock properties
                    //csv.Append (currentLock.UnlockedPosition);
                    csv.Append (currentLock.CurrentPosition);
                    // Serialize the buttons
                    for (int buttonIndex=0; buttonIndex<currentLock.ButtonCount; buttonIndex++) {
                        Models.LockButton button = currentLock.Buttons [buttonIndex];
                        csv.Append (button.IsOn);
                        csv.Append (button.LinkedButton.ContainingLockGridRow);
                        csv.Append (button.LinkedButton.ContaingLockGridCol);
                        csv.Append (button.LinkedButton.ContainingLockIndex);
                    }
                }
            }

            return csv.ToString ();
        }