aboutsummaryrefslogtreecommitdiff
path: root/include/zobrist.c
diff options
context:
space:
mode:
Diffstat (limited to 'include/zobrist.c')
-rw-r--r--include/zobrist.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/include/zobrist.c b/include/zobrist.c
index feff5fa..21a99af 100644
--- a/include/zobrist.c
+++ b/include/zobrist.c
@@ -1,25 +1,38 @@
-#include "zobrist.h"
+/*
+ This file is part of ctak.
-// ===================================================================
-// Globals
-// ===================================================================
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
-static uint64_t *zobrist;
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Takwrap. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+#include "zobrist.h"
// ===================================================================
-// Helpers
+// Variables
// ===================================================================
+static uint64_t *zobrist;
// ===================================================================
// Exported method implementations
// ===================================================================
-int
-zobrist_init(void) {
+int zobrist_init(void) {
if (zobrist != NULL) return EXIT_FAILURE;
zobrist = malloc(sizeof(uint64_t)*board_size*board_size*(15*2*3));
+ // TODO: trap errno
+
for (int k=0; k<board_size*board_size*(15*2*3); k++) {
XORSHIFT64;
zobrist[k] = RANDOM64;
@@ -28,16 +41,14 @@ zobrist_init(void) {
return EXIT_SUCCESS;
}
-void
-zobrist_free(void) {
+void zobrist_free(void) {
if (zobrist != NULL) {
free(zobrist);
zobrist = NULL;
}
}
-uint64_t
-zobrist_compute(void) {
+uint64_t zobrist_compute(void) {
uint64_t hash = 0;
for (uint8_t l=0; l<board_size*board_size; l++) {
colour_stack_t c = colours[l];