Implement basic frontend-engine interaction
Use a Flask-based Python server as an adapter to the engine's stdin-stdout inferface.
This commit is contained in:
@@ -1,42 +1,24 @@
|
||||
import * as visuals from "./visuals.js";
|
||||
|
||||
function setupBoard() {
|
||||
let pawns = [];
|
||||
for (let x of "abcdefgh") {
|
||||
pawns.push(
|
||||
new Piece("pawn", "black", `${x}7`),
|
||||
new Piece("pawn", "white", `${x}2`)
|
||||
);
|
||||
}
|
||||
return new Configuration([
|
||||
new Piece("rook", "black", "a8"),
|
||||
new Piece("rook", "black", "h8"),
|
||||
new Piece("knight", "black", "b8"),
|
||||
new Piece("knight", "black", "g8"),
|
||||
new Piece("bishop", "black", "c8"),
|
||||
new Piece("bishop", "black", "f8"),
|
||||
new Piece("queen", "black", "d8"),
|
||||
new Piece("king", "black", "e8"),
|
||||
|
||||
...pawns,
|
||||
|
||||
new Piece("rook", "white", "a1"),
|
||||
new Piece("rook", "white", "h1"),
|
||||
new Piece("knight", "white", "b1"),
|
||||
new Piece("knight", "white", "g1"),
|
||||
new Piece("bishop", "white", "c1"),
|
||||
new Piece("bishop", "white", "f1"),
|
||||
new Piece("queen", "white", "d1"),
|
||||
new Piece("king", "white", "e1"),
|
||||
]);
|
||||
function get_json(url) {
|
||||
var request = new XMLHttpRequest();
|
||||
request.open("get", url, false);
|
||||
request.send(null);
|
||||
return JSON.parse(request.responseText);
|
||||
}
|
||||
|
||||
class Backend {
|
||||
constructor() {
|
||||
this.config = setupBoard();
|
||||
this.config = this.getConfig();
|
||||
}
|
||||
getConfig() {
|
||||
return this.config.clone();
|
||||
return new Configuration(
|
||||
get_json("http://localhost:3000/get_state/").map((p) => {
|
||||
let piece = new Piece();
|
||||
Object.assign(piece, p);
|
||||
return piece;
|
||||
})
|
||||
);
|
||||
}
|
||||
makeMove(move) {
|
||||
this.config = this.config.makeMove(move);
|
||||
|
||||
Reference in New Issue
Block a user