Доделать шахматную доску - Turbo Pascal

Формулировка задачи:

Всем привет!Нужна помошь в задание! «шахматная» доска, содержащая 25 параллелограммов и сформированная из 5 диагональных полос 2-х направлений (главная и побочная диагонали)
uses dos;
var
 i,i1:integer;
procedure intGraph;
begin
 asm
 mov AH,0
 mov AL,4
 int 10H
 end;
end;
procedure Diagonal(clr:shortint;x:integer);
var
 i,y:integer;
begin
 for i:=x downto 1 do
     begin
      y:=x-i;
      if y>199 then break;
      if i>319 then continue;
      asm
       mov al,clr
       mov cx,i
       mov dx,y
       mov ah,12
       int 10H
      end;
     end;
end;
procedure HorLine(clr:shortint;y,x1,x2:integer);
var
 i: integer;
begin
 for i:=x1 to x2 do
     begin
      asm
       mov al,clr
       mov cx,i
       mov dx,y
       mov ah,12
       int 10H
      end;
     end;
end;
procedure VertLine(clr:shortint;x,y1,y2:integer);
var
 i: integer;
begin
 for i:=y1 to y2 do
     begin
      asm
       mov al,clr
       mov cx,x
       mov dx,i
       mov ah,12
       int 10H
      end;
     end;
end;
 
begin
  intgraph;
 
{  for i:=1 to 319 do
      begin
       VertLine((i div 64)+5,i,1,199);
      end;}
 
  for i:=1 to 39 do
      begin
       HorLine((i mod 3)+1,i,1,63);
       HorLine((i mod 3)+1,i,128,191);
       HorLine((i mod 3)+1,i,256,319);
      end;
    for i:=40 to 79 do
      begin
       HorLine((i mod 3)+1,i,64,127);
       HorLine((i mod 3)+1,i,192,255);
      end;
  for i:=80 to 119 do
      begin
       HorLine((i mod 3)+1,i,1,63);
       HorLine((i mod 3)+1,i,128,191);
       HorLine((i mod 3)+1,i,256,319);
      end;
    for i:=120 to 159 do
      begin
       HorLine((i mod 3)+1,i,64,127);
       HorLine((i mod 3)+1,i,192,255);
      end;
  for i:=160 to 199 do
      begin
       HorLine((i mod 3)+1,i,1,63);
       HorLine((i mod 3)+1,i,128,191);
       HorLine((i mod 3)+1,i,256,319);
      end;
 
{  for i:=1 to 518 do
   Diagonal((i div 100)+1,i);}
  readln;
end.

Код к задаче: «Доделать шахматную доску - Turbo Pascal»

textual
uses dos;
procedure intGraph;
begin
 asm
 mov AH,0
 mov AL,4
 int 10H
 end;
end;
 
procedure HorLine(clr:shortint;y,x1,x2:integer);
var
 i: integer;
begin
 for i:=x1 to x2 do
     begin
      asm
       mov al,clr
       mov cx,i
       mov dx,y
       mov ah,12
       int 10H
      end;
     end;
end;
 
var
  h, w, i, j, k, x, y : integer;
  delta : real;
 
const
  maxx = 320;
  maxy = 200;
begin
  intgraph;
 
  w := round(maxx / 7.5);
  h := maxy div 5;
  y := maxy - h;
 
  delta := (w div 2) / h;
  for i := 1 to 5 do
  begin
    x := i*(w div 2);
    for j := 1 to 5 do
    begin
      if odd(i+j) then
      begin
        for k := 0 to h - 1 do
        horline(7, y + k, trunc(x - k*delta), trunc(x - k*delta + w));
      end;
      x := x + w;
    end;
    y := y - h;
  end;
  readln;
end.

11   голосов, оценка 3.818 из 5


СОХРАНИТЬ ССЫЛКУ