Поделитесь своими знаниями, ответьте на вопрос:
доработать код на питон Рокировка — особая разновидность шахматного хода, при котором ладья, находившаяся на начальной позиции, вплотную подходит к своему королю, который «перепрыгивает» через ладью вдоль линии её движения. При этом король перемещается не на одно поле, как обычно, а на два. Необходимым условием рокировки является то, что ни король, ни участвующая в манёвре ладья не должны были сдвигаться со своего места до совершения рокировки. Если ладья сдвигалась с начальной позиции, рокировка с её участием становится невозможной. Если сдвигался король, обе рокировки становятся невозможными. Реализуйте два метода, 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()
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int a;
cout<<"Введи размерность"<<endl;
cin>>a;
int arr[a+1][a+1];
for (int i=1; i<a+1; ++i)
for(int j=1; j<a+1; ++j)
arr[i][j]=i*j;
for (int i=1; i<a+1; ++i) {arr[i][0]=i;arr[0][i]=i;}
cout<<" ";
for (int i=1; i<a+1; ++i){cout<<arr[i][0]<<" ";}
cout<<endl;
for (int i=1; i<a+1; ++i){
for(int j=0; j<a+1; ++j)
cout<<arr[i][j]<<" ";
cout<<endl;
}
return 0;
}
Т.к. в условии про оформление ничего не сказано, то сделал самое обычное