Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

License

NotificationsYou must be signed in to change notification settings

bitcoineazy/chess_pygame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задачи для пятого задания Практикума по программированию. Общая тема задания«Шахматный симулятор: объектно-ориентированная версия».

На базе собственной реализации Задания 4 создать объектно-ориентированную реализациюпрограммы для игры в шахматы.Базовые требования к функциональности программы сохраняются прежними:Реализовать программу, которая позволяет играть в шахматы на компьютере. Взаимодействие спрограммой производится через консоль (базовый вариант). Игровое поле изображается в виде 8текстовых строк, плюс строки с буквенным обозначением столбцов (см. пример на Рис. 1) иперерисовывается при каждом изменении состояния поля. При запросе данных от пользователяпрограмма сообщает, что ожидает от пользователя (например, позицию фигуры для следующегохода белыми; целевую позицию выбранной фигуры) и проверяет корректность ввода(допускаются только ходы соответствующие правилам шахмат; поддержка рокировки, сложныхправил для пешек и проверки мата вынесена в отдельные пункты). Программа должна считатьколичество сделанных ходов.Сама программа НЕ ходит: т.е. не пытается выполнить ходы за одну из сторон, а предоставляетпоочередно вводить ходы за белых и черных.Требования к реализации:Основные объекты и абстрактные сущности игры должны быть представлены в виде объектов,представителей соответствующих классов, часть классов должны быть организованы в видеиерархии. В частности: шахматные фигуры – объекты, представители классов, организованных ввиде иерархии; доска – объект; ходы фигур – объекты. Вся основная информация должнахраниться в атрибутах объектов или классов (например, информация о положении фигур, цветефигур, символах, используемых для визуализации фигур и т.п.). Основная часть функционаладолжна программы должна быть организована в виде методов, закрепленных засоответствующими объектами или классами. Например, это касается методов определяющих

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

Дополнительные задания:

  1. Придумать 3 новых вида фигур с оригинальными правилами перемещения и реализовать ихклассы. Создать модификацию шахмат с новыми фигурами с минимальнымвмешательством в существующий код.Сложность 1
  2. На базе игры в шахматы реализовать игру в шашки. Разработать модификацию шахмат сминимальным вмешательством в существующий код.Сложность 2

3.(# Реализовано. вариант - Глинский) На базе игры в шахматы на классической доске реализовать игру в гексагональныешахматы (https://ru.wikipedia.org/wiki/Гексагональные_шахматы ). Выбрать один из трехвариантов: шахматы Глинского; шахматы МакКуэя; шахматы Шафрана. Разработатьмодификацию шахмат с минимальным вмешательством в существующий код для обычныхшахмат.Сложность 3

  1. На базе игры в шахматы на классической доске реализовать игру в гексагональныешахматы на троих (https://ru.wikipedia.org/wiki/Шахматы_для_троих ). Выбрать один изсуществующих вариантов. Разработать модификацию шахмат с минимальнымвмешательством в существующий код для обычных шахмат.Сложность 4

5.(# Реализовано) Реализовать возможность «отката» ходов. С помощью специальной команды можновозвращаться на ход (или заданное количество ходов) назад вплоть до начала партии.Информация о ходах в партии должна храниться в объектно-ориентированном виде.Сложность 1

6.(# Реализовано, hexogonal_chess.py) Реализовать функцию подсказки выбора новой позиции фигуры: после выбора фигуры дляхода функция визуально на поле показывает поля доступные для хода или фигурысоперника, доступные для взятия, выбранной фигурой. Информация о допустимых ходахдолжна храниться в объектно-ориентированном виде, алгоритм без модификации долженработать при добавлении новых типов фигур (задание берется совместно с Заданием 1).Сложность 1

  1. Реализовать функцию подсказки угрожаемых фигур: она возвращает информацию о том,какие фигуры ходящего игрока сейчас находятся под боем (т.е. могут быть взятысоперником на следующий ход) и визуально выделяет их на поле. Функция отдельноуказывает на наличие шаха королю. Информация о допустимых ходах должна храниться вобъектно-ориентированном виде, алгоритм без модификации должен работать придобавлении новых типов фигур (задание берется совместно с Заданием 1).Сложность 1
  2. Реализовать поддержку для пешки сложных правил: «взятие на проходе» и замены надругух фигуру при достижении крайней горизонтали (в базовой версии их поддержка необязательна, но возможность первого хода на одну или две горизонтали - обязательно).Подробнее о правилах см.:https://ru.wikipedia.org/wiki/Правила_шахмат . Информация одопустимых ходах должна храниться в объектно-ориентированном виде, алгоритм безмодификации должен работать при добавлении новых типов фигур со сложнымповедением (задание берется совместно с Заданием 1 и как минимум одна из новых фигур

должна иметь сложное поведение, т.е. изменение правил хода и взятия фигуры взависимости от дополнительных условий).Сложность 1

Здесь 4 и 5 проект практикума по программированию. Классические шахматы - classic_chess.py,

Гексагональные - hexogonal_chess.py

Игры реализованы с помощью библиотеки pygame

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp