|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||||||||||||||||
Путанница и ошибки в самописной игре на питоне14.05.2023, 22:24. Показов 1175. Ответов 3
Метки help me please, python, python 3.10, python для начинающих, питон, помощь python, рефакторинг (Все метки)
Добрый вечер, уважаемые форумчане!
Решил создать игру на питоне(работа на автомат в универе), но возникли некоторые баги и непонятности, с которыми не знаю как бороться. Примерно 2 недели сидел сам, перерабатывал и разбирался, что-то получилось исправить, а что-то нет. И вот я здесь. Не судите строго, на питоне до этого кроме задачек по типу решения квадратных уравнения или чего-то сложнее простейших графиков не писал (Основные языки - Си и С++). Рад буду любому материалу и информации по теме. Литература и гайды на ютубе будут очень полезны. Для начала общая концепция игры и что должно было быть: 2d игра, вид сверху. Квадратная карта с размерами 800x800px, 2 точки спавна (одна для юзера и одна для нейро-юзера(пользователь за которого играет самописная нейронная сеть и которая учится на ходах юзера, которым управляет человек)) и одна точка выхода. Нейро-юзер должен уметь ходить по карте и ловить пользователя. Если нейронка поймала пользователя, у него отнимается одна жизнь и игра начинается сначала. Сам же пользователь может кидать мячики в нейронку, тем самым затормаживая её. Если пользователь дошел до выхода из карты, то он выиграл. Cкрин того, что есть на данный момент, находится в самом конце сообщения. Зеленый квадрат - спавн пользователя, синий - спавн нейронки, белый - выход, красные - ловушки. Ниже предоставляю весь код 3-х модулей, которые написаны на данный момент, а также ниже каждого модуля напишу проблемы, которые там выявил и которые не знаю как исправить. модуль map.py (Создает карту и инициализирует её) Кликните здесь для просмотра всего текста
Проблемы: константа COMPLEXITY по факту выражает не сложность, а легкость игры, то есть на значении 1 на карте вообще нет стен, также имеется достаточно много констант, которые дублируются не только в этом модуле и которые по хорошему надо бы вынести в отдельный файл const.py. Я это обязательно сделаю, но как-нибудь потом (возможно никогда).Остальное написано коряво, но работает вроде как правильно. Модуль player.py (Нужен для создания, инициализации и отрисовки игрока в виде шестиугольника (это временно, пока нет текстуры)) Кликните здесь для просмотра всего текста
Проблемы: Player не ходит. Абсолютно отказывается ходить при нажатии w a s d. Подозреваю, что тут не только в модуле player, но в основном видимо в нем. Последний модуль map_rendering.py (Изначально придумывался для того, чтобы тихо и спокойно рисовать карту и никого не трогать, но по факту кроме всего этого он еще является и main всей игры, а также свалкой, в которую импортируются все остальные модули.) Кликните здесь для просмотра всего текста
Проблемы: Можно было бы написать, что весь модуль - это одна сплошная проблема. Но в основном грешу на функцию test_map_rendering, которая изначально рисовала только красивую карту, но потом обрела игровой цикл и получилось то, что получилось. Больше всего грешу именно на этот модуль, ибо по идее его надо разнести на несколько. Как минимум вычленить из него часть main в отдельный модуль, а также убрать test_map_rendering. Также мне кажется, что причина того, почему Player не перемещается по карте именно в игровом цикле в фунции test_map_rendering. В качестве общей проблемы уже наблюдаю не очень хорошую архитектуру проекта. У меня нет класса Map, хотя по идее он должен быть. Ну а про модули, которые будут создавать нейронку и обучать ее, а также давать пользователю полоску здоровья и возможность пуляться кружочками в нейронку я уж и не говорю. Пока застрял на передвижении пользователя. Я буду крайне благодарен любой информации по теме, а также дельной критике и советам по исправлению. И особенно ревью кода, но только с пояснениями, ибо главная цель - разобраться, а не сдать работу(ибо на гитхабе полно работ, которые можно было бы сдать за свои. Это не тот случай.). Спасибо, что дочитали до конца. ![]() Сама же игра выглядит вот так:
1
|
||||||||||||||||
| 14.05.2023, 22:24 | |
|
Ответы с готовыми решениями:
3
Нужно сделать меню и рестарт после смерти в простенькой игре на питоне Ошибки в проекте с голосовым управлением на Питоне Ошибки кодировок в Питоне при чтении файлов |
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
|
| 15.05.2023, 00:52 [ТС] | |
|
Уважаемые форумчане, очень прошу помощи. Сам не знаю уже как подступиться к проблеме. Мне нужно хотя бы мало мальски понять что не так и я найду способ это исправить
0
|
|
|
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
|
|||||||
| 15.05.2023, 21:17 | |||||||
0
|
|||||||
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
|
| 21.05.2023, 03:43 [ТС] | |
|
Спасибо, честно говоря, не особо помогло. Решение принципиально другое. Я уже пофиксил эту вещь. Оказывается, что с проверками перемудрил и не ту координату передавал
0
|
|
| 21.05.2023, 03:43 | |
|
Помогаю со студенческими работами здесь
4
Путанница ValueError. Линейная регрессия и нахождение среднеквадратичной ошибки на питоне ARP путанница Путанница с кодировками Тайные знаки и путанница ссылок с указателями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию. . .
|