GithubHelp home page GithubHelp logo

chessandcheckers's Introduction

Piece: Данный класс описывает шахматную фигуру. В конструкторе определяются следующие свойства фигуры: цвет, позиция, направление хода, флаг о том, был ли ход данной фигурой ранее, и история ходов.

Метод get_possible_moves возвращает список возможных ходов для данной фигуры на доске.

Метод can_move проверяет, возможен ли заданный ход для данной фигуры.

Метод move перемещает фигуру на заданную позицию и обновляет историю ходов.

Метод undo_move отменяет последний ход фигуры.

Метод is_opponent проверяет, является ли данная фигура оппонентом текущей фигуры.

Методы get_possible_straight_line_moves и get_possible_diagonal_moves возвращают возможные ходы для фигуры в соответствующих направлениях.

Класс не реализует все методы для каждой фигуры, но определяет базовые свойства и методы, которые могут быть унаследованы дочерними классами для более специфических фигур, таких как пешка, конь, слон, ладья, ферзь и король. Классы для отдельных фигур я описывать не буду, они двигаются по обычным правилам. Также реализована Королева-паук(она может перемещаться как королева, но также может прыгать на расстояние до трех клеток по диагонали, через другие фигуры), Пешка-скакун (может двигаться только на одну или две клетки вперед и на одну клетку вправо или влево) и Корабль(перемещается на любое количество пустых клеток в любом направлении (вертикально, горизонтально или диагонально), но только если между начальной и конечной клетками нет других фигур). Chessboard: В конструкторе init создается пустая доска размером 8 на 8, после чего на нее устанавливаются фигуры в начальной расстановке. Конкретно, на 1 и 6 ряды устанавливаются пешки для белых и черных соответственно, а на оставшиеся ряды - ладьи, кони, слоны, королевы и короли в соответствии с правилами игры. Помимо этого, класс содержит несколько методов, таких как get_all_pieces (возвращает все фигуры на доске), get_curr_player_pieces (возвращает фигуры текущего игрока), get_poss_moves_for (возвращает возможные ходы для заданной фигуры), move_piece (выполняет ход фигурой), get_castle_moves_for_curr_player (возвращает возможные ходы для рокировки) и т.д. Game: Он использует библиотеку pygame, чтобы создать игровой интерфейс и обработать ввод пользователя. Класс Game инициализирует игру, создает доску, отображает ее и управляет игровым процессом. Методы класса включают отрисовку доски и бокового меню, получение кликов пользователя, вычисление возможных ходов для фигуры и обработку перемещения фигур. Если шахматная партия заканчивается, игра выводит на экран сообщение о чекмейте и победителе.

chessandcheckers's People

Contributors

nikotin554 avatar kitin55 avatar

Stargazers

Max Dupley avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.