Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2009, 18:59   #1
alatir
Пользователь
 
Регистрация: 23.08.2009
Сообщений: 10
По умолчанию помогите доделать алгоритмм!!

Уважаемые программисты помогите пожалуста в создании алгоритма к задаче:
составить алгоритм и программу,которые по известным координатам(номер строки и номер столбца) двух стоящих на шахматной доске фигур, определяют, стоят ли эти фигуры на клетках одного цвета или нет.На шахматной доске 8*8 клеток,а левая верхняя клетка доски белая.Предусмотреть проверку правильности ввода исходных данных

у меня получилось только выводить шахматную доску и выводить на ней фигуры а сам алгоритм оределения цвета клетки на которой стоит фигура у меня не получается помогите пожалуста с алгоритмом!!!
вот что я написал:
uses
crt;

var
x:array [1..8,1..8] of integer;
i,j:integer;
pi,pj,fi,fj : integer;
ok,pok:boolean;

begin
clrscr;
randomize;

pok:=false;
ok:=false;
for i:=1 to 8 do
for j:=1 to 8 do
x[i,j]:=0;

write('Vvedite koordinati 1 figyri cherez probel : ');
readln(pi,pj);
write('Vvedite koordinati 2 figyri cherez probel : ');
readln(fi,fj);
pi:=9-pi;
fi:=9-fi;

x[pi,pj]:=1;
x[fi,fj]:=2;

for i:=1 to 8 do
begin
textcolor(15);
write(9-i:3,'|');
for j:=1 to 8 do
if x[i,j]=1 then write('P':3)
else if x[i,j]=2 then write('F':3)
else write('*':3);
writeln;
end;
writeln(' +------------------------');
writeln(' A B C D E F G H');




if (ok) then writeln('1 figyra belaa');
else writeln('1 figura chernaa');
if(pok) then writeln('2 figyra belaa');
else writeln('2 figura chernaa');
repeat until keypressed;
end.
alatir вне форума Ответить с цитированием
Старый 23.08.2009, 19:26   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне кажется Вы написали много лишнего. Ведь задание
Цитата:
стоят ли эти фигуры на клетках одного цвета или нет.
И все.
Код:
uses crt;
var x1,y1,x2,y2,k:byte;
begin
clrscr;
repeat
writeln('Введите координаты первого поля:');
readln(x1,y1);
until(x1 in [1..8])and(y1 in [1..8]);
repeat
k:=0;
writeln('Введите координаты второго поля:');
readln(x2,y2);
if((x1=x2)and(y1=y2))or not(x2 in [1..8])or not(y2 in [1..8]) then k:=1;
until k=0;
if (abs(x1-x2)+abs(y1-y2))mod 2=0 then
write('Фигуры стоят на полях одного цвета!')
else write('Фигуры стоят на полях разного цвета!');
readln
end.
puporev вне форума Ответить с цитированием
Старый 23.08.2009, 19:49   #3
alatir
Пользователь
 
Регистрация: 23.08.2009
Сообщений: 10
По умолчанию

спасибо большое за алгоритм!!!!
а то я уже неделю ломаю над этой задачей
alatir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите доделать innaa639 Паскаль, Turbo Pascal, PascalABC.NET 1 21.05.2009 09:52
Помогите доделать прогу LaMeRvDelphi Мультимедиа в Delphi 0 20.04.2009 20:38
Помогите доделать Bay Паскаль, Turbo Pascal, PascalABC.NET 1 05.01.2009 15:01
Помогите доделать Povar Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2008 14:43
Помогите доделать Калькулятор Ivanich Помощь студентам 12 18.12.2007 06:26