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

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


Новичок
*

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

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


Всем привет...
В институте курсовой работой будет игра.
Я предложил свой варант игры....и преподы дали мне согласие.

Игра будет реализовывать перемещение мячиков( 3 штуки ) по доске 3х3..( т.е. 9 сегментов ).....

ОПИСАНИЕ.

1.на поле 3х3 расположены 3 шарика разного цвета....
- СИНИЙ
- КРАСНЫЙ
- ЗЕЛЁНЫЙ

2.на поле 3х3 есть 3 сегмента разного цвета...
- СИНИЙ
- КРАСНЫЙ
- ЗЕЛЁНЫЙ

3. КРАСНЫЙ шарик расположен на ЗЁЛЁНОМ сегменте.....
СИНИЙ шарик расположен на СИНЕМ сегменте(т.е. на своём месте он находится)............
ЗЕЛЁНЫЙ шарик расположен на КРАСНОМ сегменте.........

3.Их месторасположение вы увидите на картинках, скачав предварительно АРХИВ с этими картинками.....
Прикрепленный файл  Raspologenie_polya__rasstanovka_i_pokaz_samoy_igru_v_kartinkah.rar ( 8.57 килобайт ) Кол-во скачиваний: 351

( В архиве содержатся 6 картинок, последовательностью от 1 до 6 )

4.Представьте, что это как доска, которую вы держите в руках....и при наклоне ВПЕРЁД( а на экране вверх ) перемещаются все шарики ВПЕРЁД( Если , конечно, перед этим шариком нет препятствия )...

5.На поле расположены несколько стенок, через которые шарики перекатиться не могут

ЗАДАЧА ( В чём же заключается победа игры)
Надо, путём совместного передвигания шариков, поставить каждый шарик на свой сегмент....


Хотелось бы услышать ваши предложения......

А сделать я бы хотел её совместно с вами....
Меню хотелось бы найти на вашем форуме
(ЕДИНСТВЕННЫЙ МИНУС....модуль ГРАФ будем тока проходить в инсте в этот понедельник, поэтому особо незнаю, как там что =) )

Сообщение отредактировано: Олежечег(быв. Олежик) -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

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

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


народ.
Будет ли лучше..
если я сделаю масив 3х3?
т.к. я посмотрел..и подумал, что лучше будет, если просто на экране...
после того как нарисую 9 квадратиков..буду просто перемещать свои шарики...
Допустим...
У меня для каждого шарика есть своё значение...mestox1,mestoу1 ..mestox2,mestoy2...mestoх3,mestoу3...
Значения будут const....
и...я ставлю перед всем этим while , который будет сравнивать эти значения через каждый ход, совершённый пользователем.
ДО ТЕХ ПОР ПОКА mestox1<>х1 and........и так далее......

Можете помочь с проверкой месторасположением шариков!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Олежечег(быв. Олежик) @ 18.04.2007 1:18) *

народ.
Будет ли лучше..
если я сделаю масив 3х3?
т.к. я посмотрел..и подумал, что лучше будет, если просто на экране...

Массив (доску, 3х3) завести надо, имхо.
Ты подошел с другого конца. У тебя есть массив (на самом деле - не совсем массив, и это еще хуже..) шариков, каждый элемент его - две координаты. Такой подход имеет право на жизнь, конечно, но подумай вот, о чем..
Когда ты ты перемещаешь шарик на новую клетку, тебе нужно проверить, не занята ли она. Для этого в твоей реализации нужно пройтись по всему массиву шариков и проверить их позиции. В схеме с массивом доски нужно проверить всего одно поле - клетку доски.
Далее, тебе вообще не потребуется никаких специальных координат - их роль будут с успехом выполнять индексы массива. Массив этот должен содержать всего одно число - номер шарика, находящегося в этой клетке, либо ноль, если она пустая.

Далее, тебе надо задать цвет клеток на доске - это тоже желательно делать в массиве доски, 3х3 (добавляется еще один элемент, то есть желательно делать
array [1..3,1..3] of record 
Shar,Color:integer
end


Еще один совет: не замешивай сразу с графикой.. Сделай основной модуль, который двигает шары в соответствии с правилами игры. В нем используй процедуру ShowDesk, которая сначала может быть просто пустой, или ты в ней можешь просто в тексте распечатать матрицу, при этом цвет клетки и шара указывать номером или делать цвет цифры и фона соответствующими. Потом эту процедуру сделаешь в графике.

Добавлено через 1 мин.
А проверку на выигрыш сделать очень просто: проходишь по всей доске (двойной цикл по клеткам) и проверяешь на равенство Shar=Color


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


а по какому критерию лучше выискивать лидера в таблице рекордов....
?????
Задать время......или сказать, сколько он потратил ходов?
Как это реализовать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(Олежечег(быв. Олежик) @ 18.04.2007 5:35) *

Задать время......или сказать, сколько он потратил ходов?
Как это реализовать?

И то и другое неплохо. Сам выбирай.
Реализовать - время берешь с помощью GetTime. А ходы считать как - сам думай smile.gif

Я вижу еще одну трудность. Не совсем понимаю, как задавать стенки между клетками.. Думаю, надо добавить в запись для клетки еще два поля - скажем, Left и Up. Наличие 1 в них будет означать стенку, а 0 - нет стенки.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Предыдущий пост - мой.
Кстати, на всякий случай: процедура GetTime - в модуле DOS


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Вот....
уря...сделал менюшку...
но вот проблема.....
Мне сказали ей переделать в динамическое меню....
Подскажите как?

Код
Program Menu;
uses crt, graph;

type
TMenu=record
  name:string;
  active:boolean;
end;

const
max=4;

var
driver,mode:integer;
MenuList:array[1..max] of TMenu;
i:integer;
x,y:integer;
key:char;
keyt:byte;
act,nact,pact:byte;
exit:boolean;

Procedure DrawButton(name:string;active:boolean;x,y:integer);
var
h,w:integer;
tc,bc:integer;
begin
SetTextJustify(CenterText, CenterText);
h:=TextWidth(name);
w:=TextHeight(name);
tc:=4;
bc:=15;
if active then
  begin
   SetFillStyle(1,0);
   Bar(x+40,y+40,x+h+20,y+w+20);
   SetFillStyle(1,bc);
   Bar(x,y,x+h+40,y+w+40);
   SetColor(tc);
   Rectangle(x,y,x+h+40,y+w+40);
   OutTextXY(x+(h div 2)+20,y+(w div 2)+20,name);
  end
else
  begin
   SetFillStyle(1,0);
   Bar(x+40,y+40,x+h+20,y+w+20);
   SetFillStyle(1,tc);
   Bar(x,y,x+h+40,y+w+40);
   SetColor(bc);
   Rectangle(x,y,x+h+40,y+w+40);
   OutTextXY(x+(h div 2)+20,y+(w div 2)+20,name);
  end;
end;

BEGIN
clrscr;

driver:=vga;
mode:=2;
InitGraph(driver,mode,'C:\bp\BGI\');
{ key:=readkey;
keyt:=ord(key);}
MenuList[1].name:='Game';
MenuList[1].active:=true;
MenuList[2].name:='Records';
MenuList[2].active:=false;
MenuList[3].name:='Options';
MenuList[3].active:=false;
MenuList[4].name:='Exit';
MenuList[4].active:=false;
act:=1;
exit:=false;
Repeat
  x:=250;
  y:=200;
  SetTextStyle(DefaultFont, HorizDir, 1);
  SetFillStyle(1,7);
  Bar(0,0,640,480);
  for i:=1 to max do
   begin
    DrawButton(MenuList[i].name,MenuList[i].active,x,y);
    y:=y+50;
   end;
  key:=readkey;
  if ord(key)=0 then
   key:=readkey;
  case ord(key) of
   72:
    begin
     nact:=act-1;
     if nact=0 then
      nact:=4;
     MenuList[act].active:=not(MenuList[act].active);
     MenuList[nact].active:=not(MenuList[nact].active);
     if act>1 then
      act:=act-1
     else
      act:=4;
    end;
   80:
    begin
     nact:=act+1;
     if nact=5 then
      nact:=1;
     MenuList[act].active:=not(MenuList[act].active);
     MenuList[nact].active:=not(MenuList[nact].active);
     if act<4 then
      act:=act+1
     else
      act:=1;
    end;
   13:
    begin
     case act of
      1:
       begin
        SetTextStyle(DefaultFont, HorizDir,2);
        DrawButton('‚лЎа ­  Є­®ЇЄ  Game', true, 150, 300);{Введена клавиша ....}
        repeat
        until KeyPressed;
       end;
      2:
       begin
        SetTextStyle(DefaultFont, HorizDir,2);
        DrawButton('‚лЎа ­  Є­®ЇЄ  Records', true, 150, 300);{Введена клавиша ....}
        repeat
        until KeyPressed;
       end;
      3:
       begin
        SetTextStyle(DefaultFont, HorizDir,2);
        DrawButton('‚лЎа ­  Є­®ЇЄ  Options', true, 150, 300);{Введена клавиша ....}
        repeat
        until KeyPressed;
       end;
      4:
       begin
        exit:=true;
       end;
     end;
    end;
  end;
until exit;

CloseGraph;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Тут попробовал новую тему.....
Менюшку сделал...
Слава богу!!!
Динамическое!!!
Так горд собой)))
А насчёт своей игры....понапридумывал многое..
)))))))
Прикрепленное изображение
Я хочу сделать вот так!!!
Вы увидели массив..
заполненный 0-ми и 1-ми.
Якобы......
Шарики могут двигаться тока по нечётным координатам....
[1,1][1,3][1,5][3,1][3,3][3,5][5,1][5,3][5,5]
И..перед каждым шагом делаю проверку..
Таким образом я хочу показать стенки!!!!!
Т.Е.
Где стоят цифры 1, это стенки!
Если на пути встречаются 2 последовательных нуля(0), то шарик двигается!
В противном случае не происходит движение шарика.
Вроде хорошо!!!!
Как идейка?
Или можно описать стенки по-лучше?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

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

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


LAPP...
Посмотри пожалуйста....
Да и все..
посмотрите это пожалуйста....
))
Я сделал реализацию своей игры...
Впринципе работает..
Но вот в чём глюк..
в некоторых моментах Шарик двигаться не хочет.....
Или наоборот..
исчезает..
в основном исчезает на синей позиции.......
Т.е. на синем квадратике....
Посмотрите пожалуйста........
Заранее скажу..
В процедуре драг......
На каждую клавишу ставлю проверку...
Конечно длинная...
но как смог..
Вот..
)))
smile.gif



Код
Program shar;
uses crt,graph;




  type
  PCircle = ^TCircle;
     Tcircle = object
         x,y,Radius,rradius : integer;
         color:byte;
         visible:boolean;
         Constructor Init(ix,iy:integer;
                          iRadius:integer;
                          icolor: byte);
         procedure Show;virtual;
         procedure hide; virtual;
         procedure drag(step:integer;ch:char);
         procedure MoveTo(xnew,ynew:integer);
         function isvisible:boolean;
    end;
    var
   driver,i,mode,y,x:integer;
    p1,p2,p3:pcircle;
    Ch,Q:char;

procedure igrpole;
  begin
  setbkcolor(black);
  setcolor(darkgray);
  setfillstyle(solidfill,4);
  bar(120,6,276,162);
    setfillstyle(solidfill,15);
  bar(276,6,432,162);
    setfillstyle(solidfill,15);
  bar(432,6,588,162);
  setfillstyle(solidfill,1);
  bar(276,162,432,318);
    setfillstyle(solidfill,15);
  bar(120,162,276,318);
    setfillstyle(solidfill,15);
  bar(432,162,588,318);
  setfillstyle(solidfill,2);
    bar(432,318,588,474);
    setfillstyle(solidfill,15);
  bar(120,318,276,474);
    setfillstyle(solidfill,15);
  bar(276,318,432,474);
for i:=157 to 167 do
   line(120,i,276,i);
  for i:=427 to 437 do
   line(i,6,i,162);
  for i:=313 to 323 do
   line(120,i,432,i);
   line(120,6,588,6);
   line(120,6,120,474);
   line(120,474,588,474);
   line(588,6,588,474);
   line(276,6,276,474);
   line(432,6,432,474);
   line(120,162,588,162);
   line(120,318,588,318);
end;

   constructor Tcircle.init;
  begin
   x:=ix;
   y:=iy;
    radius:=iradius;
    color:=icolor;
    visible:=false;
  end;



function Tcircle.IsVisible;
  begin
    IsVisible:=visible;
  end;

    procedure Tcircle.show;
  var
  tempcolor:byte;

  begin
    tempcolor:=getcolor;
    setcolor(color);
    setfillstyle(solidfill,color);
    fillellipse(x,y,radius,radius);
    visible:=true;
    setcolor(tempcolor);
  end;


