Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Azat777
0 / 0 / 1
Регистрация: 03.12.2010
Сообщений: 13
1

магарадже - это фигура, которая объединяет в себе ходы коня и ферзя. Для доски 10х10 найти способ расстановки 10 мирных магараджей.Объясните

25.05.2011, 11:27. Просмотров 759. Ответов 0
Метки нет (Все метки)

Объясните программу пожалуйста,а то я разобраться в ней не могу!?
срочно надо(

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
program magaradga;
uses crt;
const n=10;
dx:array[1..8] of integer=(-2, -1, 1, 2, 2, 1, -1, -2);
dy:array[1..8] of integer=( 1, 2, 2, 1, -1, -2, -2, -1);
var k:integer;
x:array[1..n] of integer;
a:array[1..n] of boolean;
b:array[2..2*n] of boolean;
c:array[-n+1..n-1] of boolean;
procedure init;
var i:integer;
begin
k:=0;
for i:=1 to n do a[i]:=true;
for i:=2 to 2*n do b[i]:=true;
for i:=-n+1 to n-1 do c[i]:=true;
end;
procedure move(i,j:integer);
begin
x[i]:=j;
a[j]:=false;
b[i+j]:=false;
c[i-j]:=false;
end;
procedure backmove(i,j:integer);
begin
a[j]:=true;
b[i+j]:=true;
c[i-j]:=true;
end;
function domove(i,j:integer):boolean;
var t:boolean;
u,px,py:integer;
begin
t:=true;
for u:=1 to 8 do begin
px:=j+dx[u];
py:=i+dy[u];
if (py>0) and (px>0) and (py<=n) and (px<=n) and (x[py]=px) then begin
t:=false;
break;
end;
end;
domove:=t and a[j] and b[i+j] and c[i-j];
end;
procedure print;
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n do
if x[i]=j then write('*|') else write('_|');
writeln;
end;
end;
procedure solve(i:integer);
var j:integer;
q:boolean;
begin
j:=0;
repeat
inc(j);
q:=false;
inc(k);
if domove(i,j) then begin
move(i,j);
if i<n then begin
solve(i+1);
if not q then backmove(i,j);
end
else
q:=true;
end;
until q or (j=n);
if q then print;
end;
begin
clrscr;
init;
solve(1);
readln;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2011, 11:27
Ответы с готовыми решениями:

Определить все возможные ходы ферзя, с поворотом доски на 180 градусов
Здравствуйте! Задача состоит в следующем: дано поле 8*8, нужно определить все...

Для доски 10*10 написать программу нахождения расстановки 10 мирных магараджей
Магараджа. Магараджа — это фигура, которая объединяет в себе ходы коня и...

Вывести все возможные ходы шахматного коня из данной позиции, для трехмерной шахматной доски 8*8*8
Sub asd() Dim x As Integer, y As Integer, xx As Integer, yy As Integer, s As...

Как на доске 10*10 расставить 10 мирных магараджей
(Решить методом перебора с возвратом) Магараджа – это фигура, которая...

Ходы шахматного коня
Задача заключается в том, чтобы найти минимальное количество ходов для перехода...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 11:27

Найти кол-во ходов коня с определенной позиции шахматной доски
прога должна находить кол-во ходов, что может сделать шахматная фигура конь,...

Написать программу, которая по шахматному ходу определяет корректный ли это ход ферзя
public static void Main() { TestMove(&quot;a1&quot;, &quot;d4&quot;); TestMove(&quot;f4&quot;, &quot;e7&quot;);...

Вычислить все возможные ходы коня
в шахматах задать начальные координаты клетки(х,у) и вычислить все возможные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru