static void StartWomanWishing() { IWishable woman = oldWoman as IWishable; if (woman == null) { return; } Console.WriteLine($"Слышала {oldWoman.Name}, что есть в синем море {fish.Name}, которая желания исполняет"); bool wasTry = false; while (woman.HasNewWish() && woman.CanWish) { string str = wasTry ? $"И снова {oldMan.Name} пошел испытывать удачу" : $"И отправила {oldWoman.Name} своего мужа словить рыбку"; Console.WriteLine(str); StartCatching(woman); wasTry = true; } if (wasTry) { if (woman.CanWish) { Console.WriteLine($"Больше не стала испытывать судьбу {oldWoman.Name}. Поблагодарила рыбку за все добро!"); } } else { Console.WriteLine("Слышать слышала, но с мужем решили не тратить время на поиски рыбки... "); } }
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}"); } }