Не могу понять в чём дело. Не отображается значение - C#
Формулировка задачи:
Привет! Иногда не отображается значение "Полный дом!" и я не знаю почему. Подскажите пожалуйста. Вот:
static void Game() { Random random = new Random(); int[] slot = new int[5]; do { Console.Clear(); for (int i = 0; i < slot.Length; ++i) { slot[i] = random.Next(1, 3); Console.Write("{0} ", slot[i]); } Console.WriteLine(); int a = 0; int b = 0; // Комбинации #region Пятёрка for (int c = 0; c < slot.Length; ++c) { for (int d = 0; d < slot.Length; ++d) { if (slot[c] == slot[d]) { ++a; } } if (a == 5) break; else a = 0; } if (a == 5) { Console.WriteLine("Пятёрка!"); continue; } #endregion #region Четвёрка for (int c = 0; c < slot.Length; ++c) { for (int d = 0; d < slot.Length; ++d) { if (slot[c] == slot[d]) { ++a; } } if (a == 4) break; else a = 0; } if (a == 4) { Console.WriteLine("Четвёрка!"); continue; } #endregion #region Полный дом for (int c = 0; c < slot.Length; ++c) { for (int d = 0; d < slot.Length; ++d) { if (slot[c] == slot[d]) { ++a; } } if (a == 3) { for (int e = 0; e < slot.Length; ++e) { for (int f = 0; f < slot.Length; ++f) { if (((slot[e] != slot[c] || (slot[f] != slot[c])) && (slot[e] == slot[f]))) { ++b; } } if (b == 2) break; } } break; } if (a == 3 && b == 2) { Console.WriteLine("Полный дом!"); continue; } #endregion } while (Console.ReadKey().Key == ConsoleKey.Enter); }
Эврика! КАК?! Не могу понять! Перетыкал и вот получилось! Совсем с ума сойдёшь, пока нужные break'и в нужные места поставишь. Не заметил ни одного пустого места.
#region Полный дом for (int c = 0; c < slot.Length; ++c) { for (int d = 0; d < slot.Length; ++d) { if (slot[c] == slot[d]) { ++a; } } if (a == 3) { for (int e = 0; e < slot.Length; ++e) { for (int f = 0; f < slot.Length; ++f) { if (((slot[e] != slot[c] || (slot[f] != slot[c])) && (slot[e] == slot[f]))) { ++b; } } if (b == 2) break; else b = 0; } break; } else a = 0; } if (a == 3 && b == 2) { Console.WriteLine("Полный дом!"); continue; } #endregion
Решение задачи: «Не могу понять в чём дело. Не отображается значение»
textual
Листинг программы
static Random rnd = new Random(); static int[] array = new int[5]; static void Game() { do { for(int i = 0; i < array.Length; i++) { Console.Write((array[i] = rnd.Next(1, 3)) + " "); } int count = array.Count(x => x == 1); Console.WriteLine(count == 5 || count == 0 ? "= 5" : count == 4 || count == 1 ? "= 4" : "= full house"); } while(Console.ReadKey(true).Key == ConsoleKey.Enter); } static void Main(string[] args) { Game(); Console.ReadKey(true); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д