Алгоритм реализации игры БИНГОJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Алгоритм реализации игры БИНГО

Сообщение Anonymous »


Для тех, кто не знаком с игрой БИНГО, в нее играют следующим образом

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).

Есть ли лучший подход?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»