procedure Tcircle.Hide;
  var
    tempColor:byte;
  begin
    tempColor:=color;
    color:=getpixel(x+radius+5,y+radius+5);
    setfillstyle(solidfill,color);
    show;
    visible:=false;
    color:=TempColor;
  end;


procedure Tcircle.Drag(Step:integer;ch:char);
const
   centr1x=198;
   centr2x=354;
   centr3x=510;
   centr1y=84;
   centr2y=240;
   centr3y=396;
begin
   Case Ord(Ch) of
     72:if (x<>198) and
        (y<>84) and
        ((x<>354) or (y<>396)) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p3^.x<>centr2x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr2x) or (p3^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p3^.x<>centr3x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr3x) or (p3^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
        (((p3^.x<>centr2x) or (p3^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p3^.x<>centr3x) or (p3^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr3x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr1y))) then    {Љ®­Ґж Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
               MoveTo(x, y-Step);   {Up}
     75:if (x<>198) and
        ((x<>510) or (y<>84)) and
        (((p1^.x<>centr1x) or (p1^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p1^.x<>centr1x) or (p1^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr2y))) and     {konec proverki 2-h sharikov na pozicii 550}
        (((p1^.x<>centr1x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr1x) or (p1^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p3^.x<>centr2x) or (p3^.y<>centr1y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or
         ((p3^.x<>centr1x) or (p3^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p1^.x<>centr1x) or (p1^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p3^.x<>centr2x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr1x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr1x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p3^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p3^.x<>centr1x) or (p2^.y<>centr3y))) and
        (((p3^.x<>centr1x) or (p3^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr1y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p3^.x<>centr1x) or (p3^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr1x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p3^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr3y))) then     {konec proverki 2-h sharikov na pozicii 354}
               MoveTo(x-Step, y); {Left}
     77:if (x<>510) and
        ((x<>354) or (y<>84)) and
        (((p1^.x<>centr1x) or (p1^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and     {konec proverki 2-h sharikov na pozicii 550}
        (((p1^.x<>centr3x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr1x) or (p1^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p3^.x<>centr2x) or (p3^.y<>centr1y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or
         ((p3^.x<>centr1x) or (p3^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p3^.x<>centr2x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr3x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr3x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p3^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p3^.x<>centr3x) or (p2^.y<>centr3y))) and
        (((p3^.x<>centr1x) or (p3^.y<>centr1y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr1y)) or
         ((p2^.x<>centr1x) or (p2^.y<>centr1y))) and     {konec proverki 2-h sharikov na pozicii 354}
        (((p3^.x<>centr3x) or (p3^.y<>centr2y)) or       {na4alo proverki 2-h sharikov na pozicii 550}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr3x) or (p1^.y<>centr3y)) or       {na4alo proverki 2-h sharikov na pozicii 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr3y))) and
        (((p3^.x<>centr2x) or (p1^.y<>centr3y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr3y))) then
               MoveTo(x+Step, y); {Right}
     80:if (x<>198) and
        (y<>396) and
        ((x<>354) or (y<>240)) and
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr3y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr3y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
        (((p1^.x<>centr2x) or (p1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p3^.x<>centr2x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr2x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr2x) or (p3^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p1^.x<>centr3x) or (p1^.y<>centr3y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p3^.x<>centr3x) or (p3^.y<>centr2y))) and
        (((p1^.x<>centr3x) or (p1^.y<>centr2y)) or
         ((p3^.x<>centr3x) or (p3^.y<>centr3y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
        (((p3^.x<>centr2x) or (p3^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((p2^.x<>centr2x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr2x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr2x) or (p2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((p3^.x<>centr3x) or (p3^.y<>centr3y)) or       {Ќ з «® Їа®ўҐаЄЁ §Ґ«Ґ­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((p2^.x<>centr3x) or (p2^.y<>centr2y))) and
        (((p3^.x<>centr3x) or (p3^.y<>centr2y)) or
         ((p2^.x<>centr3x) or (p2^.y<>centr3y))) then
                        MoveTo(x, y+Step); {Down}
   end; { case}
end;

  procedure Tcircle.MoveTo(xnew,ynew:integer);
  var
     Flag:boolean;
  begin
     Flag:=IsVisible;
     if Flag then
        Hide;
     x:=xnew;
     y:=ynew;
     if Flag then
        Show;
  end;
begin
  driver:=vga;
  mode:=2;
  initgraph(driver,mode,'c:\bp\bgi');
  igrpole;
  new(p1,init(198,84,25,10));
  new(p2,init(354,240,25,9));
  new(p3,init(510,396,25,12));
  p1^.show;
  p2^.show;
  p3^.show;
  repeat
   ch:=readkey;
    if ord(ch)=0 then
     ch:=readkey;
   p1^.drag(156,ch);
   p2^.drag(156,ch);
   p3^.drag(156,ch);

  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)=13);;
  closegraph;

end.



Вот сама прога
Попробуйте её....ПЛИЗ!!!
А то не хочется проблем потом от преподователя!!!
)))

Прикрепленный файл  APARIN_O.PAS ( 12.66 килобайт ) Кол-во скачиваний: 513
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


Я отладил её..а он пишет что очень большая строка..т.е. цикл ИФ..
Как мне сделать его меньше?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
он пишет что очень большая строка..т.е. цикл ИФ..
Где именно он тебе такое пишет? Ты бы программу-то присоединил, а то телепатически не получается разобраться...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

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

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


Цитата(Олежечег(быв. Олежик) @ 1.06.2007 3:51) *

Я отладил её..а он пишет что очень большая строка..т.е. цикл ИФ..
Как мне сделать его меньше?

Ты про слишком длинную строку?
Если да. То я избавлялся от этой неприятности, так: берешь разбиваешь условие на два, что бы влазило. Заводиш булевую переменную и смотриш если первое условие выполняется, то True и в следующей проверке у тебя уже есть истинная первая часть, сравниваешь ее с оставшейся и усе.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

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

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


Volvo .....//
она у тебя не запускается......?
Я просто не понял!!!!
Там адрес тогда измени на свой...а то уменя там..с:/bp/bgi
)))))
Я по поводу разбиения.......
Я придумал вот что!
Спасибо SkIv за предложенную версию.....
Можешь приблизительно написать....
Я понял, но не полностью...
А что если....
В процедуре драг сделать ещё одну переменную, которую назвать NOMER и присвоить ей значение Pcircle....
..
ВОТ..
Это избавит от лишних действий...

Код

procedure Tcircle.Drag(Step:integer;ch:char;nomer1:pcircle);
var
  nomer2,nomer3:pcircle;
const
   centr1x=198;
   centr2x=354;
   centr3x=510;
   centr1y=84;
   centr2y=240;
   centr3y=396;
begin
  if nomer1=p1 then
   begin
    nomer2:=p2;
    nomer3:=p3;
   end
  else if nomer1=p2 then
   begin
     nomer2:=p1;
     nomer3:=p3;
   end
  else if nomer1=p3 then
   begin
    nomer2:=p1;
    nomer3:=p2;
   end;
   Case Ord(Ch) of
     72:if (x<>198) and
        (y<>84) and
        ((x<>354) or (y<>396)) and
        (((nomer1^.x<>centr2x) or (nomer1 ^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((nomer2^.x<>centr2x) or (nomer2^.y<>centr2y))) and
        (((nomer1^.x<>centr2x) or (nomer1^.y<>centr2y)) or
         ((nomer2^.x<>centr2x) or (nomer2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((nomer1^.x<>centr3x) or (nomer1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((nomer2^.x<>centr3x) or (nomer2^.y<>centr2y))) and
        (((nomer1^.x<>centr3x) or (nomer1^.y<>centr2y)) or
         ((nomer2^.x<>centr3x) or (nomer2^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
        (((nomer1^.x<>centr2x) or (nomer1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
         ((nomer3^.x<>centr2x) or (nomer3^.y<>centr2y))) and
        (((nomer1^.x<>centr2x) or (nomer1^.y<>centr2y)) or
         ((nomer3^.x<>centr2x) or (nomer3^.y<>centr1y))) and     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 354}
        (((nomer1^.x<>centr3x) or (nomer1^.y<>centr1y)) or       {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
         ((nomer3^.x<>centr3x) or (nomer3^.y<>centr2y))) and
        (((nomer1^.x<>centr3x) or (nomer1^.y<>centr2y)) or
         ((nomer3^.x<>centr3x) or (nomer3^.y<>centr1y))) then     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
               MoveTo(x, y-Step);   {Up}

Я ВПРИНЦИПЕ всё описал.....
Случай..когда находится стенка я описал...
Код
Case Ord(Ch) of
     72:if (x<>198) and
        (y<>84) and
        ((x<>354) or (y<>396)) and
        ...........................

а вот всё ОГРОМНОЕ что идёт далее..это проверка на встречу двух шариков, чтоб один не налез на другого...
У вас есть другие варианты.....???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Покажи эту длинную строку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

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

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


ВОТ ПРОГА!!
Вроде работает.....
Но там есть пару моментов.., когда шарик не показывается...
это обычно происходит на синей позиции!!!
В чём беда?
вроде процедура SHOW хорошо написана!!!
Код

  procedure Tcircle.show;
  var
  tempcolor:byte;

  begin
    tempcolor:=getcolor;
    setcolor(color);
    setfillstyle(solidfill,color);
    fillellipse(x,y,radius,radius);
    visible:=true;
    setcolor(tempcolor);
  end;



и процедура move...
вроде хорошо..
Но почему-то в позиции центра синего квадратика (354,240) смазывается (не показывается) синий или зелёный квадратик..
...
Может с процедурой HIDE что-то не то?
Код

procedure Tcircle.Hide;
  var
    tempColor:byte;
  begin
    tempColor:=color;
    color:=getpixel(x+radius+5,y+radius+5);
    setfillstyle(solidfill,color);
    show;
    visible:=false;
    color:=TempColor;
  end;


Добавлено через 5 мин.
Я просто пытался отлаьить на клавишу Ф7 ....а когда доходил до этой позиции....
Код

72:if (x<>198) and
.................

он пишет фразу, что линия большая...
Я щас думаю почему круги смываются в синем квадратикке....????
Подскажите!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

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


Цитата
он пишет фразу, что линия большая...
Ну еще бы... Ведь компилятор все это добро:
72:if (x<>198) and
(y<>84) and
((x<>354) or (y<>396)) and
(((nomer1^.x<>centr2x) or (nomer1 ^.y<>centr1y)) or {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ ­ Ї®§ЁжЁЁ 354}
((nomer2^.x<>centr2x) or (nomer2^.y<>centr2y))) and
(((nomer1^.x<>centr2x) or (nomer1^.y<>centr2y)) or
((nomer2^.x<>centr2x) or (nomer2^.y<>centr1y))) and {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ ­ Ї®§ЁжЁЁ 354}
(((nomer1^.x<>centr3x) or (nomer1^.y<>centr1y)) or {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ ­ Ї®§ЁжЁЁ 510}
((nomer2^.x<>centr3x) or (nomer2^.y<>centr2y))) and
(((nomer1^.x<>centr3x) or (nomer1^.y<>centr2y)) or
((nomer2^.x<>centr3x) or (nomer2^.y<>centr1y))) and {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё бЁ­ҐЈ® и аЁЄ ­ Ї®§ЁжЁЁ 510}
(((nomer1^.x<>centr2x) or (nomer1^.y<>centr1y)) or {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ ­ Ї®§ЁжЁЁ 354}
((nomer3^.x<>centr2x) or (nomer3^.y<>centr2y))) and
(((nomer1^.x<>centr2x) or (nomer1^.y<>centr2y)) or
((nomer3^.x<>centr2x) or (nomer3^.y<>centr1y))) and {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ ­ Ї®§ЁжЁЁ 354}
(((nomer1^.x<>centr3x) or (nomer1^.y<>centr1y)) or {Ќ з «® Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ ­ Ї®§ЁжЁЁ 510}
((nomer3^.x<>centr3x) or (nomer3^.y<>centr2y))) and
(((nomer1^.x<>centr3x) or (nomer1^.y<>centr2y)) or
((nomer3^.x<>centr3x) or (nomer3^.y<>centr1y))) then {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ ­ Ї®§ЁжЁЁ 510}
MoveTo(x, y-Step);
считает одной строкой. Действительно не маленькая. Я в логику программы не вникал, но неужели нельзя написать проще?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата
неужели нельзя написать проще?
Да можно, конечно... Вот один из способов:

{ Добавляем 2 маленькие функции: }
function check(p1, p2: pcircle; X, y1, y2: integer): boolean;
begin
check :=
((p1^.x <> X) or (p1^.y <> y1))
or
((p2^.x <> X) or (p2^.y <> y2))
end;

function check_2(p1, p2: pcircle; X, y1, y2: integer): boolean;
begin
check_2 :=
check(p1, p2, X, y1, y2)
and
check(p1, p2, X, y2, y1);
end;

{ ... и теперь эти ужасные условия сокращаются примерно до такого состояния: }
procedure Tcircle.Drag(Step:integer;ch:char);
const
centr1x=198;
centr2x=354;
centr3x=510;
centr1y=84;
centr2y=240;
centr3y=396;
begin
Case Ord(Ch) of
72:if (x<>198) and
(y<>84) and
((x<>354) or (y<>396)) and

check_2(p1, p2, centr2x, centr1y, centr2y) and
check_2(p1, p2, centr3x, centr1y, centr2y) and
check_2(p1, p3, centr2x, centr1y, centr2y) and
check_2(p1, p3, centr3x, centr1y, centr2y) and
check_2(p3, p2, centr2x, centr1y, centr2y) and
check_2(p3, p2, centr3x, centr1y, centr2y) then MoveTo(x, y-Step); {Up}

75:
{ ... Ну, и так далее ... }
...
end;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

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

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


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

потому что когда я двигаю вниз,
поначалу двигается зелёный шарик, синий оказывается на красном, а потом красный перемещается и смазывает за собой свою позицию.
т.е. синий!!!!
Мне там надо сделать проверку ифами?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

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

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


VOLVO//
Я проверил....
Но как сделать для "Налево"?
Чек подходит для вниз и вверх..
ВОт смотри..
Я должен при движении налево у меня один у и два х
Т.е.
позиция игрик....84
а p1 и р2 могут распологаться на иксах 198 и 354..
А в функции чек я могу использовать только один х!!!!
Как мне переделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Новичок
*

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

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


VOLVO...
Смотри как я пишу...
Код

72:if (x<>198) and
        (y<>84) and
        ((x<>354) or (y<>396)) and
        check_2(p1, p2, centr2x, centr1y, centr2y) and
        check_2(p1, p2, centr3x, centr1y, centr2y) and
        check_2(p1, p3, centr2x, centr1y, centr2y) and
        check_2(p1, p3, centr3x, centr1y, centr2y) and
        check_2(p3, p2, centr2x, centr1y, centr2y) and
        check_2(p3, p2, centr3x, centr1y, centr2y) then
               MoveTo(x, y-Step);   {Up}
     75:if (x<>198) and
        ((x<>510) or (y<>84)) and
        check_2(p1, p2, centr1y, centr1x, centr2x) and
        check_2(p1, p2, centr2y, centr1x, centr2x) and
        check_2(p1, p2, centr3y, centr1x, centr2x) and
        check_2(p1, p3, centr1y, centr1x, centr2x) and
        check_2(p1, p3, centr2y, centr1x, centr2x) and
        check_2(p1, p3, centr3y, centr1x, centr2x) and
        check_2(p3, p2, centr1y, centr1x, centr2x) and
        check_2(p3, p2, centr2y, centr1x, centr2x) and
        check_2(p3, p2, centr3y, centr1x, centr2x) then
                    MoveTo(x-Step, y); {Left}
     77:if (x<>510) and
        ((x<>354) or (y<>84)) and
        check_2(p1, p2, centr1y, centr1x, centr2x) and
        check_2(p1, p2, centr2y, centr2x, centr3x) and
        check_2(p1, p2, centr3y, centr2x, centr3x) and
        check_2(p1, p3, centr1y, centr1x, centr2x) and
        check_2(p1, p3, centr2y, centr2x, centr3x) and
        check_2(p1, p3, centr3y, centr2x, centr3x) and
        check_2(p3, p2, centr1y, centr1x, centr2x) and
        check_2(p3, p2, centr2y, centr2x, centr3x) and
        check_2(p3, p2, centr3y, centr2x, centr3x) then
               MoveTo(x+Step, y); {Right}
     80:if (x<>198) and
        (y<>396) and
        ((x<>354) or (y<>240)) and
        check_2(p1, p2, centr2x, centr1y, centr2y) and
        check_2(p1, p2, centr3x, centr2y, centr3y) and
        check_2(p1, p3, centr2x, centr1y, centr2y) and
        check_2(p1, p3, centr3x, centr2y, centr3y) and
        check_2(p3, p2, centr2x, centr1y, centr2y) and
        check_2(p3, p2, centr3x, centr2y, centr3y) then     {Љ®­Ґж Їа®ўҐаЄЁ Єа б­®Ј® Ё §Ґ«Ґ­®Ј® и аЁЄ  ­  Ї®§ЁжЁЁ 510}
                        MoveTo(x, y+Step); {Down}
   end; { case}

На низ и вверх работает..
А влево или вправо он сжирает шары!!!!!!!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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