Не могу понять в чём дело. Не отображается значение - C#

Узнай цену своей работы

Формулировка задачи:

Привет! Иногда не отображается значение "Полный дом!" и я не знаю почему. Подскажите пожалуйста. Вот:
Листинг программы
  1. static void Game()
  2. {
  3. Random random = new Random();
  4. int[] slot = new int[5];
  5. do
  6. {
  7. Console.Clear();
  8. for (int i = 0; i < slot.Length; ++i)
  9. {
  10. slot[i] = random.Next(1, 3);
  11. Console.Write("{0} ", slot[i]);
  12. }
  13. Console.WriteLine();
  14. int a = 0;
  15. int b = 0;
  16. // Комбинации
  17. #region Пятёрка
  18. for (int c = 0; c < slot.Length; ++c)
  19. {
  20. for (int d = 0; d < slot.Length; ++d)
  21. {
  22. if (slot[c] == slot[d])
  23. {
  24. ++a;
  25. }
  26. }
  27. if (a == 5) break;
  28. else a = 0;
  29. }
  30. if (a == 5)
  31. {
  32. Console.WriteLine("Пятёрка!");
  33. continue;
  34. }
  35. #endregion
  36. #region Четвёрка
  37. for (int c = 0; c < slot.Length; ++c)
  38. {
  39. for (int d = 0; d < slot.Length; ++d)
  40. {
  41. if (slot[c] == slot[d])
  42. {
  43. ++a;
  44. }
  45. }
  46. if (a == 4) break;
  47. else a = 0;
  48. }
  49. if (a == 4)
  50. {
  51. Console.WriteLine("Четвёрка!");
  52. continue;
  53. }
  54. #endregion
  55. #region Полный дом
  56. for (int c = 0; c < slot.Length; ++c)
  57. {
  58. for (int d = 0; d < slot.Length; ++d)
  59. {
  60. if (slot[c] == slot[d])
  61. {
  62. ++a;
  63. }
  64. }
  65. if (a == 3)
  66. {
  67. for (int e = 0; e < slot.Length; ++e)
  68. {
  69. for (int f = 0; f < slot.Length; ++f)
  70. {
  71. if (((slot[e] != slot[c] || (slot[f] != slot[c])) && (slot[e] == slot[f])))
  72. {
  73. ++b;
  74. }
  75. }
  76. if (b == 2) break;
  77. }
  78. }
  79. break;
  80. }
  81. if (a == 3 && b == 2)
  82. {
  83. Console.WriteLine("Полный дом!");
  84. continue;
  85. }
  86. #endregion
  87. } while (Console.ReadKey().Key == ConsoleKey.Enter);
  88. }
Эврика! КАК?! Не могу понять! Перетыкал и вот получилось! Совсем с ума сойдёшь, пока нужные break'и в нужные места поставишь. Не заметил ни одного пустого места.
Листинг программы
  1. #region Полный дом
  2. for (int c = 0; c < slot.Length; ++c)
  3. {
  4. for (int d = 0; d < slot.Length; ++d)
  5. {
  6. if (slot[c] == slot[d])
  7. {
  8. ++a;
  9. }
  10. }
  11. if (a == 3)
  12. {
  13. for (int e = 0; e < slot.Length; ++e)
  14. {
  15. for (int f = 0; f < slot.Length; ++f)
  16. {
  17. if (((slot[e] != slot[c] || (slot[f] != slot[c])) && (slot[e] == slot[f])))
  18. {
  19. ++b;
  20. }
  21. }
  22. if (b == 2) break;
  23. else b = 0;
  24. }
  25. break;
  26. }
  27. else a = 0;
  28. }
  29. if (a == 3 && b == 2)
  30. {
  31. Console.WriteLine("Полный дом!");
  32. continue;
  33. }
  34. #endregion

Решение задачи: «Не могу понять в чём дело. Не отображается значение»

textual
Листинг программы
  1.         static Random rnd = new Random();
  2.         static int[] array = new int[5];
  3.         static void Game()
  4.         {
  5.             do
  6.             {
  7.                 for(int i = 0; i < array.Length; i++)
  8.                 {
  9.                     Console.Write((array[i] = rnd.Next(1, 3)) + " ");
  10.                 }
  11.                 int count = array.Count(x => x == 1);
  12.                 Console.WriteLine(count == 5 || count == 0 ? "= 5" : count == 4 || count == 1 ? "= 4" : "= full house");
  13.             } while(Console.ReadKey(true).Key == ConsoleKey.Enter);
  14.         }
  15.         static void Main(string[] args)
  16.         {
  17.             Game();
  18.             Console.ReadKey(true);
  19.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы