• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите с игрой Pacman на Turbo C++... я в отчаянии=(

  • Автор темы Guest
  • Дата начала
G

Guest

сейчас пишу игру Pacman.... дали такое задание в колледже
написал безумный код на монетки, которые он поедает, вышло на 1500 строк... использовал оператор If и For... и монетки в 3-х верхних рядах не жрет...
кто нибудь может помочь укоротить все это???
знаю, что нужно поле, на котором это все находится, запихнуть в массив, в адресах которого будут эти монетки и через...
вот примерно как выглядит массив
TShape*mas[500][600];
for(int i=0;i<500*600;i++) mas[0]=new TShape(Owner);

показывает ошибку на функцию класса (Stack OverFlow)...
я в отчаянии, ко вторнику нужно сделать, вожусь около недели...
помогите мне с этим пожалуйста!!

P.S. делаю в Turbo C++, в визуальном редакторе, монетки имеют тип TShape....

Вот как выглядит моя игра сейчас:


помогите, я в отчаянии((
 
X

Xakep

Делай для объектов метки, например в классе TShape создай новую переменную id ну и проверяй на столкновения подобным образом:
Код:
for (i = 0; i < 500; i++) {
if (Shape[i]->id == "money") {
проверка на столкновения
}
}
 
E

Emme

я сделал помню все монетки в стиле a(1) a(2) a(3) и потом через цикл через for сделал оптимизацию,чтобы 400 строк не писать.
У каждой монетки есть координата х и у (a_x(1) a_y(1))
Тогда все просто делается.

Например:
Код:
for s=1 to 100

if a_x(s)> my_x-10 AND a_x(s)<my_x+10 AND a_y(s)> my_x-10 Or a_y(s)<my_y+10THEN a(s)=0:a_x(s)=0:a_y(s)=0:

next s
 
Z

Zato

я сделал помню все монетки в стиле a(1) a(2) a(3) и потом через цикл через for сделал оптимизацию,чтобы 400 строк не писать.
У каждой монетки есть координата х и у (a_x(1) a_y(1))
Тогда все просто делается.

Например:

for s=1 to 100

if a_x(s)> my_x-10 AND a_x(s)<my_x+10 AND a_y(s)> my_x-10 Or a_y(s)<my_y+10THEN a(s)=0:a_x(s)=0:a_y(s)=0:

next s

А многомерный массив не упростил бы работу?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!