| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > кто придумает лучший алгоритм? |
| Автор: polosatij 1.12.2004, 14:45 |
| коротко о "шахматной доске": есть вот такая вот усечёная доска: http://server.imp-agentur.com/polosatij/chess.gif придумать алгоритм для хода слоном как примеры, были выбраны 4 пункта кто придумает лучший |
| Автор: redrick 1.12.2004, 15:11 |
| хода куда ? может обхода ? и не стоит ли переместить в Алгоритмы ? |
| Автор: Domestic Cat 1.12.2004, 16:37 |
| Лучший алгоритм чего? В смысле, кратчайший путь или наименьшее число перемещений? |
| Автор: polosatij 1.12.2004, 18:55 | ||||||
нет.. не обхода.. может ли слон походить с одного поля на другое.
не знаю.. а такое здесь есть?
дело в том, что это сильно упрощеная версия моей задачи.. таких полей у меня штук 6.. если всё просматривать с помощью if, то на выходе я получу как минимум 300 строк у одного "слона".. просто, может кто натолкнет на идею какую.. |
| Автор: Domestic Cat 1.12.2004, 19:04 | ||
снова нe понял. тебe нужен алгоритм ходa - как слоном ходить? иli как слоном (известно как он ходит) добраться дo определенной клетки? |
| Автор: polosatij 1.12.2004, 19:22 | ||
причём, чем меньше byte, тем лучше |
| Автор: Domestic Cat 1.12.2004, 19:38 | ||
это чтобы он был меньше 8 бит? А алгоритм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 При этом проверяшь не выходит ли он за границы поля (массива) |
| Автор: polosatij 1.12.2004, 23:42 | ||
нет.. так получается болеьше чем 600 строк.. ладно.. забей) я не могу полностью всего здесь рассказать, это лишь маленький неудачно спрошенный кусочек.. еееееееех.. |
| Автор: Domestic Cat 2.12.2004, 01:52 | ||
Почему ? |
| Автор: igon 2.12.2004, 02:58 | ||||
| Навскидку: так как слон ходит только по диагонали, Организуешь 2-х мерный массив: 1-й индекс - поле по горизонтали 2-й индекс - поле по вертикали значение элемента - 0 - занято, 1-свободно. Пусть текущая позиция 3,3. Надо - 8,8
Знаки приращения у i и j определяем в зависимости от направления движения. И, наконец, определяем, чем занято поле 8,8. Своей фигурой - ходить нельзя, чужой - бьем, пустая - ходим. Повторяю - это навскидку, наверняка можно оптимизировать, например, для движения по главной диагонали вправо-вверх (как в данном случае), достаточно
|
| Автор: sergejzr 4.12.2004, 00:59 |
| Офицер всегда ходит по прямой под уклоном +-45 градусов от своей позиции. Тебе надо всего лишь смотреть, пересекается ли та прямая с "пустым" прямоугольником Что-то в этом роде.. Но при чём здесь ява? |