侠盗飞车存档
- 钱
- 人物坐标
- 目前任务关卡
- 犯罪星级
public class GameData
{
public double Money { get; set; }
public int TaskLevel { get; set; }
public int X { get; set; }
public int Y { get; set; }
public GameData(double money, int taskLevel, int x, int y, int fanZuiLevel)
{
Money = money;
TaskLevel = taskLevel;
X = x;
Y = y;
FanZuiLevel = fanZuiLevel;
}
public int FanZuiLevel { get; set; }
}
public class GameWord
{
public GameWord(GameData gameData)
{
GameData = gameData;
}
public GameMemento SaveState()
{
return new GameMemento(GameData);
}
public void ShowDisplay()
{
Console.WriteLine($"坐标:{GameData.X}:{GameData.Y},钱:{GameData.Money}");
}
public void Die()
{
this.GameData = null;
}
public void RecoveryState(GameMemento gameData)
{
GameData = gameData.GameData;
}
public GameData GameData { get; set; }
}
public class GameMemento
{
public GameMemento(GameData gameData)
{
GameData = gameData;
}
public GameData GameData { get; set; }
}
public class GameCaretaker
{
public GameMemento GameMemento { get; set; }
public GameMemento GetGameMemento => GameMemento;
public void SetGameMemento(GameMemento gameMemento)
{
GameMemento = gameMemento;
}
}
class Program
{
static void Main(string[] args)
{
GameData gameData = new GameData(100, 1, 100, 20, 2);
GameWord gameWord = new GameWord(gameData);
gameWord.ShowDisplay();
GameCaretaker gameCaretaker = new GameCaretaker();
gameCaretaker.SetGameMemento(gameWord.SaveState());
gameWord.Die();
gameWord.RecoveryState(gameCaretaker.GetGameMemento);
gameWord.ShowDisplay();
Console.WriteLine("Hello World!");
}
}