Напишите программку, решающую последующую задачку. В верхнем правом углу стандартного
Напишите программку, решающую последующую задачку. В верхнем правом углу стандартного графического окна, линиями рисуется квадратное игровое поле размером 10X10 ячеек. Размер квадратной ячейки задается в программке константой и имеет размер 30X30 пикселей (см. набросок ниже). Компьютер, используя датчик случайных чисел, загадывает два числа в спектре от 1 до 10. 1-ое число номер горизонтали игрового поля, 2-ое номер вертикали игрового поля. Таким образом, компьютер загадывает ячейку, которая размещается на пресечении горизонтали и вертикали. Пользователь с 10 попыток должен найти загаданную компьютером ячейку. Для этого он вводит с клавиатуры два целых числа номер по горизонтали и номер по вертикали ячейки.
Если номера горизонталей и номера вертикалей не совпадают, то в ячейке, обозначенной юзером, рисуется перечеркнутый квадрат (см. набросок ниже).
Если номера горизонталей либо номера вертикалей совпадают, то в ячейке, обозначенной пользователем, рисуется синий квадрат (см. набросок ниже).
Если номера горизонталей и номера вертикалей совпадают, то в ячейке, указанной юзером, рисуется красноватый квадрат (см. набросок ниже), выводится известие: Ты выиграл!, и на этом программа завершается.
Если же юзеру не удается с 10 попыток найти положение загаданной компом ячейки, то выводится известье: Ты проиграл!, в ячейке, загаданной компом, рисуется красноватый квадрат, и на этом программка заканчивается.
GraphABC;
const
a=30;
var
xt,yt,x,y,i,j,t,xl,yl:integer;
procedure cross(x,y,a:integer);
begin;
setpencolor(clred);
line(x,y,x-a,y+a);
line(x-a,y,x,y+a);
setpencolor(clblack);
end;
begin;
randomize;
x:=windowwidth-300;
y:=0;
for i:=1 to 10 do
begin;
for j:=1 to 10 do
begin;
rectangle(x,y,x+a,y+a);
x+=a;
end;
y+=a;
x:=windowwidth-300;
end;
x:=random(1,10);
y:=random(1,10);
t:=0;
while tlt;gt;10 do
begin;
readln(xt);
readln(yt);
if (xtlt;gt;x) and (ytlt;gt;y) then
begin;
xl:=windowwidth+xt*30-300;
yl:=300-yt*30;
cross(xl,yl,a);
inc(t);
end;
if (xt=x) or (yt=y) then
begin;
xl:=windowwidth+xt*30-305;
yl:=300-yt*30+4;
floodfill(xl,yl,clBlue);
inc(t);
end;
if (xt=x) and (yt=y) then
begin;
xl:=windowwidth+xt*30-305;
yl:=300-yt*30+4;
floodfill(xl,yl,clRed);
writeln('Ты выиграл!');
break;
end;
end;
if t=10 then
begin;
writeln('Ты проиграл!');
xl:=windowwidth+x*30-305;
yl:=300-y*30+4;
floodfill(xl,yl,clRed);
end;
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.