Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/140: Рейтинг темы: голосов - 140, средняя оценка - 4.76
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56

Ферзь

07.04.2018, 14:59. Показов 30939. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализуйте класс для шахматного ферзя (Queen).

Интерфейс этого класса должен соответствовать интерфейсу шахматной фигуры, который разбирали на уроке на примере пешки и ладьи.

q = Queen(row, col, color) — создание экземпляра.

q.can_move(row1, col1) — True в случае, если ферзь может пойти на поле (row1, col1), иначе False.

Наличие других фигур на доске в этой задаче учитывать не нужно. Ферзь не должен выходить за пределы доски.

(На уроке мы написали код, где за это отвечает класс Board. В этой задаче не позволять выход за пределы доски должен и сам класс Queen.)

q.set_position(row1, col1) — переместить ферзя на поле (row1, col1).

q.get_color() — прочитать значение цвета.

q.char() должен всегда возвращать 'Q'.

Пример 1
Ввод Вывод
from solution import Queen

WHITE=1
BLACK=2

row0 = 0
col0 = 3
queen = Queen(row0, col0, WHITE)

print('white' if queen.get_color() == WHITE else 'black')
for row in range(7, -1, -1):
for col in range(8):
if row == row0 and col == col0:
print(queen.char(), end='')
elif queen.can_move(row, col):
print('x', end='')
else:
print('-', end='')
print()
white
---x----
---x----
---x----
---x---x
x--x--x-
-x-x-x--
--xxx---
xxxQxxxx
Пример 2
Ввод Вывод
from solution import Queen

WHITE=1
BLACK=2

row0 = 4
col0 = 5
queen = Queen(row0, col0, BLACK)

print('white' if queen.get_color() == WHITE else 'black')
for row in range(7, -1, -1):
for col in range(8):
if row == row0 and col == col0:
print(queen.char(), end='')
elif queen.can_move(row, col):
print('x', end='')
else:
print('-', end='')
print()
black
--x--x--
---x-x-x
----xxx-
xxxxxQxx
----xxx-
---x-x-x
--x--x--
-x---x--
Пример 3
Ввод Вывод
from solution import Queen

WHITE=1
BLACK=2

row0 = 7
col0 = 3
queen = Queen(row0, col0, BLACK)

print('white' if queen.get_color() == WHITE else 'black')
for row in range(8, -2, -1):
for col in range(-1, 9):
if row == row0 and col == col0:
print(queen.char(), end='')
elif queen.can_move(row, col):
print('x', end='')
else:
print('-', end='')
print()
black
----------
-xxxQxxxx-
---xxx----
--x-x-x---
-x--x--x--
----x---x-
----x-----
----x-----
----x-----
----------
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.04.2018, 14:59
Ответы с готовыми решениями:

Ферзь – 2
Замените в примере из урока заглушку метода can_move в классе Queen на реализацию проверки хода ферзя. Ферзь должен правильно ходить и...

Угрожает ли ферзь полю
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит восьми: первое число — номер вертикали (при...

Поля, которые бьет ферзь
Даны две литеры – латинская буква (от a до h) и цифра (от 1 до 8), например, a2 или g5. Рассматривая их координаты поля шахматной доски, на...

2
07.04.2018, 16:38

Не по теме:

Цитата Сообщение от Taranboy Посмотреть сообщение
На уроке мы написали код, где за это отвечает класс Board
к сожалению мы этот урок не посещали

0
8 / 8 / 0
Регистрация: 11.04.2019
Сообщений: 2
11.04.2019, 09:19
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Queen:
    def __init__(self, row, col, color):
        self.row = row
        self.col = col
        self.color = color
 
    def set_position(self, row, col):
        self.row = row
        self.col = col
 
    def char(self):
        return 'Q'
 
    def get_color(self):
        return self.color
 
    def can_move(self, row, col):
        if not (0 <= row < 8 and 0 <= col < 8):
            return False
        if abs(row - self.row) == abs(col - self.col):
            return True
        if self.row != row and self.col != col:
            return False
        return True
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2019, 09:19
Помогаю со студенческими работами здесь

Куда может ходить ферзь
2) На шахматной доске стоит ферзь. Отметьте положение ферзя на доске и все клетки, которые бьет ферзь. Клетку, где стоит ферзь, отметьте...

Может ли шахматный ферзь перейти с одного поля на другое?
Даны координаты двух различных полей шахматной доски x1, y1, x2, y2 (целые числа, лежащие в диапазоне 1–8). Проверить истинность...

Может ли ферзь добраться от одного поля до другого за один ход
Проверьте, может ли шахматный ферзь добраться от одного поля до другого ровно за один ход. Программа получает на вход два обозначения поля,...

Может ли ферзь попасть с первой клетки на вторую одним ходом
Доброго времени суток! Условие задачи следующее:Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки...

Определить, может ли ферзь попасть с первой клетки на вторую одним ходом
Всем привет Начал изучать питон Засел на задачке про ферзя, условие такие: &quot;Шахматный ферзь ходит по диагонали, горизонтали или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru