IPB
ЛогинПароль:

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Перемещение мячиков одновременно, Помогите написать игру....ПОКА пусто....Тока начинаю делать!!&
сообщение
Сообщение #21


Гость






Цитата
На низ и вверх работает..
А влево или вправо он сжирает шары!!!!!!!!!!!!!
само собой... Тебе нужны 2 версии функций типа check и check_2: одна - для вверх/вниз, другая - для влево/вправо... Первая у тебя уже есть, вторая - вот так:

function check_3(p1, p2: pcircle; x1, x2, Y: integer): boolean;
begin
check_3 :=
((p1^.x <> X1) or (p1^.y <> y))
or
((p2^.x <> X2) or (p2^.y <> y))
end;

function check_4(p1, p2: pcircle; x1, x2, Y: integer): boolean;
begin
check_4 :=
check_3(p1, p2, X1, X2, y)
and
check_3(p1, p2, X2, X1, y);
end;

...
75:if (x<>198) and
((x<>510) or (y<>84)) and

check_4(p1, p2, centr1x, centr2x, centr1y) and
check_4(p1, p2, centr1x, centr2x, centr2y) and
check_4(p1, p2, centr1x, centr2x, centr3y) and
check_4(p1, p3, centr1x, centr2x, centr1y) and
check_4(p1, p3, centr1x, centr2x, centr2y) and
check_4(p3, p2, centr3x, centr1y, centr2y) and
check_4(p1, p3, centr1x, centr2x, centr3y) and
check_4(p3, p2, centr1x, centr2x, centr1y) and
check_4(p3, p2, centr1x, centr2x, centr2y) and
check_4(p3, p2, centr1x, centr2x, centr3y) then MoveTo(x-Step, y); {Left}

77:if (x<>510) and
((x<>354) or (y<>84)) and

check_4(p1, p2, centr1x, centr2x, centr1y) and
check_4(p1, p2, centr3x, centr2x, centr2y) and
check_4(p1, p2, centr3x, centr2x, centr3y) and
check_4(p1, p3, centr1x, centr2x, centr1y) and
check_4(p1, p3, centr3x, centr2x, centr2y) and
check_4(p1, p3, centr3x, centr2y, centr3y) and
check_4(p3, p2, centr1x, centr2x, centr1y) and
check_4(p3, p2, centr3x, centr2x, centr2y) and
check_4(p3, p2, centr3x, centr2x, centr3y) then MoveTo(x+Step, y); {Right}
(по-моему, нигде не ошибся...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Олег

Репутация: -  0  +


VOLVO
Помоги мне,направо напиши..а налево я по примеру смогу!!!!!....
Может я чего-то не понял в функции...
Одно понял......
ОНА РЕКУРСИВНАЯ!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Гость






Я ж написал тебе и направо, и налево... Ты посты-то хоть читай... И где ты там рекурсию нашел? не было ее там нигде...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Мужской
Реальное имя: Олег

Репутация: -  0  +


Блин..
Я перепутал...
)))
а твоё сообщение пришло немного позже...
СПАСИБО!!!!
кстати..
посмотри мою прогу..
вроде доделал.....
Посмотри....
Вот сама прога...
Прикрепленный файл  APARIN_O.PAS ( 13.43 килобайт ) Кол-во скачиваний: 435

вот пасовский файл меню(который потом преращается в юнит)
Прикрепленный файл  MENU_1_1.PAS ( 5.49 килобайт ) Кол-во скачиваний: 519

И текстовый файл..
Прикрепленный файл  best.txt ( 64 байт ) Кол-во скачиваний: 353

..
У меня возникают проблемы с цветом.......
ещё я не могу понять, как мне сделать так(ведь у меня в игре ближе к 1 месту получает тот, кто набрал не большее, а меньшее кол-во ходов) чтобы выводилась нормально таблица...
Цитата

VOLVO.......
огромное спасибо!
Но...тот баг я понял как убрать, но не могу реализовать!!!
Когда после запуска программы нажимаешь вправо потом вверх...
синий шарик находится в правом верхнем углу, красный под ним, зелёный рядом.....
Вот..
Из этого положения нажать вниз..и синий шарик исчезнет...
Я понял почему...
т.к. у меня ошибка выводится после вот этого!
Кодp1^.drag(156,ch,p1);
p2^.drag(156,ch,p2);
p3^.drag(156,ch,p3);
потому что когда я двигаю вниз,
поначалу двигается зелёный шарик, синий оказывается на красном, а потом красный перемещается и смазывает за собой свою позицию.
т.е. синий!!!!
Мне там надо сделать проверку ифами?

я вот что в своей программе придумал...
но полностью не работает...
Код

repeat
   ch:=readkey;
    if ord(ch)=0 then
     begin
     ch:=readkey;
     score:=score+1;
     pomosh;
     case ord(ch) of
     72: if (p1^.y=240) and (p1^.x=510) then
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p1);
       end
       else if (p2^.y=240) and (p2^.x=510) then
       begin
        p2^.drag(156,ch,p1);
        p1^.drag(156,ch,p2);
        p3^.drag(156,ch,p1);
       end
       else if (p3^.y=240) and (p3^.x=510) then
       begin
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
       end
       else
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end;
      75:if ((p1^.x=354) and (p1^.y=240)) or
            ((p1^.x=354) and (p1^.y=396)) then
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end
       else if ((p2^.x=354) and (p2^.y=240)) or
               ((p2^.x=354) and (p2^.y=396))
       then
       begin
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
       end
       else if ((p3^.x=354) and (p3^.y=240)) or
               ((p3^.x=354) and (p3^.y=396)) then
       begin
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
       end
       else
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end;
      77:if p1^.x=354 then
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end
       else if p2^.x=354 then
       begin
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
       end
       else if p3^.x=354 then
       begin
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
       end
       else
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end;
       80:if p1^.y=240 then
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end
       else if p2^.y=240 then
       begin
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
        p1^.drag(156,ch,p1);
       end
      else if p3^.y=240 then
       begin
        p3^.drag(156 ,ch,p3);
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
       end
      else
       begin
        p1^.drag(156,ch,p1);
        p2^.drag(156,ch,p2);
        p3^.drag(156,ch,p3);
       end;
     end;
   end;
  until (((p1^.x=510) and (p1^.y=396)) and
        ((p2^.x=354) and (p2^.y=240)) and
        ((p3^.x=198) and (p3^.y=84))) or
        (ord(ch)=27);


Это вроде как разрешение шариков на движение..
но всё-равно некоторые шарики, в некоторые позиции не двигаются!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.09.2020 20:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name