Для тех, кто не знаком с игрой БИНГО, в нее играют следующим образом
1) Вы получаете карту БИНГО, в которой есть матрица NXN. чисел, напечатанных случайным образом. Числа уникальны. Максимальное напечатанное число может превышать N^2. например если у вас матрица 5x5, то максимальное число также может быть 75. Но диапазон чисел заранее определен, скажем, от 1 до M.
2)Человек произносит цифры случайным образом в диапазоне от 1 до M.
3)Если число есть на вашей карточке, вы пересекаете номер.
4)Процесс пересечения чисел повторяется. Когда вы пересекли полную строку, или полный столбец, или две диагонали, вы получаете свое первое бинго.
Игра продолжается так же, как Общее количество возможных БИНГО составляет N+N+2 для N строк, N столбцов и 2 диагоналей.
Теперь я хочу создать для этого алгоритм. пользователь будет вводить случайные числа, и алгоритм их услышит и перечеркните его числа в матрице (уже имеется). Как только он получает БИНГО, он объявляет об этом. Каков наилучший подход
Я попробовал это как сохранение двумерной матрицы для карты.
Когда объявляется число, я ищу его за время O(NxN). Когда я найди его, я сделаю его равным 0.
После того, как значение равно 0, я проверяю, есть ли теперь все нули в соответствующей строке и столбце. Если оно было на диагонали, я также ищу диагональ. Это занимает время O(3N). >
Есть ли лучший подход?
Подробнее здесь: https://stackoverflow.com/questions/196 ... bingo-game
Алгоритм реализации игры БИНГО ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение