• Предмет: Информатика
  • Автор: alextruefootball333
  • Вопрос задан 1 год назад

напишиье код на delphi 7 на игру Уголки и расскажите что делать ​

Ответы

Ответ дал: surgeonn
0
program Ugolki;

uses
SysUtils, Crt;

const
SIZE = 8;

type
TBoard = array [1..SIZE, 1..SIZE] of Char;

var
Board: TBoard;
CurrentPlayer: Char;

procedure InitializeBoard;
var
i, j: Integer;
begin
for i := 1 to SIZE do
for j := 1 to SIZE do
begin
if (i + j) mod 2 = 0 then
begin
if i <= 3 then
Board[i, j] := 'O'
else if i >= 6 then
Board[i, j] := 'X'
else
Board[i, j] := ' ';
end
else
Board[i, j] := ' ';
end;
end;

procedure DrawBoard;
var
i, j: Integer;
begin
ClrScr;
for i := 1 to SIZE do
begin
for j := 1 to SIZE do
Write(Board[i, j]);
Writeln;
end;
end;

function IsValidMove(x1, y1, x2, y2: Integer): Boolean;
begin
// Проверяем, что начальные координаты содержат фишку текущего игрока
if (Board[x1, y1] <> CurrentPlayer) then
begin
Writeln('Invalid move - no piece to move!');
Result := False;
Exit;
end;

// Проверяем, что конечные координаты пусты
if (Board[x2, y2] <> ' ') then
begin
Writeln('Invalid move - target position is occupied!');
Result := False;
Exit;
end;

// Проверяем, что координаты находятся на доске
if (x1 < 1) or (x1 > SIZE) or (y1 < 1) or (y1 > SIZE) or
(x2 < 1) or (x2 > SIZE) or (y2 < 1) or (y2 > SIZE) then
begin
Writeln('Invalid move - coordinates out of bounds!');
Result := False;
Exit;
end;

// Проверяем, что координаты соседние и находятся на диагонали
if (Abs(x1 - x2) <> 1) or (Abs(y1 - y2) <> 1) then
begin
Writeln('Invalid move - coordinates must be adjacent and diagonal!');
Result := False;
Exit;
end;

Result := True;
end;

function IsGameOver: Boolean;
var
i, j: Integer;
foundPlayer1, foundPlayer2: Boolean;
begin
foundPlayer1 := False;
foundPlayer2 := False;

for i := 1 to SIZE do
for j := 1 to SIZE do
begin
if Board[i, j] = 'O' then
foundPlayer1 := True
else if Board[i, j] = 'X' then
foundPlayer2 := True;
end;

Result := not (foundPlayer1 and foundPlayer2);
end;

procedure SwitchPlayer;
begin
if CurrentPlayer = 'O' then
CurrentPlayer := 'X'
Вас заинтересует