Tas'ka Опубликовано 18 мая, 2005 Жалоба Поделиться Опубликовано 18 мая, 2005 (изменено) Плиззз....помогите за комментарить прогу, ну комменты с объяснением, что где и как... и что получается... :) сэнкс :) variant___.zip variant___.zip Изменено 19 мая, 2005 пользователем Tas'ka Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 18 мая, 2005 Жалоба Поделиться Опубликовано 18 мая, 2005 (изменено) Ну ты, блин, даешь... Насколько я понял - это реализация игры lines в виде апплета. Все бы ничего, но комментить этот код было бы легче, если бы был еще код класса Ball. Добавлено позже: И PathFinder было бы неплохо... Просто ковырять код, который даже не компилится - как-то не очень... Изменено 18 мая, 2005 пользователем Shurr Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 19 мая, 2005 Жалоба Поделиться Опубликовано 19 мая, 2005 Блин, Tas'ka, а приаттачить файлы слабо? Зачем же выкладывать такие простыни? Держи свои комментарии. Balls.rar P.S. Кстати, я поменял в методе checkForFive() вызов markFive(active) на markFive(active.getPoint()), чтобы он компилился. Balls.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 21 мая, 2005 Автор Жалоба Поделиться Опубликовано 21 мая, 2005 :) спасибо!!!! огромное !!!! Пошла разбиратся :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 21 мая, 2005 Автор Жалоба Поделиться Опубликовано 21 мая, 2005 :) вот когда компилируешь, выдает он такое Note: *.java uses or overrides a depracted API Note: Recomple with -deprecation fot details после того как кмпилирую с ключом -deprecation он выдает как избавится от этотого? Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 21 мая, 2005 Автор Жалоба Поделиться Опубликовано 21 мая, 2005 :) а еще, мне как бы не нужен, такой слодный аолгортм поиска короткого пути! Как бы мне не надо, что бы вообще шарик искал путь и тем более что бы отображался, надо, что бы при попадании в нужную ячейку, знал, что туда можно попасть и попадал без путя этого длинного....мне подсказали вот такой алгортм (см.фото)..но он С++ :) как это в java переделать можно? :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 23 мая, 2005 Жалоба Поделиться Опубликовано 23 мая, 2005 вот когда компилируешь, выдает он такое Note: *.java uses or overrides a depracted API Note: Recomple with -deprecation fot details после того как кмпилирую с ключом -deprecation он выдает как избавится от этотого? 176293[/snapback] Это сообщения о том, что вызываемые методы устарели. Они по-прежнему поддерживаются, но появились новые, оптимизированные методы. В перспективе такие устаревшие методы могут перестать поддерживаться. Как от них избавиться? Читать Java API Specification для соответствующей версии java и заменять вызовы устаревших методов на те, которые рекомендованы в спецификации. А еще, мне как бы не нужен, такой слодный аолгортм поиска короткого пути! Как бы мне не надо, что бы вообще шарик искал путь и тем более что бы отображался, надо, что бы при попадании в нужную ячейку, знал, что туда можно попасть и попадал без путя этого длинного....мне подсказали вот такой алгортм (см.фото)..но он С++ :( как это в java переделать можно? 176294[/snapback] Переделать-то можно, вопрос в том - зачем? Чем тебе мешает сложность алгоритма, если он уже реализован? Он что, тормозит? Просто мне не совсем понятно, зачем менять алгоритм, который отлажен и работает? Разве что он у тебя в задании точно прописан... Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 23 мая, 2005 Автор Жалоба Поделиться Опубликовано 23 мая, 2005 препод сказал, что не фига ты такое не создашь, такой алгоритм, так что делай проще, вот в чем весь прикол :( Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 23 мая, 2005 Жалоба Поделиться Опубликовано 23 мая, 2005 Сказали проще - делай проще :D Напиши рекурсивный алгоритм, который будет проверять соседние ячейки на незанятость. У тебя поле-то 9х9, так что рекурсия будет неглубокой. Сделай также матрицу проверенных ячеек, т.е. матрицу, в которой будут отмечаться уже обработанные ячейки, и пользуйся ей при выборе ячеек для проверки - это поможет отсечь уже проверенные ячейки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 25 мая, 2005 Автор Жалоба Поделиться Опубликовано 25 мая, 2005 :) че-то ссылка не открывается Ладно ...посмотря...знать как бы так написать, знала бы не спрашивала :) А как там можно убрать, что бы шарики не появлялись так красиво...и не исчезали....а сразу? И проверка на 5 в линию, обязательно делать через вектор??? нельзя попроще? ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 25 мая, 2005 Автор Жалоба Поделиться Опубликовано 25 мая, 2005 и как он считает очки? т.е. почему он за 5 шариков дает 10 баллов и небольше и не меньше??? и почему в первый раз выкидывается именно 6 шариков? Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 25 мая, 2005 Автор Жалоба Поделиться Опубликовано 25 мая, 2005 (изменено) так насчет того, что выкидывается 6 шариков я поняла, как и что =) насчет счета сейчас тоже думаю разберуюсь, а вот насчет что бы убрать навверху подсказку (поле что появлются шарики)...все как не убираю...все ошибки все уж больно взаимосвязано.. А насчет этого пути...смотри ...матрица то у меня есть rivate int[][] BallsToInts() { int imatrix[][] = new int[9][9]; for(int x=0; x<9; x++) { for(int y=0; y<9; y++) { imatrix[x][y] = (matrix[x][y]==null) ? 0 : 1; } } return imatrix;} которая отображает состояние игрового поля и уже отмечает где стоят шарики, а где нет, как дальше? можно в варианте кода (а то вс словами...и как то не доходит ) Изменено 25 мая, 2005 пользователем Tas'ka Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 25 мая, 2005 Жалоба Поделиться Опубликовано 25 мая, 2005 (изменено) Так, давай по порядку. че-то ссылка не открываетсяКакая ссылка? Ладно ...посмотря...знать как бы так написать, знала бы не спрашивала Было бы не лень я бы и сам написал ;)А как там можно убрать, что бы шарики не появлялись так красиво...и не исчезали....а сразу?Можно. Если бы ты еще приаттачила ВСЮ козу, с которой ты "делаешь" свою работу, чтобы она у меня компилировалась и работала - мне было бы легче тебе помогать. И проверка на 5 в линию, обязательно делать через вектор??? нельзя попроще?А куда ж тут проще? Или тебе не нравится тип Vector? Так без него в программировании никуда - очень уж он удобный... и как он считает очки? т.е. почему он за 5 шариков дает 10 баллов и небольше и не меньше??? /** Проверка на наличие линии из пяти или более одноцветных шариков */private void checkForFive() { dbi("check for five"); if(markFive(active.getPoint())) { // если найдена линия для удаления int extra = deathRow.size() - 5; score += (extra==0) ? 10 : 10+(int)Math.pow(2, extra); startDeletion(); } else startAddingNext();} int extra = deathRow.size() - 5; Здесь считается количество "экстра" шариков, т.е. на сколько количество шариков в линии превышает 5. score += (extra==0) ? 10 : 10+(int)Math.pow(2, extra); Здесь к текущему счету прибаляется 10, если extra = 0 и 10 + 2^extra, если extra > 0; Вот тебе и 10 очков за 5-шариковую линию. Изменено 26 мая, 2005 пользователем Shurr Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 25 мая, 2005 Жалоба Поделиться Опубликовано 25 мая, 2005 А насчет этого пути...смотри ...матрица то у меня есть ... которая отображает состояние игрового поля и уже отмечает где стоят шарики, а где нет, как дальше? можно в варианте кода (а то вс словами...и как то не доходит )177587[/snapback] Лана, щас поковыряюсь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 25 мая, 2005 Автор Жалоба Поделиться Опубликовано 25 мая, 2005 Сэнкс Ссылка на комментарий Поделиться на другие сайты Поделиться
Shurr Опубликовано 26 мая, 2005 Жалоба Поделиться Опубликовано 26 мая, 2005 Ну че, вроде получилось что-то... :) Класс Flooder, производит проверку достижимости ячейки на поле. Для проверки достижимости используется метод: public boolean isReachable(int[][] map, Point startPoint, Point endPoint), где map - это карта поля, на котором нулями обозначены свободные ячейки, а единицами - занятые. startPoint - начальная точка endPoint - конечная точка. Возвращаемый результат - true, если точка startPoint достижима из точки endPoint, и false - если нет. Достижимость проверяется методом заливки, при этом используется алгоритм с выбором привилегированного направления движения. Подбил тут небольшую статистику: Размеры поля: 9x9 ------------------------------------------- Интенсивность заполнения поля: 0.1 Количество экспериментов: 100000 Среднее количество шагов при поиске: 7 Средний максимальный уровень вложенности рекурсии при поиске: 6 ------------------------------------------- Интенсивность заполнения поля: 0.2 Количество экспериментов: 100000 Количество успешных поисков: 96065 Среднее количество шагов при поиске: 9 Средний максимальный уровень вложенности рекурсии при поиске: 7 ------------------------------------------- Интенсивность заполнения поля: 0.3 Количество экспериментов: 100000 Среднее количество шагов при поиске: 12 Средний максимальный уровень вложенности рекурсии при поиске: 8 ------------------------------------------- Интенсивность заполнения поля: 0.4 Количество экспериментов: 100000 Среднее количество шагов при поиске: 11 Средний максимальный уровень вложенности рекурсии при поиске: 7 ------------------------------------------- Интенсивность заполнения поля: 0.5 Количество экспериментов: 100000 Количество успешных поисков: 30672 Среднее количество шагов при поиске: 8 Средний максимальный уровень вложенности рекурсии при поиске: 5 ------------------------------------------- Интенсивность заполнения поля: 0.6 Количество экспериментов: 100000 Среднее количество шагов при поиске: 5 Средний максимальный уровень вложенности рекурсии при поиске: 3 ------------------------------------------- Здесь: Интенсивность заполнения поля - коэффициент заполнения поля шариками. Т.е. интенсивность = 0.3 обозначает, что 30% ячеек занято шариками. Количество экспериментов - количество экспериментов, проведенных при данных параметрах. Среднее количество шагов при поиске - среднее количество шагов до получения однозначного результата о достижимости или недостижимости конечной ячейки. 1 шаг = обработка 1 ячейки. Средний максимальный уровень вложенности рекурсии при поиске - усредненное значение максимального уровня вложенности, имевшего место при каждом эксперименте. Т.е. из статистики видно, что наиболее трудоемким для такого алгоритма является 30-40-процентное заполнение шариками игрового поля. При большем заполнении - количество шагов уменьшается за счет увеличения процента замкнутых "полостей" на карте. При меньшем же проценте заполнения - количество шагов уменьшается за счет того, что отдельностоящие шарики слабо препятствуют направленному движению к конечной точке. Ковыряй, студентка :) Flooder.rar Flooder.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 30 мая, 2005 Автор Жалоба Поделиться Опубликовано 30 мая, 2005 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти