Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кто придумает лучший алгоритм? (прилагается рисунок) 
:(
    Опции темы
polosatij
  Дата 1.12.2004, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



коротко о "шахматной доске":

есть вот такая вот усечёная доска:

--Resize_Images_Alt_Text--

придумать алгоритм для хода слоном smile
как примеры, были выбраны 4 пункта smile //внимание изменения: я ещё один ход добавил

кто придумает лучший smile

Это сообщение отредактировал(а) polosatij - 1.12.2004, 19:30


--------------------
PM   Вверх
redrick
Дата 1.12.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



хода куда ? может обхода ?
и не стоит ли переместить в Алгоритмы ?


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
Domestic Cat
Дата 1.12.2004, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Лучший алгоритм чего? В смысле, кратчайший путь или наименьшее число перемещений?



--------------------

PM   Вверх
polosatij
Дата 1.12.2004, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(redrick @ 1.12.2004, 15:11)
хода куда ? может обхода ?


нет.. не обхода..
может ли слон походить с одного поля на другое.

Цитата(redrick @ 1.12.2004, 15:11)
и не стоит ли переместить в Алгоритмы ?


не знаю.. а такое здесь есть?


Цитата(Domestic @ 1.12.2004, 16:37)
Лучший алгоритм чего? В смысле, кратчайший путь или наименьшее число перемещений?


дело в том, что это сильно упрощеная версия моей задачи..
таких полей у меня штук 6.. если всё просматривать с помощью if, то на выходе я получу как минимум 300 строк у одного "слона"..

просто, может кто натолкнет на идею какую..



--------------------
PM   Вверх
Domestic Cat
Дата 1.12.2004, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
дело в том, что это сильно упрощеная версия моей задачи..
таких полей у меня штук 6.. если всё просматривать с помощью if, то на выходе я получу как минимум 300 строк у одного "слона"..


снова нe понял. тебe нужен алгоритм ходa - как слоном ходить? иli как слоном (известно как он ходит) добраться дo определенной клетки?


--------------------

PM   Вверх
polosatij
Дата 1.12.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(Domestic @ 1.12.2004, 19:04)
нужен алгоритм ходa


причём, чем меньше byte, тем лучше



--------------------
PM   Вверх
Domestic Cat
Дата 1.12.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
чем меньше byte


это чтобы он был меньше 8 бит? smile

А алгоритмa здес' никакогo нет - берешь двумерный массив в видe твоей доски, и перемещаеш ь
слонa в 4 направлениях - если его координаты int x, int y, то будет
1. x + n, y + n
2. x - n, y + n
3. x - n, y - n
4 x + n, y - n
При этом проверяшь не выходит ли он за границы поля (массива)


--------------------

PM   Вверх
polosatij
Дата 1.12.2004, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 1
Всего: 8



Цитата(Domestic @ 1.12.2004, 19:38)
и перемещаеш ь
слонa в 4 направлениях - если его координаты int x, int y, то будет
1. x + n, y + n
2. x - n, y + n
3. x - n, y - n
4 x + n, y - n
При этом проверяшь не выходит ли он за границы поля (массива)


нет.. так получается болеьше чем 600 строк..
ладно.. забей) я не могу полностью всего здесь рассказать, это лишь маленький неудачно спрошенный кусочек..

еееееееех..

Это сообщение отредактировал(а) polosatij - 1.12.2004, 23:49


--------------------
PM   Вверх
Domestic Cat
Дата 2.12.2004, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата(polosatij @ 1.12.2004, 14:42)
нет.. так получается болеьше чем 600 строк..


Почему ? smile


--------------------

PM   Вверх
igon
Дата 2.12.2004, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 30.10.2004

Репутация: 1
Всего: 21



Навскидку: так как слон ходит только по диагонали,
Организуешь 2-х мерный массив:
1-й индекс - поле по горизонтали
2-й индекс - поле по вертикали
значение элемента - 0 - занято, 1-свободно.

Пусть текущая позиция 3,3. Надо - 8,8
Код


sum = 0;
for (i=4,j=4; i<8,j<8; i++,j++)
 {sum += array[i][j]}
if sum = (8-1) - (3+1) - 1 => путь свободен, если меньше - что-то мешает

Знаки приращения у i и j определяем в зависимости от направления движения.

И, наконец, определяем, чем занято поле 8,8. Своей фигурой - ходить нельзя, чужой

- бьем, пустая - ходим.

Повторяю - это навскидку, наверняка можно оптимизировать, например, для движения по главной диагонали

вправо-вверх (как в данном случае), достаточно
Код


for (i=4; i<8; i++)
 {sum += array[i][i]}




--------------------
Хотите поговорить об этом?
PM   Вверх
sergejzr
Дата 4.12.2004, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Офицер всегда ходит по прямой под уклоном +-45 градусов от своей позиции.
Тебе надо всего лишь смотреть, пересекается ли та прямая с "пустым" прямоугольником smile
Что-то в этом роде..

Но при чём здесь ява?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.