/
expertdaniil
/
Chess
Обзор
Документация
Войти
/
expertdaniil
/
Chess
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Chess_State.cpp
50 строк
1 KB
expertdaniil
upload files
22 янв 2026, 15:44
Верифицирован
22 янв 2026, 15:44
a081d0c
Код
Авторство
О чём код?
#include "Chess_State.h" ChessState::ChessState() { resetToInitialPosition(); } void ChessState::clearBoard() { for (auto& p : board) p = Piece{}; stm = Side::White; castle = CastlingRights{}; epSquare = -1; } void ChessState::resetToInitialPosition() { clearBoard(); castle.wK = castle.wQ = true; castle.bK = castle.bQ = true; epSquare = -1; stm = Side::White; auto set = [&](int r, int c, PieceKind k, Side s) { board[(size_t)pack(r, c)] = Piece{ k, s }; }; // белые set(0,0,PieceKind::Rook,Side::White); set(0,1,PieceKind::Knight,Side::White); // set(0,1,PieceKind::Tatarin,Side::White); set(0,2,PieceKind::Bishop,Side::White); set(0,3,PieceKind::Queen,Side::White); set(0,4,PieceKind::King,Side::White); set(0,5,PieceKind::Bishop,Side::White); set(0,6,PieceKind::Knight,Side::White); // set(0,6,PieceKind::Tatarin,Side::White); set(0,7,PieceKind::Rook,Side::White); for (int c=0;c<8;++c) set(1,c,PieceKind::Pawn,Side::White); // чёрные set(7,0,PieceKind::Rook,Side::Black); set(7,1,PieceKind::Knight,Side::Black); set(7,2,PieceKind::Bishop,Side::Black); set(7,3,PieceKind::Queen,Side::Black); set(7,4,PieceKind::King,Side::Black); set(7,5,PieceKind::Bishop,Side::Black); set(7,6,PieceKind::Knight,Side::Black); set(7,7,PieceKind::Rook,Side::Black); for (int c=0;c<8;++c) set(6,c,PieceKind::Knight,Side::Black); }