Compare commits
2 Commits
db63b54764
...
ce19f8793a
| Author | SHA1 | Date |
|---|---|---|
|
|
ce19f8793a | |
|
|
ec306fe6ad |
|
|
@ -177,8 +177,8 @@ void setup() {
|
|||
board_init();
|
||||
Serial.begin(115200);
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
perft_test();
|
||||
bench();
|
||||
//perft_test();
|
||||
//bench();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
|
|
|||
35
Uci.h
35
Uci.h
|
|
@ -1,11 +1,13 @@
|
|||
#ifndef __UCI_H_INC
|
||||
#define __UCI_H_INC
|
||||
|
||||
#define PS2(s) ([]{ static const char c[] PROGMEM = (s); return &c[0]; }())
|
||||
|
||||
typedef void uci_return;
|
||||
typedef uci_return (*uci_handler)();
|
||||
|
||||
struct uci_cmd {
|
||||
char* command;
|
||||
const char* command;
|
||||
uci_handler handler;
|
||||
};
|
||||
|
||||
|
|
@ -22,27 +24,28 @@ uci_return uci_unknown() {
|
|||
}
|
||||
|
||||
const uci_cmd UCI_COMMANDS[] = {
|
||||
{"uci", &uci_hello},
|
||||
{"debug", &uci_unimpl},
|
||||
{"isready", &uci_unimpl},
|
||||
{"setoption", &uci_unimpl},
|
||||
{"ucinewgame", &uci_unimpl},
|
||||
{"position", &uci_unimpl},
|
||||
{"go", &uci_unimpl},
|
||||
{"stop", &uci_unimpl},
|
||||
{"ponderhit", &uci_unimpl},
|
||||
{"quit", &uci_unimpl},
|
||||
{PS2("uci"), &uci_hello},
|
||||
{PS2("debug"), &uci_unimpl},
|
||||
{PS2("isready"), &uci_unimpl},
|
||||
{PS2("setoption"), &uci_unimpl},
|
||||
{PS2("ucinewgame"), &uci_unimpl},
|
||||
{PS2("position"), &uci_unimpl},
|
||||
{PS2("go"), &uci_unimpl},
|
||||
{PS2("stop"), &uci_unimpl},
|
||||
{PS2("ponderhit"), &uci_unimpl},
|
||||
{PS2("quit"), &uci_unimpl},
|
||||
};
|
||||
|
||||
const uci_cmd UCI_INVALID = {"", &uci_unknown};
|
||||
const uci_cmd UCI_INVALID = {PS2(""), &uci_unknown};
|
||||
|
||||
uci_cmd get_uci_command(char* command) {
|
||||
uci_cmd get_uci_command(const char* command) {
|
||||
size_t command_num = sizeof(UCI_COMMANDS) / sizeof(uci_cmd);
|
||||
for(int i = 0; i < command_num; i++) {
|
||||
int ci = 0;
|
||||
for(size_t i = 0; i < command_num; i++) {
|
||||
size_t ci = 0;
|
||||
uci_cmd to_try = UCI_COMMANDS[i];
|
||||
while(true) {
|
||||
if(to_try.command[ci] != command[ci]) {
|
||||
char reference = pgm_read_byte_near(to_try.command + ci);
|
||||
if(reference != command[ci]) {
|
||||
break;
|
||||
}
|
||||
if(command[ci] == '\0') {
|
||||
|
|
|
|||
Loading…
Reference in New Issue