Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.11.2008, 12:21
oCa вне форума Посмотреть профиль Отправить личное сообщение для oCa Найти все сообщения от oCa
  № 1  
Ответить с цитированием
oCa
 
Аватар для oCa

Регистрация: May 2006
Сообщений: 40
По умолчанию Поиск вариантов хода

Всем моё почтение!
Прошу помощи в поиске пути (хотя бы направления куда копать) для решения следующей задачи:
(Пояснения во вложении)

Дано:
1. Поле (MxN), разбитое на клетки, у каждой клетки имеется свой номер, и соответственно можно определить номер строк и столбца (координаты);
2. Узлы (игроки), находящиеся строго в центре клеток. Имеют номера и координаты (номера ячеек 17 и 25);
3. K - кол-во ходов (здесь, на рисунке - K=3).
4. Некий предмет, который находится у игрока. Известны координаты - совпадают с координатами игрока (у игрока на клетке 25).


Найти
1. Клетки куда можно сходить (бросить предмет). (Зелёные клетки)

Ограничения
1. Ходы возможны только по направлениям ферзя и на кол-во К-клеток. 2. Если на пути встречается другой игрок, то передав ему предмет, он может кинуть последний на оставшееся кол-во клеток (от первого игрока можно бросить по темным линиям, от второго - светлым).
3. Отдать обратно предмет нельзя (клетка 33)

Может есть какие идеи? Рекурсия или каждое направление рассматривать отдельно? Словом, в затруднении...
Изображения
 

Старый 24.11.2008, 03:28
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 2  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
самое простое перебором.
например, номера полей можно задать так:
по игрику десятки по иксу единицы - пример 23: второй ряд, третий столб
после чего циклами перебрать все направления:
для проверок нужных клеток получаем их номера +-10 по вертикали, +-1 по горизонту, по диагонялям соотвественно и десятки и единицы менять.
Кол-во вхождений цикла ограничивается:
1 кол-вом ходов
2 пока не выйдем за рамки поля
3 пока не достигнем целевой клетки с которой можем произвести действие

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

Я так делал шашки когда-то: проверял наличие хода вообще, подсказку для движения выбранной шашки/дамки, блокировка хода если была возможность "сожрать" противника и несколько разных опций в зависимости от выбора правил игры.

Возможно это делается по-умному, какими-нибудь битовыми операциями и матрицами...

Старый 24.11.2008, 18:08
oCa вне форума Посмотреть профиль Отправить личное сообщение для oCa Найти все сообщения от oCa
  № 3  
Ответить с цитированием
oCa
 
Аватар для oCa

Регистрация: May 2006
Сообщений: 40
Спасибо за помощь!
В целом пришел к такому же исходу - перебор по 8 циклам (направлениям).

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.