Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.03.2022
Сообщений: 4

Игра ПакМан: Ошибка памяти

21.03.2022, 21:43. Показов 826. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый вечер, товарищи!
Пишу игру ПакМан с другом. Прикол в чем? Есть свой "редактор карт", типа загружаешь .txt файл и играешь на своей кастомной карте. Загвоздка в том, что есть порталы, они соединяются по принципу одинаковой буквы. (Y с Y, A с A), есть "ворота" - сквозь них могут проходить только призраки, а игрок не может. Есть игрок ( '0' в .txt файле ), управление стрелочками. И призраки - цифры от 1 до 4. (А ну и точки '.' и '*'). Каждый призрак ищет путь с помощью , Волновой Алгоритм. Выдает ошибку памяти на том моменте, когда призрак пытается пересечь портал, причем ошибки памяти нет, когда на карте есть 1 вид призрака (работают 3 и 4), то есть мы не выходим за пределы массивов. Отладчик VS говорит что не может прочитать адрес 0x00000000FFFFFFFF (размер unsinged int) я не понимаю почему так. Далее прилагаю фрагменты кода и вид игры.


C++
1
2
3
4
5
6
7
8
9
10
11
12
int i = 0;
    while (i < n)
    {
        temp = path[i];
        path[i + 1] = reverse(temp.x, temp.y);
 
        i++;
        if (i == (n - 1))
        {
            break;
        }
    }

P.S. Могу скинуть весь код игры, но там ~1200 строк кода, без комментариев. (Classic.txt та самая карта)


Вложения
Тип файла: txt classic.txt (928 байт, 13 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2022, 21:43
Ответы с готовыми решениями:

Пакман на Си. Реализация таймера
Есть проблема с реализацией таймера обратного отсчета. Нужно делать определенное действие на протяжении 20 сек, когда проходит 20 сек нужно...

Пакман
Добрый день. Пишу лабораторную работу, что-то типа Пакмана в консоли. Карта генерируется рандомным разбросом решеток и точек в окне...

игра пакман
как проверить,что пакман и монета или пакман и приведение на одной клетке? пока что проект без всякой графики присоединяю проект для...

6
0 / 0 / 0
Регистрация: 13.10.2019
Сообщений: 15
Записей в блоге: 1
21.03.2022, 22:04
Есть еще одно интересное замечание. Когда персонаж находится вблизи портала, через который проходит призрак, то прога выдает ошибку. Ну а если персонаж находиться далеко от портала, то призрак спокойной проходит и ни какой ошибки, при чем могут проходить оба призрака.
0
фрилансер
 Аватар для Алексей1153
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,993
22.03.2022, 10:45
IaMrEDDit, какой-то косяк в программе, без полного кода вряд ли кто подскажет

В отладчике же остановился - смотри состояние переменных
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,726
Записей в блоге: 15
22.03.2022, 12:12
path[i + 1] при i == (n - 1) будет выход за пределы
0
0 / 0 / 0
Регистрация: 21.03.2022
Сообщений: 4
04.04.2022, 18:25  [ТС]
Как выяснилось позднее, ошибка в методе который возвращает координаты не при всех случаях. Все исправил.
0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,814
04.04.2022, 18:27
Цитата Сообщение от igorrr37 Посмотреть сообщение
path[i + 1] при i == (n - 1) будет выход за пределы
Ты это исправил?
0
0 / 0 / 0
Регистрация: 21.03.2022
Сообщений: 4
04.04.2022, 18:32  [ТС]
Нет. Изначально в функции поиска пути был метод Reverse, который искал клетку с наименьшим значением, и он баговался при проходе через портал, видимо клетка портала была с наименьшим значением.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2022, 18:32
Помогаю со студенческими работами здесь

Пакман
Всем привет. Ребята кто-нибудь знает как можно на Си написать Пакмана, чисто на Си не используя что-либо из С++?! весь интернет...

Разбираю исходник игры Пакман
Можете мне объяснить что к чему в этом классе?Я его в своем проекте использую package es.eduards.pacman; import java.util.HashMap; ...

Пакман (вырезить четверть круга)
Подскажите как нарисовать Пакмана, то есть вырезать из круга 10 - 15 %. Круги вообще рисовал так ...

Пакман, реализация преследования врагом игрока
Хочу реализовать логику поведения врага в его преследовании для этого создаю алгоритм поиска кратчайшего пути. Изначально проверила, что...

Искуственный интелект бота в игре Пакман
Делаю в питоне игру Пакман. Не знаю как прописать Искуственный Интелект(ИИ) призракам(ботам) что бы они могли самостоятельно выходить из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru