М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
llallallup
llallallup
21.09.2022 16:08 •  Информатика

Информатика
Вообще не разбираюсь в ней


Информатика Вообще не разбираюсь в ней

👇
Открыть все ответы
Ответ:
artemchik25
artemchik25
21.09.2022

Логика игры

Есть игро­вое поле — про­стой пря­мо­уголь­ник с твёр­ды­ми гра­ни­ца­ми. Когда шарик каса­ет­ся стен­ки или потол­ка, он отска­ки­ва­ет в дру­гую сто­ро­ну. Если он упа­дёт на пол — вы про­иг­ра­ли. Что­бы это­го не слу­чи­лось, вни­зу вдоль пола лета­ет плат­фор­ма, а вы ей управ­ля­е­те с щью стре­лок. Ваша зада­ча — под­став­лять плат­фор­му под шарик как мож­но доль­ше. За каж­дое удач­ное спа­се­ние шари­ка вы полу­ча­е­те одно очко.

Алгоритм

Что­бы реа­ли­зо­вать такую логи­ку игры, нуж­но преду­смот­реть такие сце­на­рии пове­де­ния:

игра начи­на­ет­ся;

шарик начи­на­ет дви­гать­ся;

если нажа­ты стрел­ки вле­во или впра­во — дви­га­ем плат­фор­му;

если шарик кос­нул­ся сте­нок, потол­ка или плат­фор­мы — дела­ем отскок;

если шарик кос­нул­ся плат­фор­мы — уве­ли­чи­ва­ем счёт на еди­ни­цу;

если шарик упал на пол — выво­дим сооб­ще­ние и закан­чи­ва­ем игру.

Хит­рость в том, что всё это про­ис­хо­дит парал­лель­но и неза­ви­си­мо друг от дру­га. То есть пока шарик лета­ет, мы вполне можем дви­гать плат­фор­му, а можем и оста­вить её на месте. И когда шарик отска­ки­ва­ет от стен, это тоже не меша­ет дру­гим объ­ек­там дви­гать­ся и вза­и­мо­дей­ство­вать меж­ду собой.

4,5(89 оценок)
Ответ:
aselm94
aselm94
21.09.2022

Для стека:

const

 MAX_SIZE = 100;

var

 size, n: integer;

 stack: array[1..MAX_SIZE] of integer;

procedure push(a: integer);

begin

 inc(size);

 stack[size] := a;

end;

procedure view;

var

 i: integer;

begin

 for i := 1 to size do

   write(stack[i], ' ');

 writeln;

end;

Для очереди:

const

 MAX_SIZE = 100;

var

 head, tail: integer;

 queue: array[1..MAX_SIZE] of integer;

procedure push(a: integer);

begin

 queue[tail] := a;

 inc(tail);

end;

procedure view;

var

 i: integer;

begin

 for i := head to tail - 1 do

   write(queue[i], ' ');

 writeln;

end;

Объяснение:

Можно лучший , и учи C++

4,7(50 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