-var grpc = require('grpc');
+var grpc = require('@grpc/grpc-js');
var Chess = require('../www/js/chess.js').Chess;
var PROTO_PATH = __dirname + '/hashprobe.proto';
-var hashprobe_proto = grpc.load(PROTO_PATH).hashprobe;
+var protoLoader = require('@grpc/proto-loader');
+var packageDefinition = protoLoader.loadSync(
+ PROTO_PATH,
+ {keepCase: true,
+ longs: String,
+ enums: String,
+ defaults: true,
+ oneofs: true
+ });
+var hashprobe_proto = grpc.loadPackageDefinition(packageDefinition).hashprobe;
var board = new Chess();
var root = translate_line(board, fen, probe_response['root']);
for (var i = 0; i < probe_response['line'].length; ++i) {
var line = probe_response['line'][i];
- var uci_move = line['move']['from_sq'] + line['move']['to_sq'] + line['move']['promotion'];
- lines[uci_move] = translate_line(board, fen, line);
+ var pretty_move = line['move']['pretty'];
+ lines[pretty_move] = translate_line(board, fen, line);
}
var text = JSON.stringify({
for (var i = 0; i < probe_responses.length; ++i) {
for (var j = 0; j < probe_responses[i]['line'].length; ++j) {
var line = probe_responses[i]['line'][j];
- var uci_move = line['move']['from_sq'] + line['move']['to_sq'] + line['move']['promotion'];
+ var pretty_move = line['move']['pretty'];
- if (!moves[uci_move]) {
- moves[uci_move] = line;
+ if (!moves[pretty_move]) {
+ moves[pretty_move] = line;
} else {
- moves[uci_move] = reconcile_moves(line, moves[uci_move]);
+ moves[pretty_move] = reconcile_moves(line, moves[pretty_move]);
}
}
}
var translate_line = function(board, fen, line) {
var r = {};
- board.load(fen);
- var toplay = board.turn();
-
- if (line['move'] && line['move']['from_sq']) {
- var promo = line['move']['promotion'];
- if (promo) {
- r['move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'], promotion: promo.toLowerCase() }).san;
- } else {
- r['move'] = board.move({ from: line['move']['from_sq'], to: line['move']['to_sq'] }).san;
- }
+
+ if (line['move'] && line['move']['pretty']) {
+ r['move'] = line['move']['pretty']
} else {
r['move'] = '';
}
}
for (var j = 0; j < line['pv'].length; ++j) {
var move = line['pv'][j];
- var decoded = board.move({ from: move['from_sq'], to: move['to_sq'], promotion: move['promotion'] });
- if (decoded === null) {
- break;
- }
- pv.push(decoded.san);
+ pv.push(move['pretty']);
}
r['pv'] = pv;