В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
neketos54p0cc9j
neketos54p0cc9j
10.06.2022 12:33 •  Информатика

доработать код на питон Рокировка — особая разновидность шахматного хода, при котором ладья, находившаяся на начальной позиции, вплотную подходит к своему королю, который «перепрыгивает» через ладью вдоль линии её движения. При этом король перемещается не на одно поле, как обычно, а на два.
Необходимым условием рокировки является то, что ни король, ни участвующая в манёвре ладья не должны были сдвигаться со своего места до совершения рокировки. Если ладья сдвигалась с начальной позиции, рокировка с её участием становится невозможной. Если сдвигался король, обе рокировки становятся невозможными.
Реализуйте два метода, 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.

0,0(0 оценок)
Ответ:
argen08
argen08
24.11.2021 12:09

#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;

 

}

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота