public static void Main()
        {
            var newPlayer = new Player(10, 10);

            // Store internal state
            var memory = new PositionMemory();
            Console.WriteLine("\nSaving position:");
            memory.Memento = newPlayer.SaveMemento();
            Console.WriteLine(newPlayer.ToString());

            // Continue changing originator
            newPlayer.PosX = 1000;
            newPlayer.PosY = 2000;
            Console.WriteLine("\nChanging position of the player:");
            Console.WriteLine(newPlayer.ToString());

            // Restore saved state
            Console.WriteLine("\nRestoring position:");
            newPlayer.RestoreMemento(memory.Memento);
            Console.WriteLine(newPlayer.ToString());
        }
        public static void Main()
        {
            var newPlayer = new Player(10, 10);

            // Store internal state
            var memory = new PositionMemory();

            Console.WriteLine("\nSaving position:");
            memory.Memento = newPlayer.SaveMemento();
            Console.WriteLine(newPlayer.ToString());

            // Continue changing originator
            newPlayer.PosX = 1000;
            newPlayer.PosY = 2000;
            Console.WriteLine("\nChanging position of the player:");
            Console.WriteLine(newPlayer.ToString());

            // Restore saved state
            Console.WriteLine("\nRestoring position:");
            newPlayer.RestoreMemento(memory.Memento);
            Console.WriteLine(newPlayer.ToString());
        }