Примеры новые
This commit is contained in:
parent
a8f25d2963
commit
d6f30e8e70
30
InstallerSamples/Algorithms/Recursion/Qweens.pas
Normal file
30
InstallerSamples/Algorithms/Recursion/Qweens.pas
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
function IsSafe(board: array of integer; row, col: integer): boolean;
|
||||
begin
|
||||
Result := True; // Предполагаем, что позиция безопасна
|
||||
for var i := 0 to row - 1 do
|
||||
if (board[i] = col) or // Проверка вертикали
|
||||
(board[i] - i = col - row) or // Проверка диагонали /
|
||||
(board[i] + i = col + row) then // Проверка диагонали \
|
||||
begin
|
||||
Result := False; // Найден конфликт
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure SolveNQueens(board: array of integer; row: integer);
|
||||
begin
|
||||
if row = 8 then // Все ферзи расставлены успешно
|
||||
board.Println
|
||||
else
|
||||
for var col := 0 to 7 do
|
||||
if IsSafe(board, row, col) then
|
||||
begin
|
||||
board[row] := col; // Поставить ферзя на ряд row
|
||||
SolveNQueens(board, row + 1); // Рекурсивный вызов для следующго ряда
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
var board := [0] * 8;
|
||||
SolveNQueens(board, 0); // Начинаем с первой строки (0)
|
||||
end.
|
||||
22
InstallerSamples/Graphics/Coords/Tree.pas
Normal file
22
InstallerSamples/Graphics/Coords/Tree.pas
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
uses Turtle;
|
||||
|
||||
procedure DrawTree(length: real; depth: integer);
|
||||
begin
|
||||
if depth > 0 then
|
||||
begin
|
||||
forw(length);
|
||||
turn(-35);
|
||||
DrawTree(length*0.65, depth-1);
|
||||
turn(70);
|
||||
DrawTree(length*0.65, depth-1);
|
||||
turn(-35);
|
||||
forw(-length);
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
toPoint(0, -8);
|
||||
down;
|
||||
|
||||
DrawTree(6, 11);
|
||||
end.
|
||||
Loading…
Reference in a new issue