Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Новички в программировании > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 03.04.2009, 19:33   #1
Shevali
Пользователь
 
Регистрация: 09.03.2009
Сообщений: 49
Репутация: 10
По умолчанию Шахматная доска

Здравствуйте.
Нужно нарисовать в Паскале шахматную доску. Я начал так:

uses graph;
var device, mode, x, x1: integer;
Begin
device:=0;
initgraph (device, mode, ' ');
for x:=10 to 600 do
for x1:=110 to 470 do
begin
repeat
setcolor(red);
setfillstyle (1, 15);
floodfill (5, 5, 15);
rectangle (x, 10, x1, 110);
x:=x+100; x1:=x1+100;
until x>600;
readln;
closegraph;
end;
end.

Но это рисует только один ряд квадратов, а как бы сделать так, чтобы рисовалось несколько рядов квадратов?
Shevali вне форума   Ответить с цитированием
Старый 03.04.2009, 19:48   #2
Sazary
В тени
Профессионал
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,784
Репутация: 999
По умолчанию

Вот вам доска. Ну а заполните уже сами.
Код:

uses graph;
const width = 30;
var
d,m : integer;
i,j : integer;

begin
initgraph(d,m,'');
for i:=1 to 8 do
 for j:=1 to 8 do
  begin
  setcolor(15);
  rectangle((i-1)*width,(j-1)*width,i*width,j*width);
  end;

readln;
closegraph;
end.

Sazary вне форума   Ответить с цитированием
Старый 03.04.2009, 20:08   #3
Shevali
Пользователь
 
Регистрация: 09.03.2009
Сообщений: 49
Репутация: 10
По умолчанию шахматная доска

В таком виде работает. Правда такая постановка мне пока не совсем понятна (в учебнике похожего не было). Вот например, как понять:
rectangle((i-1)*width,(j-1)*width,i*width,j*width);
И всё равно спасибо.
Shevali вне форума   Ответить с цитированием
Старый 03.04.2009, 20:14   #4
Sazary
В тени
Профессионал
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,784
Репутация: 999
По умолчанию

Цитата:
Вот например, как понять:
rectangle((i-1)*width,(j-1)*width,i*width,j*width);
i,j - координаты клетки, которую мы рисуем. width - ширина клетки (одна и та же по горизонтали и вертикали).
Вот и рисуем. Левый верхний угол - (i-1)*width,(j-1)*width.
Ну а у правого нижнего угла, соответственно, координаты на width больше.
Sazary вне форума   Ответить с цитированием
Старый 03.04.2009, 20:22   #5
Shevali
Пользователь
 
Регистрация: 09.03.2009
Сообщений: 49
Репутация: 10
По умолчанию шахматная доска

Спасибо Sazary
Shevali вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
доска объявлений mar4elo Работа с сетью в Delphi 2 17.12.2008 12:05
шахматная доска Irisha_17_85 Паскаль 4 04.11.2008 11:50
Доска объявлений solomusic PHP 1 05.08.2008 18:57
С++:Квадратная матрица и шахматная проблема.. Andres Помощь студентам 7 02.01.2008 22:06


06:36.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru