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

> Перемещение мячиков одновременно, Помогите написать игру....ПОКА пусто....Тока начинаю делать!!&
сообщение
Сообщение #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 килобайт ) Кол-во скачиваний: 520

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

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

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

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


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

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

Сообщение отредактировано: Олежечег(быв. Олежик) -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V < 1 2  
 Ответить  Открыть новую тему 
Ответов(20 - 23)
сообщение
Сообщение #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 килобайт ) Кол-во скачиваний: 624

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

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

..
У меня возникают проблемы с цветом.......
ещё я не могу понять, как мне сделать так(ведь у меня в игре ближе к 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
 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





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