Математический подсчёт, а не ручной - C#
Формулировка задачи:
Привет! Я тут эксперементирую. Пытаюсь сделать некое подобие детской игры фортуны. Вроде бы всё получилось, только когда я захотел увеличить количество цифр я столкнулся с тем, что вручную замучаюсь переписывать все возможные комбинации, которые могут выпасть. Я понимаю, что для этого нужно использовать цикл. Но я в монитор долблюсь и не понимаю, как это сделать. Помогите пожалуйста.
static void Main() { Game(); Console.ReadKey(); } static void Game() { Random random = new Random(); int a, b, c; do { a = random.Next(1, 4); b = random.Next(1, 4); c = random.Next(1, 4); Console.WriteLine("{0} {1} {2}", a, b, c); while (true) { if ((a == b && a == c)) { if (a == 1) { Console.WriteLine("Единицы! Выигрыш x10.\n"); break; } if (a == 2) { Console.WriteLine("Двойки! Выигрыш x20.\n"); break; } if (a == 3) { Console.WriteLine("Тройки! Выигрыш x30.\n"); break; } } if (a == (b - 1) && a == (c - 2) || a == (b - 2) && a == (c - 1) || b == (a - 1) && b == (c - 2) || b == (a - 2) && b == (c - 1) || c == (a - 1) && c == (b - 2) || c == (a - 2) && c == (b - 1) ) { Console.WriteLine("Лесенка! Выигрыш x5.\n"); break; } if (a == b || a == c || b == c) { Console.WriteLine("Пара! Выигрыш x2.\n"); break; } } } while (Console.ReadKey().Key == ConsoleKey.Enter); } }
Кто по опытнее, чем я, то вы можете увеличить количество чисел до 10, а количество ячеек до 5. Добавить 4 и 5 совпадений подряд одинаковых чисел, плюс лесенки и остальное я просто не разбирал, что там может выпадать. Вы поймёте, что я имел ввиду.
Решение задачи: «Математический подсчёт, а не ручной»
textual
Листинг программы
static void Main() { Game(); Console.ReadKey(); } static void Game() { Random random = new Random(); int a, b, c; string[] outcomes = { "Единицы! Выигрыш x10.\n", "Двойки! Выигрыш x20.\n", "Тройки! Выигрыш x30.\n", "Четверки! Выигрыш x40.\n", // TODO: Дописать до 10 // ... }; do { a = random.Next(1, 4); b = random.Next(1, 4); c = random.Next(1, 4); Console.WriteLine("{0} {1} {2}", a, b, c); do { if ((a == b && a == c)) { bool leave_flag = false; for (int i = 0; i < outcomes.Length; ++i) { if (a == 1 + i) { leave_flag = true; Console.WriteLine(outcomes[i]); break; } } if (leave_flag) break; } if ( a == (b - 1) && a == (c - 2) || a == (b - 2) && a == (c - 1) || b == (a - 1) && b == (c - 2) || b == (a - 2) && b == (c - 1) || c == (a - 1) && c == (b - 2) || c == (a - 2) && c == (b - 1) ) { Console.WriteLine("Лесенка! Выигрыш x5.\n"); break; } if (a == b || a == c || b == c) { Console.WriteLine("Пара! Выигрыш x2.\n"); break; } }while (false) ; } while (Console.ReadKey().Key == ConsoleKey.Enter); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д