예제 #1
0
        static void Main(string[] args)
        {
            Gamer gamer = new Gamer(100);

            Memento memento;

            if (File.Exists("memento.dat"))
            {
                memento = Memento.Deserialize();
            }
            else
            {
                memento = gamer.CreateMemento();
            }

            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine($"==== {i}");
                Console.WriteLine($"現状:{gamer}");

                gamer.Bet();

                Console.WriteLine($"所持金は{gamer.Money}円になりました。");

                if (gamer.Money > memento.Money)
                {
                    Console.WriteLine("      (だいぶ増えたので、現在の状態を保存しておこう)");
                    memento = gamer.CreateMemento();
                }
                else if (gamer.Money < memento.Money / 2)
                {
                    Console.WriteLine("      (だいぶ減ったので、以前の状態に復帰しよう)");
                    gamer.RestoreMemento(memento);
                }

                try
                {
                    Thread.Sleep(10);
                }
                catch (System.Exception)
                {
                    throw;
                }
                Console.WriteLine("");
            }
            memento.Serialize();
        }