Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/2: Рейтинг темы: голосов - 2, средняя оценка - 4.50
VladislavTepes
78 / 78 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
1

Найти пять или более шаров по вертикали или горизонтали

19.02.2014, 20:50. Просмотров 451. Ответов 3
Метки нет (Все метки)

Hi all. За вечер написал почти рабочую игру - клон Lines 98, но застрял на сабже. Объясню подробнее: есть поле 9*9 клеток с разноцветными шарами в некоторых ячейках. Мне необходимо искать на этом поле последовательности из n и более шаров одного цвета по вертикали/горизонтали. Может, есть какие-то методы для использования в подобных случаях? Натолкните на мысль, пожалуйста - хоть статьями, хоть псевдокодом - буду благодарен. И да, в коде это дело представляется в виде двух массивов 9*9: массива объектов типа Ball (к примеру) и массива map, где по нужным индексам шар помечается как -1, свободная клетка - нулем.
Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 20:50
Ответы с готовыми решениями:

Найти в матрице самую длинную цепочку подряд стоящих 0 по горизонтали или вертикали
Матрица состоит из 0 и 1. Найти в ней самую длинную цепочку подряд стоящих 0 по горизонтали или...

Слова по вертикали или горизонтали
Определить функцию, вычисляющую количество вхождений слова по вертикали и горизонтали. Например,...

Как растянуть скролбар по вертикали или горизонтали?
Вообще как его правильно присобачить? Сейчас он просто прямоугольничком таким маленьким в...

Выясните, стоят ли в матрице два нуля рядом по горизонтали или вертикали
Помогите решить Двумерный массив n на n заполнен 0,1 и 2. Выясните, стоят ли в нем два нуля рядом...

Определить, по какой диагонали, вертикали или горизонтали произведение элементов будет максимальным
Задан двумерный массив целых чисел. Определить, по какой диагонали, вертикали или горизонтали...

3
wingblack
280 / 254 / 45
Регистрация: 09.04.2013
Сообщений: 953
20.02.2014, 12:42 2
А там разве диагонали не учитываются ?
Код
пусть A - ячейка матрицы с шарами, 0 - если нет, номер цвета - если есть

1)
для каждого столбца
 первый = 0
 последний = 0
 последний цвет - сбросить ((-1) например)
 для каждой строки
   если A не равен последнему цвету
      если (последний - первый + 1 равно или больше N) 
        пометить шары на удаление
      если A не ноль
        первый = номер строки
        последний = первый
        последний цвет = цвет A
      иначе
        последний = 0
        последний цвет  сбросить
    иначе
      если А не ноль
        последний = номер строки
 если (последний - первый + 1 равно или больше N) // проверка для случая в конце строки/столбца
  пометить шары на удаление
2) 
повторить (1) поменяв местами строки и столбцы
3)       
удалить помеченные шары
если нужно - зачислить очки игроку.
Добавлено через 5 минут
исправлено
1
VladislavTepes
78 / 78 / 14
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
20.02.2014, 16:29  [ТС] 3
Я попробую, спасибо.

Добавлено через 20 минут
Кстати, а что такое N? Размерность массива (N *N)?

Добавлено через 37 секунд
Кстати, а что такое N? Размерность массива (N *N)?

Добавлено через 48 минут
Ох, понял. Это число уничтожаемых шаров, наверное?
0
wingblack
280 / 254 / 45
Регистрация: 09.04.2013
Сообщений: 953
21.02.2014, 13:33 4
N это число шаров подряд, начиная с которого шары нужно убирать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 13:33

Определить, имеются ли в матрице четыре смежных элемента по горизонтали, вертикали или диагонали.
Элементами квадратной матрицы являются цифры 0, 1, ..., 9. Определить, имеются ли в матрице четыре...

Как спросить у программы: "Если существует соседний элемент массива по вертикали или горизонтали, то ..."
Как спросить у программы: "Если существует соседний элемент массива по вертикали или горизонтали,...

Найти в созданном массиве максимальное количеством нулей примыкающих друг к другу по горизонтали и вертикали
Написать программу, интегрирующую случайный двумерный массив из 0 и 1 с помощью датчика случайных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru