public void AddWish(Wish wish) { if (Wishes != null) { Wishes.Add(wish); } }
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}"); } }
public bool ConfirmWish(Wish wish) { bool result = !isLimitWishes(); if (result) { CountConfirmedWish++; } return(result); }
public Wish AskAboutWish() { Wish result = null; foreach (var wish in Wishes) { if (!wish.IsConfirmed) { result = wish; break; } } return(result); }
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); }