コード例 #1
0
 public void AddWish(Wish wish)
 {
     if (Wishes != null)
     {
         Wishes.Add(wish);
     }
 }
コード例 #2
0
        static void StartCatching(IWishable woman)
        {
            OldMan   man   = oldMan as OldMan;
            GoldFish gfish = fish as GoldFish;
            Wish     wish  = woman.AskAboutWish();

            if (man == null || gfish == null || wish == null)
            {
                return;
            }

            Console.WriteLine($"И забросил невод {man.Name}");
            if (man.Catch(gfish))
            {
                Console.WriteLine($"И словил {man.Name} золотую рыбку");
                Console.WriteLine($"Обратился {man.Name} к рыбке с просьбой исполнить желание жены - {wish.Name}");
                if (StartManWishing(wish, gfish))
                {
                    Console.WriteLine($"Порадовал {man.Name} свою жену, исполнил ее желание");
                }
                else
                {
                    Console.WriteLine($"Вот так и остались {man.Name} и {oldWoman.Name} ни с чем...");
                    woman.ResetWishes();
                }
            }
            else
            {
                Console.WriteLine($"И ничего не словил {man.Name}");
            }
        }
コード例 #3
0
        public bool ConfirmWish(Wish wish)
        {
            bool result = !isLimitWishes();

            if (result)
            {
                CountConfirmedWish++;
            }

            return(result);
        }
コード例 #4
0
        public Wish AskAboutWish()
        {
            Wish result = null;

            foreach (var wish in Wishes)
            {
                if (!wish.IsConfirmed)
                {
                    result = wish;
                    break;
                }
            }
            return(result);
        }
コード例 #5
0
        static bool StartManWishing(Wish wish, GoldFish gfish)
        {
            bool result = gfish.ConfirmWish(wish);

            if (result)
            {
                Console.WriteLine($"Согласилась {gfish.Name} исполнить желание в обмен на свою свободу");
                Console.WriteLine("Поблагодарил рыбку человек и отпустил ее в море");
                wish.IsConfirmed = true;
            }
            else
            {
                Console.WriteLine($"Отказалась {gfish.Name} исполнять очередное желание человека, слишком много их было");
                Console.WriteLine("Выскользнула рыбка из рук, упав в море... вслед за ней исчезло все, что было загадано ранее");
            }
            return(result);
        }