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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Волновой поиск на Java, Для танчиков 
:(
    Опции темы
WhiteFang
Дата 27.4.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот пишем с другом "танчики" - курсовик по информатике.
Мне надо написать алгоритм, чтобы бот искал игрока.
Помнится на JS писал сапёра и там для поиска пустоты использовал одну функцию. Решил переделать её под Java и вот что получилось.
Код

import java.awt.*;         /***********************************/
import java.awt.event.*;   // подключаю модули, или как их там//
import javax.swing.*;      /***********************************/

public class Wave {
  int field[30][30]; //  исходный массив
  int field2[30][30]; // массив для поиска пути
  int bx, by, ex, ey;       // координаты начала и конца пути
  int counter = 0;
  int Stolbik = 0; // y
  int Colonka = 0; // x
  for (int i = 0; i < field.length; i++) {
    for (int j = 0; j < field2.length; j++) {
      field2 [i][j] = 0;
    }
  }
  public void FindWay(Colonka, Stolbik) {    
    for (var Colonka = x1 - 1; Colonka  <= x1 + 1; Colonka++) {
      for (var Stolbik = y1 - 1; Stolbik <= y1 + 1; Stolbik++) {
        if ((Colonka >= 0) && (Colonka < field2.length) && (Stolbik >= 0) && (Stolbik < field2.length) 
            && (field2[Colonka][Stolbik] == 0)  && (field[Colonka][Stolbik] == 0)) // у field "0" в данном случае является значением проходимой клетки
        {
            counter++;
            field2[Colonka][Stolbik] = 1;
            FindWay(Colonka, Stolbik);
        }
      }
    }
  }
}


Ну естественно тут есть куча ошибок, т.к. в Java я плох. 
Ну вот вопросы:
Как сделать, чтобы по диагонали не искал, т.к. надо, чтобы бот двигался по горизонтали и вертикали.
Counter в сапёре считал количество открытых клеток, а тут надо найти кратчайший путь. Куда его привинтить?
Положение бота и положение игрока лучше считывать самому из массива, или передавать координаты?
Вообще как найти кратчайший путь? Может есть уже алгоритм в коде где? Поиск результатов не дал.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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