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

Объясните что за что отвечает в этом коде, а то ничего не понятно :( Uses graphABC,ABCObjects;
var
i,xhead,yhead,z,appleX,appleY:integer;
head:CircleABC;

snake:array[1..4] of CircleABC;
apple:circleABC;
score:TextABC;

procedure keyDown(key:integer);
begin
if(key = vk_Right) then z := 1;
if(key = vk_Left) then z := 2;
if(key = vk_Up) then z := 3;
if(key = vk_Down) then z := 4;
end;

begin

for i:=0 to 6 do
begin
line(0,i*80,windowWidth,i*80);
end;

for i:=0 to 8 do
begin
line(i*80,0,i*80,windowHeight);
end;

xhead := 3*80 - 40;
yhead := 2*80 - 40;

appleX := 6*80 - 40;
appleY := 3*80 - 40;

apple := CircleABC.Create(appleX,appleY,40,clRed);

head := CircleABC.Create(xhead,yhead,40,clBlue);

for i:=1 to 4 do
begin
snake[i] := CircleABC.Create(xhead,yhead+80*i,40,clBlue);
end;

score := TextABC.Create(5,0,80,'0',clGreen);

while(true) do
begin

onKeyDown := keyDown;

if(z <> 0) then
begin
for i:=4 downto 2 do
begin
snake[i].MoveTo(snake[i-1].Position.X,snake[i-1].Position.Y);
end;

snake[1].MoveTo(xhead-40,yhead-40);
end;

if(z = 1) then xhead := xhead + 80
else if (z = 2) then xhead := xhead - 80
else if (z = 3) then yhead := yhead - 80
else if (z = 4) then yhead := yhead + 80;

if(xhead > windowWidth) then xhead := 40;
if(xhead < 0) then xhead := windowWidth - 40;
if(yhead > windowHeight) then yhead := 40;
if(yhead < 0) then yhead := windowHeight - 40;

if((xHead = appleX) and (yHead = appleY)) then
begin

appleX := random(1,8)*80 - 40;
appleY := random(1,6)*80 - 40;
apple.MoveTo(appleX-40,appleY - 40);
score.Text := ((score.Text).ToInteger + 1).ToString();

end;

head.MoveTo(xhead-40,yhead - 40);
sleep(200);
end;

end.

👇
Открыть все ответы
Ответ:
berfasrd
berfasrd
09.10.2022

Задачка простая, недавно здесь подобную решал. Чтобы её решить, нужно знать несколько базовых положений.

 

1. Для отображения цветовой гаммы, как правило, исользуется 3 цвета(красный, зелёный, синий).

2. Если для цвета выделено n бит, он может принимать 2^n оттенков. (это чистая математика(комбинаторика)).

3. Как следствие, макс количество цветов в палитре 2^n*2^n*2^n = 2^(3n)

 

Теперь можно решать задачу.

 

Пусть под цвет выделено n бит.

Так как всего цветов 3, на один пиксел будет 3*n бит, Следовательно, общий объем рисунка будет

1024 * 512 *( 3*n) = 512 K *(3*n)  = (1.5*n)Mбита (По определению 2^10 = 1024 = 1K) .

 

Вот, в принципе, и всё!

Но Дальше БОЛЬШИЕ сложности, так как не понятно, что написано в условии, что такое Мб - это мегаБИТ или МегаБАЙТ, поэтому придётся рассматривать 2 случая

1. МегаБИТ.

(1.5*n) = 1.5

n=1, то есть под цвет выделен 1 бит.

Макс количество цветов в палитре

2^(3n) = 2^3 = 8.

Да! всего 8 оттенков.

 

2. МегаБАЙТ, вспомним, что байт=8бит, получим

(1.5*n) = 1.5 *8, 

n=8, то есть под цвет выделен целый байт(8 бит)

Макс количество цветов в палитре

2^(3n)= 2^24= 16777216.

 

Вот и всё.

Да, в реальности, в настоящее время, как правило, под цвет выделено ОДИН БАЙТ, то есть случай 2 полностью соответствует принятому в настоящее время стандарту де-факто и в пикселе 3 байта.

 

4,6(16 оценок)
Ответ:
Лёлик8881
Лёлик8881
09.10.2022

Задачка простая, недавно здесь подобную решал. Чтобы её решить, нужно знать несколько базовых положений.

 

1. Для отображения цветовой гаммы, как правило, исользуется 3 цвета(красный, зелёный, синий).

2. Если для цвета выделено n бит, он может принимать 2^n оттенков. (это чистая математика(комбинаторика)).

3. Как следствие, макс количество цветов в палитре 2^n*2^n*2^n = 2^(3n)

 

Теперь можно решать задачу.

 

Пусть под цвет выделено n бит.

Так как всего цветов 3, на один пиксел будет 3*n бит, Следовательно, общий объем рисунка будет

1024 * 512 *( 3*n) = 512 K *(3*n)  = (1.5*n)Mбита (По определению 2^10 = 1024 = 1K) .

 

Вот, в принципе, и всё!

Но Дальше БОЛЬШИЕ сложности, так как не понятно, что написано в условии, что такое Мб - это мегаБИТ или МегаБАЙТ, поэтому придётся рассматривать 2 случая

1. МегаБИТ.

(1.5*n) = 1.5

n=1, то есть под цвет выделен 1 бит.

Макс количество цветов в палитре

2^(3n) = 2^3 = 8.

Да! всего 8 оттенков.

 

2. МегаБАЙТ, вспомним, что байт=8бит, получим

(1.5*n) = 1.5 *8, 

n=8, то есть под цвет выделен целый байт(8 бит)

Макс количество цветов в палитре

2^(3n)= 2^24= 16777216.

 

Вот и всё.

Да, в реальности, в настоящее время, как правило, под цвет выделено ОДИН БАЙТ, то есть случай 2 полностью соответствует принятому в настоящее время стандарту де-факто и в пикселе 3 байта.

 

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