⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 square.h

📁 超强国际象棋引擎
💻 H
字号:
// square.h

#ifndef SQUARE_H

#define SQUARE_H

// includes

#include "color.h"
#include "util.h"

// macros

#define SQUARE_IS_OK(square)        ((((square)-0x44)&~0x77)==0)
#define SQUARE_MAKE(file,rank)      (((rank)<<4)|(file))
#define SQUARE_FILE(square)         ((square)&0xF)
#define SQUARE_RANK(square)         ((square)>>4)
#define SQUARE_FROM_64(square)      (square_from_64[square])
#define SQUARE_TO_64(square)        (square_to_64[square])
#define SQUARE_IS_PROMOTE(square)   (square_is_promote[square])
#define SQUARE_EP_DUAL(square)      ((square)^16)
#define SQUARE_COLOUR(square)       (((square)^((square)>>4))&1)
#define SQUARE_FILE_MIRROR(square)  ((square)^0x0F)
#define SQUARE_RANK_MIRROR(square)  ((square)^0xF0)
#define FILE_OPP(file)              ((file)^0xF)
#define RANK_OPP(rank)              ((rank)^0xF)
#define PAWN_RANK(square,color)    (SQUARE_RANK(square)^rank_mask[color])
#define PAWN_PROMOTE(square,color) (promote_rank[color]|((square)&0xF))

// types

typedef int sq_t;

// "constants"

extern const int square_from_64[64];

extern const int rank_mask[2];

extern const int promote_rank[2];

// variables

extern int square_to_64[256];

extern bool square_is_promote[256];

// functions

extern void square_init();
extern int file_from_char(int c);
extern int rank_from_char(int c);
extern int file_to_char(int file);
extern int rank_to_char(int rank);
extern bool square_to_string(int square, char string [], int size);
extern int square_from_string(const char string []);

#endif // !defined SQUARE_H

// end of square.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -