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

Напишите программку, решающую последующую задачку. В верхнем правом углу стандартного графического окна, линиями рисуется квадратное игровое поле размером 10X10 ячеек. Размер квадратной ячейки задается в программке константой и имеет размер 30X30 пикселей (см. набросок ниже). Компьютер, используя датчик случайных чисел, загадывает два числа в спектре от 1 до 10. 1-ое число номер горизонтали игрового поля, 2-ое номер вертикали игрового поля. Таким образом, компьютер загадывает ячейку, которая размещается на пресечении горизонтали и вертикали. Пользователь с 10 попыток должен найти загаданную компьютером ячейку. Для этого он вводит с клавиатуры два целых числа номер по горизонтали и номер по вертикали ячейки.



Если номера горизонталей и номера вертикалей не совпадают, то в ячейке, обозначенной юзером, рисуется перечеркнутый квадрат (см. набросок ниже).



Если номера горизонталей либо номера вертикалей совпадают, то в ячейке, обозначенной пользователем, рисуется синий квадрат (см. набросок ниже).



Если номера горизонталей и номера вертикалей совпадают, то в ячейке, указанной юзером, рисуется красноватый квадрат (см. набросок ниже), выводится известие: Ты выиграл!, и на этом программа завершается.



Если же юзеру не удается с 10 попыток найти положение загаданной компом ячейки, то выводится известье: Ты проиграл!, в ячейке, загаданной компом, рисуется красноватый квадрат, и на этом программка заканчивается.

Задать свой вопрос
Ханенева Ирка
Выполнить в PacalABC
Данил
Годнота вульгарна, хоть и за 5 баллов. Работаю.
1 ответ
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 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.  
Egor Panurovskij
В правом углу? Автор задачи - тот ещё мазохист.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт