Другие языки программирования и технологии

GraphABC. Надо нарисовать прямоугольники.

нарисуйте 3 прямоугольника как на картинке. Только прямоугольники должны быть по центру.
program pram;
uses graphabc;
begin
  setwindowsize (640,480);
  Rectangle(300,100,500,200);
  Rectangle(300,300,500,400 );
  Rectangle(300,500,500,600 );
end.
D(
Damir (Domik) Kurmanov
3 300
Лучший ответ
Сергей Доценко как уменьшить расстояние между ними?
program GameTask;
uses GraphABC;
/// Задание
type Task = class
protected
/// Текст вопроса
question: string;
/// Варианты ответов
variants: array of string;
/// Номер правильного ответа
correct: integer;
/// Номер ответа под указателем мыши
current: integer;
/// Инициализирует номер ответа под указателем мыши
procedure SetActive(active: integer);
begin Self.current := active end;
/// Конструктор задания с параметрами
public
constructor Create
(question: string; variants: array of string; correct: integer);
begin Self.question := question; Self.variants := variants;
Self.correct := correct end;
/// Номер вопроса, над которым указатель мыши
property Active: integer read Self.current write SetActive;
protected
/// Возвращает текст вопроса
function GetQuestion: string;
begin Result := Self.question end;
/// Возвращает массив ответов
function GetVariants: array of string;
begin Result := Self.variants end;
/// Возвращает номер правильного ответа
function GetCorrect: integer;
begin Result := Self.correct end;
/// Инициализирует текст вопроса
procedure SetQuestion(question: string);
begin Self.question := question end;
/// Инициализирует варианты ответов
procedure SetVariants(variants: array of string);
begin Self.variants := variants end;
/// Инициализирует номер правильного ответа
procedure SetCorrect(correct: integer);
begin Self.correct := correct end;
/// Добавляет вариант ответа
procedure AddVariant(variant: string);
begin SetLength(Self.variants, Length(Self.variants)+1);
Self.variants[Self.variants.High] := variant end;
/// Проверяет правильность ответа
function IsCorrect(choice: integer): boolean;
begin Result := choice + 1 = Self.correct end;
/// Выводит текст вопроса на экран
procedure ShowQuestion;
begin
Pen.Color := Color.BlueViolet; Brush.Color := Color.White;
Font.Color := Color.DarkBlue; Font.Size := 10;
RoundRect(10, 10, Window.Width-10, 90, 10, 10);
TextOut(20, 20, Self.question);
end;
/// Выводит варианты ответов на экран
procedure ShowVariants;
var y := 100;
begin
Pen.Color := Color.LightBlue; Brush.Color := Color.Empty;
Font.Color := Color.DarkBlue; Font.Size := 8;
for var i := 0 to Self.variants.Length-1 do begin
DrawRoundRect(10, y, Window.Width-10, y+40, 10, 10);
if i = active then begin
Brush.Color := Color.White;
RoundRect(10, y, Window.Width-10, y+40, 10, 10);
Brush.Color := Color.Empty;
end;
TextOut(20, y+15, Self.variants[i]+ Self.Active);
y += 50;
end;
end;
end;

/// Количество вопросов
const N = 3;
/// Все вопросы
var Tasks: array[1..N] of Task;
/// Номер текущего вопроса
var i: integer;
/// Количество правильных ответов
var Score: integer;

procedure MouseMove(x, y, mb: integer);
begin
Tasks[i].Active := (y - 100) div 50;
Window.Clear(Color.GhostWhite);
Tasks[i].ShowQuestion;
Tasks[i].ShowVariants;
Redraw;
end;
procedure MouseDown(x, y, mb: integer);
begin
Window.Clear(Color.GhostWhite);
Tasks[i].ShowQuestion;
Tasks[i].ShowVariants;
if Tasks[i].IsCorrect((y - 100) div 50) then Score += 1;
if (Tasks[i].Active > -1) and
(Tasks[i].Active < Tasks[i].variants.Length) then i += 1;
if i > N then begin
Window.Clear(Color.GhostWhite);
Font.Size := 21;
TextOut(40, 120, 'Правильных ответов: ' + Score);
Redraw;
OnMouseMove := nil;
OnMouseDown := nil;
end;
end;
Владимир Кухор begin
LockDrawing;
Window.Init(100, 100, 400, 300, Color.GhostWhite);
Window.Caption := 'Угадай че за хрень';
i := 1;
// Обработчики мыши
OnMouseMove := MouseMove;
OnMouseDown := MouseDown;
// Далее инициализация вопросов..
Tasks[1] := new Task('Вопрос первый ...',
Arr('Правильный ответ', 'Неправильный ответ'), 1);
Tasks[2] := new Task('Вопрос второй...' +#10+'длинный!',
Arr('Бред какой-то', 'Правильный ответ', 'Неправильный ответ'), 2);
Tasks[3] := new Task('Последний вопрос',
Arr('Бред какой-то', 'Еще бред', 'Был правильным'), 3);
Tasks[3].AddVariant('Забытый правильный ответ!');
Tasks[3].SetCorrect(4);
// Начало
Window.Clear(Color.GhostWhite);
TextOut(100, 140, 'Тут картинка типа..');
Redraw;
end.
нарисуй прямоугольник в центре
и скажи что там ещё 3
в чём проблема?