|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.05.2013, 23:35 | #1 |
Регистрация: 24.04.2013
Сообщений: 3
|
Задача о 8 ферзях
program ferz;
uses crt,ABCObjects,ABCChessObjects,Even ts,Utils; var s,i,j:integer; a:array[1..8] of boolean; b:array[2..16] of boolean; c:array[-7..7] of boolean; x:array[1..8]of integer; d:array[1..8,1..8]of integer; g:array[1..8,1..8]of integer; procedure vivod; var i,j,k:integer; br: ChessBoardABC;ChessFigures: ChessSetABC;wq: ChessFigureABC; begin br:=CreateChessBoardABC(20,20,8,8,5 0,clwhite);ChessFigures:=ChessSetAB C.Create(PascalABCPath+'Media\Image s\Chess.wmf',45,br); s:=s+1; for i:=1 to 8 do for j:=1 to 8 do d[i,j]:=0; for k:=1 to 8 do d[8-x[k]+1,k]:=1; for i:=1 to 8 do begin for j:=1 to 8 do {write(d[i,j]:2); writeln;} if d[i,j]=1 then begin wq:=ChessFigures.CreateWhiteQueen(i ,j); end; end; readln; end; procedure trq(i:integer); var j:integer; begin for j:=1 to 8 do if a[j]and b[i+j]and c[i-j] then begin x[i]:=j; a[j]:=false;b[i+j]:=false;c[i-j]:=false; if i<8 then trq(i+1) else vivod; a[j]:=true;b[i+j]:=true;c[i-j]:=true; end; end; Begin clrscr; for i:=1 to 8 do a[i]:=true; for i:=2 to 16 do b[i]:=true; for i:=-7 to 7 do c[i]:=true; s:=0; trq(1); end. Как сделать так, чтобы первого ферзя ставил я, а он находил вариант расположения ферзей где мой тоже есть и выводил на экран. Подскажите плиз. Последний раз редактировалось Morfik1; 31.05.2013 в 23:43. Причина: дополнение |
01.06.2013, 00:50 | #2 |
Регистрация: 24.04.2013
Сообщений: 3
|
разобрался сам
|
01.06.2013, 22:13 | #3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Сначала разместить Вашего ферзя, а уже потом пытаться "воткнуть" остальных.
PS. Легче написать программу с нуля, чем разбираться в неотформатированной программе без единого комментария и с ничего не говорящими именами идентификаторов. Мне кажется, помещать программу в таком виде - просто неуважение к читателю. |
03.06.2013, 00:55 | #4 |
Регистрация: 24.04.2013
Сообщений: 3
|
По мне лучше быстренько самому пробежаться глазами по программному коду чем комментарии читать.Но в следующий раз когда буду выкладывать, просить совета прокомменчу.
|
03.06.2013, 07:59 | #5 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Этого недостаточно.
Еще нужно форматировать текст программы и давать переменным осмысленные имена. Опять же, комментарии не должны дублировать код программы: в коде мы видим, что делается, а в комментариях - зачем. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шахматная головоломка о восьми Ферзях ( Turbo Pascal ) | krolik_21 | Помощь студентам | 7 | 31.03.2013 11:50 |
Задача о ферзях. | FCShadow | Помощь студентам | 0 | 04.06.2011 23:56 |
Задача о восьми ферзях на Nemerle | natalya_57 | Помощь студентам | 3 | 08.07.2010 11:36 |
программирование на Си(задача о ферзях) | osichev | Помощь студентам | 4 | 04.10.2009 18:55 |