Матрица 8х8.
Каждая фигура - класс.
При указании фигуре куда ходить - вызывается метод фигуры check() - проверяется можно ли туда ходить, не стоит ли в конце пути твоя фигура. И т.д., не конец ли поля. После - метод go() - если на пути вражеская фигура - eat() если пусто, то ничего.
Так же каждый раз после хода вызывать проверку is_shah is_pat и is_mat.
Вам остаётся загуглить непонятные для вас термины из моего ответа, и - профит.