Напишите программу, решающую следующую задачу. В верхнем правом углу стандартного графического окна, линиями рисуется квадратное игровое поле размером 10X10 ячеек. Размер квадратной ячейки задается в программе константой и имее...

Напишите программу, решающую следующую задачу. В верхнем правом углу стандартного графического окна, линиями рисуется квадратное игровое поле размером 10X10 ячеек. Размер квадратной ячейки задается в программе константой и имеет размер 30X30 пикселей (см. рисунок ниже). Компьютер, используя датчик случайных чисел, загадывает два числа в диапазоне от 1 до 10. Первое число — номер горизонтали игрового поля, второе — номер вертикали игрового поля. Таким образом, компьютер загадывает ячейку, которая располагается на пресечении горизонтали и вертикали. Пользователь с 10 попыток должен отыскать загаданную компьютером ячейку. Для этого он вводит с клавиатуры два целых числа номер по горизонтали и номер по вертикали ячейки. Если номера горизонталей и номера вертикалей не совпадают, то в ячейке, указанной пользователем, рисуется перечеркнутый квадрат (см. рисунок ниже). Если номера горизонталей или номера вертикалей совпадают, то в ячейке, указанной пользователем, рисуется синий квадрат (см. рисунок ниже). Если номера горизонталей и номера вертикалей совпадают, то в ячейке, указанной пользователем, рисуется красный квадрат (см. рисунок ниже), выводится сообщение: «Ты выиграл!», и на этом программа завершается. Если же пользователю не удается с 10 попыток определить положение загаданной компьютером ячейки, то выводится сообщение: «Ты проиграл!», в ячейке, загаданной компьютером, рисуется красный квадрат, и на этом программа завершается.
Гость
Ответ(ы) на вопрос:
Гость
uses  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 t<>10 do  begin;   readln(xt);   readln(yt);    if (xt<>x) and (yt<>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.  
Не нашли ответ?
Ответить на вопрос
Похожие вопросы