src/chess/game-info.h

changeset 129
189c7c77aaab
parent 128
ce38ee9bc3af
child 130
3fc6b1d6cbe9
--- a/src/chess/game-info.h	Tue May 26 15:29:00 2026 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2016 Mike Becker. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GAME_INFO_H
-#define GAME_INFO_H
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#define WHITE 0x10
-#define BLACK 0x20
-#define opponent_color(color) ((color)==WHITE?BLACK:WHITE)
-
-#define PIECE_MASK 0x0F
-#define COLOR_MASK 0x30
-
-#define PAWN   0x01
-#define ROOK   0x02
-#define KNIGHT 0x03
-#define BISHOP 0x04
-#define QUEEN  0x05
-#define KING   0x06
-
-#define WPAWN   (WHITE|PAWN)
-#define WROOK   (WHITE|ROOK)
-#define WKNIGHT (WHITE|KNIGHT)
-#define WBISHOP (WHITE|BISHOP)
-#define WQUEEN  (WHITE|QUEEN)
-#define WKING   (WHITE|KING)
-#define BPAWN   (BLACK|PAWN)
-#define BROOK   (BLACK|ROOK)
-#define BKNIGHT (BLACK|KNIGHT)
-#define BBISHOP (BLACK|BISHOP)
-#define BQUEEN  (BLACK|QUEEN)
-#define BKING   (BLACK|KING)
-
-typedef uint8_t Board[8][8];
-
-struct movetimeval {
-    uint64_t tv_sec;
-    int32_t tv_usec;
-};
-
-typedef struct {
-    uint8_t piece;
-    uint8_t fromfile;
-    uint8_t fromrow;
-    uint8_t tofile;
-    uint8_t torow;
-    uint8_t promotion;
-    uint8_t check;
-    uint8_t capture;
-    struct movetimeval timestamp;
-    struct movetimeval movetime;
-    char string[8];
-} Move;
-
-typedef struct {
-    uint8_t servercolor;
-    uint8_t timecontrol;
-    uint16_t time;
-    uint16_t addtime;
-} GameInfo;
-
-/** The buffer length for player names in GameInfo structures. */
-#define PLAYER_NAME_BUFLEN 32
-
-typedef struct {
-    Board board;
-    Move* moves;
-    /** optional name of the white player */
-    char wname[PLAYER_NAME_BUFLEN];
-    /** optional name of the black player */
-    char bname[PLAYER_NAME_BUFLEN];
-    /** capacity of the move array */
-    unsigned movecapacity;
-    /** number of (half-)moves (counting BOTH colors) */
-    unsigned int movecount;
-    /** a premove that shall be evaluated next time it's our turn */
-    char premove[8];
-    bool checkmate;
-    bool stalemate;
-    bool remis;
-    bool wresign;
-    bool bresign;
-    /** this flag is only supposed to be set when the opponent disconnects */
-    bool ragequit;
-    bool review;
-} GameState;
-
-
-#define is_game_running(gamestate) !((gamestate)->checkmate || \
-    (gamestate)->wresign || (gamestate)->bresign || \
-    (gamestate)->stalemate || (gamestate)->remis || (gamestate)->review)
-
-#define last_move(gamestate) \
-    ((gamestate)->moves[(gamestate)->movecount-1])
-
-/**
- * Initializes a game state and prepares the chess board.
- * @param gamestate the game state to initialize
- */
-void gamestate_init(GameState *gamestate);
-
-/**
- * Cleans up a game state and frees the memory for the movement list.
- * @param gamestate the game state to clean up
- */
-void gamestate_cleanup(GameState *gamestate);
-
-#endif

mercurial