From 40777a87851d7fee7b6453c5bb6a75c596559e24 Mon Sep 17 00:00:00 2001 From: Fathzer Date: Thu, 25 Jan 2024 19:55:07 +0100 Subject: [PATCH] Prepare work to better engine management (time, option and UCI support) --- .../java/com/fathzer/jchess/bot/Engine.java | 11 ++++++++ .../java/com/fathzer/jchess/bot/Move.java | 5 ++++ .../java/com/fathzer/jchess/bot/Option.java | 28 +++++++++++++++++++ .../fathzer/jchess/bot/PlayParameters.java | 5 ++++ 4 files changed, 49 insertions(+) create mode 100644 src/main/java/com/fathzer/jchess/bot/Engine.java create mode 100644 src/main/java/com/fathzer/jchess/bot/Move.java create mode 100644 src/main/java/com/fathzer/jchess/bot/Option.java create mode 100644 src/main/java/com/fathzer/jchess/bot/PlayParameters.java diff --git a/src/main/java/com/fathzer/jchess/bot/Engine.java b/src/main/java/com/fathzer/jchess/bot/Engine.java new file mode 100644 index 0000000..e1c70ec --- /dev/null +++ b/src/main/java/com/fathzer/jchess/bot/Engine.java @@ -0,0 +1,11 @@ +package com.fathzer.jchess.bot; + +import java.util.List; + +public interface Engine { + String getName(); + List> getOptions(); + void newGame(); + void setPosition(String startpos, List moves); + Move play(PlayParameters params); +} diff --git a/src/main/java/com/fathzer/jchess/bot/Move.java b/src/main/java/com/fathzer/jchess/bot/Move.java new file mode 100644 index 0000000..e883879 --- /dev/null +++ b/src/main/java/com/fathzer/jchess/bot/Move.java @@ -0,0 +1,5 @@ +package com.fathzer.jchess.bot; + +public interface Move { + +} diff --git a/src/main/java/com/fathzer/jchess/bot/Option.java b/src/main/java/com/fathzer/jchess/bot/Option.java new file mode 100644 index 0000000..82113c0 --- /dev/null +++ b/src/main/java/com/fathzer/jchess/bot/Option.java @@ -0,0 +1,28 @@ +package com.fathzer.jchess.bot; + +public abstract class Option { + enum Type { + CHECK, SPIN, COMBO, BUTTON, STRING + } + + private final String name; + private T defaultValue; + + Option(String name, T defaultValue) { + if (name==null || defaultValue==null) { + throw new IllegalArgumentException(); + } + this.name = name; + this.defaultValue = defaultValue; + } + + public String getName() { + return name; + } + + abstract Type getType(); + + public T getDefaultValue() { + return defaultValue; + } +} diff --git a/src/main/java/com/fathzer/jchess/bot/PlayParameters.java b/src/main/java/com/fathzer/jchess/bot/PlayParameters.java new file mode 100644 index 0000000..747c899 --- /dev/null +++ b/src/main/java/com/fathzer/jchess/bot/PlayParameters.java @@ -0,0 +1,5 @@ +package com.fathzer.jchess.bot; + +public interface PlayParameters { + +}