All streams
Search
Write a publication
Pull to refresh
77
0
Сергей Чибиряев @chibiryaev

Разработчик игр

Send message
2 секунды на ход это слишком много, я делал реализацию, в которой на поле 9х9 и словаре 110000 слов на ход тратилось 16 миллисекунд
Обычно то, что выдает программа не всегда является оптимальной последовательностью ходов.
Дело в том, что в приложении балда39 читеров банят уже хотя бы по факту играния «нелепыми» словами (куэнковец, денедж, ньяя и др.). Опытные читеры никогда не ходят такими словами и вообще ходят только теми, которые знают сами. И потом, на ход ведь дается не 5 секунд, а минута или 2, за это время можно и самому успеть проанализировать игровую ситуацию (отсеивая нелепые слова)

Сколько у вас время поиска на большом поле наполовину заполненном (на один только ход вперед)? (Ну там 30х30 или большем поле)
1 проход рендерим в текстуру кадр слева (на картинке из поста), второй проход этот и все
Заводим текстуру, например такую

Настраиваем текстурные координаты так, чтобы она репителась столько раз, сколько разрешение «ЭЛТ-монитора» и просто умножаем выборку из нее, на выборку из текстуры кадра (возможно с неким коэффициентом).
тут по моему ошибка
g(m, k) = g(m – 1, k – 1) + g(m – 1, k)

должно быть
g(m, k) = g(m – 1, k – 1) + g(m – 1, k) + 1
то есть + попытка броска на этаже «a»
А что за инструментарий вы использовали?
Уровень начинающего новичка — это я еще погорячился, там вообще уровень 5-6 летнего ребенка. Иногда встречаются просто (помягче сказать) нелепые ходы.
Скрытый текст
Вот на этом клочке, я и то одержал 16-ю победу
image
Во-первых, крестики ходят первыми, а не нолики. Во-вторых, ваш алгоритм играет на уровне начинающего новичка (забавно, но бот вообще не реагирует на разрывную открытую тройку — тройка с пустой средней клеткой), я уже не говорю про вилки, обозы и форсированные ви&#769ны. В-третьих, я не очень понимаю смысл этого поста, какую пользу он несет?
Пост плохо читается из-за большого количества ошибок и игнорирования правил русского языка и из-за «легкомысленного» стиля изложения.
float factor = m.rgb.x + m.rgb.y + m.rgb.z;

Если текстура m (маски) — ч/б, то зачем делать сумму каналов? И так по всему коду
действительно, я и сам это заметил после публикации. Так-то в ключевых словах я указывал именно «балда».
Откуда у Вас словарь на 110 000 слов?

Я его взял из приложения балды в одной социальной сети, точнее из группы этого приложения.
И есть ли где-нибудь в открытом доступе специальные коллекции словарей?

Вот этого не знаю
на входе подаётся что-то типа "*п*ар***ур"

не много не понял, откуда берется такой шаблон? Ну т.е. как он формируется?

А вы бы могли реализовать эту задачу на основе таких автоматов, потом сравнили бы скорость поиска с моим алгоритмом (этакий челендж)
я бы выложил, но у меня пока нет аккаунта разработчика гугл-плей, как появится — сразу выложу
ios-версия в app store называется «помощник для балды», андроид-версия сделана, но никуда не выложена
ну естественно физически в узле никакая буква не хранится, я так писал для понятности
1) если кому-то интересен код, могу его добавить
2) ну некоторые вставки на плюсах же, и опять же вдруг таки код добавлю (а он на С++)
Не знаю, обсуждалось ли выше, но
Для примера подумайте, как будет выглядеть дискретная функция, коэффициенты разложения которой равны нулю, кроме последнего.

Как же выглядит эта дискретная функция? На ум лишь приходит чередование чёрных и белых пикселей, но тогда 1-й коэффициент будет 0.5? Или я что-то не понимаю?
Невероятно, все один в один как у меня. Я тоже сейчас разрабатываю игру в стиле митбоя с обилием смертей и нервов. То, что у вас в профиле [О себе] один в один про меня, за исключением того, что я не веб-программист. И судя по некоторым фразам из статьи вы с геймдева, как и я
А что это за игра на видео? (смесь марио и IWBTG?)
Так, мне эти разговоры про рендер заранее надоели.
Возьмем самый маленький уровень (он же 1-й)
Его размер 47х33 тайла
На экран попадает ровно 15 тайлов по горизонтали (на айпаде), рендеринг произвожу в текстуру 1024х768
Т.е. один тайл занимает примерно 1024/15=68.3 пиксела (примерно 70) в ширину, а он еще и квадратный, т.е. 70х70
Т.о. чтобы сохранить пиксельность уровня нужно заготовить заранее под него текстуру 3290х2310
Теперь возьмем самый большой уровень 91х196. Для него уже потребуется текстура 6370х13720, тогда как на моем айпаде 4 максимальный размер текстур 4096х4096. Как вариант, можно разбить эту текстуру на много маленьких (1024х1024 например) так, чтобы все они покрывали уровень. Один фиг, большой уровень потребует 6370х13720х4=350М
Даже если все это таки сделать, шейдер уровня будет нетривиальный (не, не просто так взять выборку из текстуры и поместить на экран). Нужно произвести смешивание со скайбоксом, На участке, где вода (а её кстати где хранить в большой текстуре, она ведь пересекается с бекграундом, альфаканал уже занят под маску скайбокса) произвести искажений бэка и водорослей и «замутнить» бэк (типа толща воды). А как сделать выплывание рыбок из-за земли, но поверх бэка? (бэк и земля ведь не отдельно хранятся, а в большой текстуре) Обрезать? Как? Хранить землю и бэк таки в разный текстурах? Ладно, тогда 700М.
Оно того стоит? Тогда как я с помощью шейдера рендерю нужный мне кусок уровня с 60фпс

update: только что вспомнил, разрешение маски уровня апается в два раза, поэтому умножаем память еще в 4 раза

Information

Rating
Does not participate
Location
Заволжье, Нижегородская обл., Россия
Registered
Activity

Specialization

Software Developer, Game Developer
Senior