Chess
0.0.1
A library written in c
Loading...
Searching...
No Matches
position_counter.h
Go to the documentation of this file.
1
8
#ifndef CHESS_POSITION_COUNTER_H_INCLUDED
9
#define CHESS_POSITION_COUNTER_H_INCLUDED
10
11
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 202311L
12
#include <stdbool.h>
13
#endif
14
#include <stddef.h>
15
#include <stdint.h>
16
20
typedef
struct
ChessPosition
ChessPosition
;
21
27
typedef
struct
ChessPositionCounterEntry
{
28
uint64_t
key
;
29
unsigned
int
value
;
30
}
ChessPositionCounterEntry
;
31
38
typedef
struct
ChessPositionCounter
{
39
ChessPositionCounterEntry
*
entries
;
40
size_t
size
;
41
size_t
count
;
42
}
ChessPositionCounter
;
43
49
bool
chess_position_counter_is_valid
(
const
ChessPositionCounter
*counter);
50
55
ChessPositionCounter
chess_position_counter_new
(
void
);
56
61
void
chess_position_counter_drop
(
ChessPositionCounter
*counter);
62
67
void
chess_position_counter_clear
(
ChessPositionCounter
*counter);
68
75
unsigned
int
chess_position_counter_count
(
const
ChessPositionCounter
*counter,
const
ChessPosition
*position);
76
83
bool
chess_position_counter_increment
(
ChessPositionCounter
*counter,
const
ChessPosition
*position);
84
91
bool
chess_position_counter_decrement
(
ChessPositionCounter
*counter,
const
ChessPosition
*position);
92
93
#endif
// CHESS_POSITION_COUNTER_H_INCLUDED
chess_position_counter_clear
void chess_position_counter_clear(ChessPositionCounter *counter)
Clears all entries from the given position counter.
chess_position_counter_increment
bool chess_position_counter_increment(ChessPositionCounter *counter, const ChessPosition *position)
Increments the count for a given position.
chess_position_counter_new
ChessPositionCounter chess_position_counter_new(void)
Creates a new, empty position counter.
chess_position_counter_is_valid
bool chess_position_counter_is_valid(const ChessPositionCounter *counter)
Checks if the given position counter is valid.
chess_position_counter_decrement
bool chess_position_counter_decrement(ChessPositionCounter *counter, const ChessPosition *position)
Decrements the count for a given position.
chess_position_counter_count
unsigned int chess_position_counter_count(const ChessPositionCounter *counter, const ChessPosition *position)
Gets the count for a given position.
chess_position_counter_drop
void chess_position_counter_drop(ChessPositionCounter *counter)
Releases resources held by the given position counter.
ChessPositionCounterEntry
Entry in the position counter hash table.
Definition
position_counter.h:27
ChessPositionCounterEntry::value
unsigned int value
Definition
position_counter.h:29
ChessPositionCounterEntry::key
uint64_t key
Definition
position_counter.h:28
ChessPositionCounter
Hash table for counting chess positions.
Definition
position_counter.h:38
ChessPositionCounter::size
size_t size
Definition
position_counter.h:40
ChessPositionCounter::count
size_t count
Definition
position_counter.h:41
ChessPositionCounter::entries
ChessPositionCounterEntry * entries
Definition
position_counter.h:39
ChessPosition
Represents the position in a chess game.
Definition
position.h:30
include
chess
position_counter.h
Generated by
1.9.8