static void Main(string[] args) { Hero hero = new Hero(); KeeperMemento saves = new KeeperMemento(); hero.GetInfo(); hero.Shoot(); hero.Shoot(); hero.GetInfo(); saves.History.Push(hero.SaveState()); hero.Shoot(); hero.Shoot(); hero.GetInfo(); hero.Shoot(); hero.Shoot(); hero.RestoreState(saves.History.Peek()); hero.GetInfo(); Console.ReadKey(); }