доработать код на питон Рокировка — особая разновидность шахматного хода, при котором ладья, находившаяся на начальной позиции, вплотную подходит к своему королю, который «перепрыгивает» через ладью вдоль линии её движения. При этом король перемещается не на одно поле, как обычно, а на два.
Необходимым условием рокировки является то, что ни король, ни участвующая в манёвре ладья не должны были сдвигаться со своего места до совершения рокировки. Если ладья сдвигалась с начальной позиции, рокировка с её участием становится невозможной. Если сдвигался король, обе рокировки становятся невозможными.
Реализуйте два метода, board.castling0() и board.castling7(). Метод castling0 пробует выполнить рокировку для игрока текущего цвета с ладьёй из колонки 0, castling7 — из колонки 7.
Если рокировка возможна, следует выполнить её и вернуть True, если нет — только вернуть False.
В тестах для уменьшения их объёма и сложности начальная расстановка фигур перезаписывается и заменяется на более простую. Однако гарантируется, что начальные положения короля и ладей, если они есть на доске, соответствуют шахматным правилам.
Пример 1
Ввод Вывод
from solution import (
Board, Pawn, Rook, King, Knight, Bishop, Queen,
WHITE, BLACK
)
board = Board()
board.field = [([None] * 8) for i in range(8)]
board.field[0][0] = Rook(WHITE)
board.field[0][4] = King(WHITE)
board.field[0][7] = Rook(WHITE)
board.field[7][0] = Rook(BLACK)
board.field[7][4] = King(BLACK)
board.field[7][7] = Rook(BLACK)
print('before:')
for row in range(7, -1, -1):
for col in range(8):
char = board.cell(row, col)[1]
print(char.replace(' ', '-'), end='')
print()
print()
print("Рокировка")
print(board.castling0())
print(board.castling7())
for row in range(7, -1, -1):
for col in range(8):
Код программы:
from solution import (
Board, Pawn, Rook, King, Knight, Bishop, Queen,
WHITE, BLACK
)
board = Board()
board.field = [([None] * 8) for i in range(8)]
board.field[0][0] = Rook(WHITE)
board.field[0][4] = King(WHITE)
board.field[0][7] = Rook(WHITE)
board.field[7][0] = Rook(BLACK)
board.field[7][4] = King(BLACK)
board.field[7][7] = Rook(BLACK)
print('before:')
for row in range(7, -1, -1):
for col in range(8):
char = board.cell(row, col)[1]
print(char.replace(' ', '-'), end='')
print()
print()
print("Сдвиги ладей")
board.move_piece(0, 0, 0, 1)
board.move_piece(7, 0, 7, 1)
print(board.castling0())
print(board.castling7())
for row in range(7, -1, -1):
for col in range(8):
char = board.cell(row, col)[1]
print(char.replace(' ', '-'), end='')
print()
print()
print(board.castling0())
print(board.castling7())
for row in range(7, -1, -1):
for col in range(8):
char = board.cell(row, col)[1]
print(char.replace(' ', '-'), end='')
print()
готово
Объяснение:
1)
program minimum;
var
i, n, k: integer;
min: real;
A: array of real;
begin
Write('Введите размер массива: ');
ReadLn(n);
SetLength(A, n);
for i := 0 to n - 1 do
begin
Write('Введите A[',i,']=');
ReadLn(A[i]);
end;
min := A[0];
for i := 1 to n - 1 do
if A[i] < min then
begin
min := A[i];
k := i;
end;
WriteLn('Минимальный элемент - A[',k,'] = ', min);
end.
2)
program summa;
var
i, t, sum: integer;
A: array of integer;
begin
Write('Введите размер массива: ');
ReadLn(t);
SetLength(A, t);
for i := 0 to t - 1 do
begin
A[i] := round(random(120) - 60);
WriteLn('A[', i, '] = ', A[i]);
if A[i] > 20 then sum := sum + a[i];
end;
WriteLn('Сумма чисел, больших 20 = ', sum);
end.
3)
program massiv;
var
i, k: integer;
A: array[0..13] of integer;
begin
for i := 0 to 13 do
begin
A[i] := round(random(27) + 3);
WriteLn('A[', i, '] = ', A[i]);
if A[i] > 13 then k := k + 1;
end;
WriteLn('Количество чисел, больших 13 равно ', k);
end.
#include <iostream>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
setlocale(LC_ALL, "ru");
int S = 0;
int const SIZE = 10;
int arr[SIZE];
for (int i = 0; i < SIZE; i++)//Заполняем и выводим массив
{
arr[i] = -100 + rand() % 201;
cout << arr[i] << " ";
}
cout << "\n\nСумма нечет. эл-ов кратных 3\n\n";
for (int i = 0; i < SIZE; i++)
{
if (arr[i] % 2 != 0 && arr[i] % 3 == 0)
{
S += arr[i];
}
}
cout << "Сумма - " << S;
return 0;
}
Объяснение: