libscid snapshot+0cce79d72e38
Chess applications made easy.
Source on GitHub License GPL v2
Loading...
Searching...
No Matches
position.h
1#ifndef SCID_POSITION_H
2#define SCID_POSITION_H
3
4#include "scid/_platform.h"
5#include "scid/primitives.h"
6
7#ifdef __cplusplus
8extern "C"
9{
10#endif
11
12 typedef struct scid_position scid_position;
13
14
15 SCID_API scid_error
16 scid_position_create_from_fen(
17 const char* fen,
18 scid_position** out_position);
19
20
21 SCID_API scid_error
22 scid_position_create_with_san(
23 const scid_position* position,
24 const char* san,
25 scid_position** out_position);
26
27
28 SCID_API scid_error
29 scid_position_create_with_uci(
30 const scid_position* position,
31 const char* uci,
32 scid_position** out_position);
33
34
35 SCID_API void
36 scid_position_free(scid_position* position);
37
38
39 SCID_API scid_error
40 scid_position_to_fen(
41 const scid_position* position,
42 char* out_fen,
43 size_t out_fen_capacity,
44 size_t* out_fen_size);
45
46
47 SCID_API scid_error
48 scid_position_apply_san(
49 scid_position* position,
50 const char* san);
51
52
53 SCID_API scid_error
54 scid_position_apply_uci(
55 scid_position* position,
56 const char* uci);
57
58
59 SCID_API scid_error
60 scid_position_is_start(
61 const scid_position* position,
62 int* out_is_start);
63
64
65 SCID_API scid_error
66 scid_position_is_check(
67 const scid_position* position,
68 int* out_is_check);
69
70
71 SCID_API scid_error
72 scid_position_is_checkmate(
73 const scid_position* position,
74 int* out_is_checkmate);
75
76
77 SCID_API scid_error
78 scid_position_is_legal(
79 const scid_position* position,
80 int* out_is_legal);
81
82
83 SCID_API scid_error
84 scid_position_side_to_move_get(
85 const scid_position* position,
86 scid_colour* out_side_to_move);
87
88
89 SCID_API scid_error
90 scid_position_fullmove_number_get(
91 const scid_position* position,
92 unsigned* out_fullmove_number);
93
94
95 SCID_API scid_error
96 scid_position_halfmove_clock_get(
97 const scid_position* position,
98 unsigned* out_halfmove_clock);
99
100
101 SCID_API scid_error
102 scid_position_piece_at_get(
103 const scid_position* position,
104 scid_square square,
105 scid_piece* out_piece);
106
107#ifdef __cplusplus
108}
109#endif
110
111#endif