#ifndef CHESS_PATHS_H_INCLUDED #define CHESS_PATHS_H_INCLUDED enum chess_piece { KING, QUEEN, ROOK, BISHOP, KNIGHT, PAWN }; /* Implemented by the application: */ struct chessboard; int value_at(const struct chessboard * c, unsigned column, unsigned row); unsigned int columns(const struct chessboard * c); unsigned int rows(const struct chessboard * c); struct piece_position { enum chess_piece piece; unsigned int column; unsigned int row; }; /* Implemented by you: */ unsigned int increasing_path_len(const struct chessboard * c, struct piece_position * p); unsigned int decreasing_path_len(const struct chessboard * c, struct piece_position * p); unsigned int simple_path_len(const struct chessboard * c, struct piece_position * p); #endif