Что нового

[Автоматизация] Алгоритм поиска наилучшего хода в игре-головоломке

xishnik

Новичок
Сообщения
51
Репутация
0
Версия AutoIt: 3.3.10.2

Описание:
Есть игровое поле 6 на 6, выглядит примерно вот так:
de7d5f1022ae.jpg
при помощи PixelGetColor из него получается aMassiv[6][6]:
960ea67240d1.jpg


Ходить по полю можно, передвинув 2 элемента.
Например вот 3 хода из многих возможных:
958b5e96aeec.jpg

Массив, состоит из чисел от 1 до 5(1-крест,2-зеленая фигура,3-жёлтая,4-череп,5-красная).
Эти цифры это вес фигур, алгоритм должен выбрать судя из массива, наилучший ход по всему полю.
Разберём ходы:
1) Красная линия - Соберётся 3 черепа, потом фигуры выше сместятся вниз, и больше ничего не соберется, итого вес: 3*4 = 12
2) Жёлтая линия - Сначала соберется 3 зеленых фигуры, потом жёлтая фигура которая над зелёными, упадёт вниз и соберётся ещё 3 жёлтых фигуры, итого вес: 3*2 + 3*3 = 15
3) Синяя линия - Сначала соберется 3 креста, потом ещё упадёт два черепа, и итого соберется ещё 4 черепа, итого вес: 3*1 + 4*4 = 19
Наилучший ход из это как я указал синей линией.

Я смог сделать только алгоритм, который собирает сначала красные, потом черепа и т.д., в зависимости от веса одного хода, независимо от того что упадёт, мой бы алгоритм, собрал бы 3 черепа и это не наилучший ход.

Помогите придумать алгоритм который по всему полю, вычислит лучшие 5 ходов с учётом того что упадёт(зачастую бывает что когда элементы падают, их собирается по 18 штук, они падают не 1 раз ) и выдаст информацию о каждом ходе:
1) Общее кол-во фигур, которые соберутся
2) Количество фигур весом 5
3) Количество фигур весом 4
....
6) Количество фигур весом 1
7) Первый элемент массива на который нужно нажать
8 ) Второй элемент массива на который нужно нажать, чтобы походить

Ещё есть одно условие:
Если собираются 5, независимо каких элементов в ряд, то даётся дополнительный ход. Ход где соберется 5 элементов, должен считаться самым лучшим.

Дайте хотя бы мудрый совет, о том, как можно было бы обработать этот массив.

Заранее благодарен



Примечания:
Вроде всё описал.
 

_dron_

Знающий
Сообщения
84
Репутация
8
Re: Нужно хорошо обработать двухмерный массив

это для бота?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Нужно хорошо обработать двухмерный массив

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Нужно хорошо обработать двухмерный массив" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Верх