Skip to content

Commit

Permalink
Display 5 top moves with computer analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
Tellmarch committed Apr 24, 2024
1 parent e29dd1e commit 47b4561
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class EngineConfiguration {
"MorePreciseMatePv value false"}, 1);
public static final EngineConfiguration INSIGHTS_ENGINE = new EngineConfiguration("/home/jean/shogi/engines" +
"/YaneuraOu/source/", "./YaneuraOu-by-gcc",
new String[]{"setoption name MultiPV value 3"}, 3);
new String[]{"setoption name MultiPV value 5"}, 5);

private final File path;
private final String command;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ public enum Status {
private final USIConnector usiConnector;
private volatile boolean shutdown = false;

private final Map<String, List<PositionEvaluation>> kifuEvaluations = new ConcurrentHashMap<>();
private final Map<String, GameInsights> insights = new ConcurrentHashMap<>();
private final Map<String, Status> kifuStatus = new ConcurrentHashMap<>();
private final Map<String, List<PositionEvaluation>> kifuEvaluations = new ConcurrentHashMap<>(); // key: kifu USF
private final Map<String, GameInsights> insights = new ConcurrentHashMap<>(); // key: kifu USF
private final Map<String, Status> kifuStatus = new ConcurrentHashMap<>(); // key: kifu USF

public QueuedKifuAnalyzer(final EngineConfiguration engineConfiguration) {
usiConnector = new USIConnector(engineConfiguration);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,13 +250,13 @@ public void onPositionEvaluationEvent(final PositionEvaluationEvent event) {

private void showEvaluation() {
if (evaluation != null) {
PrincipalVariationDetails[] principalVariationHistory = evaluation.getPrincipalVariationHistory();
PrincipalVariationDetails[] topPrincipalVariations = evaluation.getTopPrincipalVariations();
TsumeAnalysisDetails tsumeAnalysis = evaluation.getTsumeAnalysis();
if (principalVariationHistory != null) {
table.setRowCount(principalVariationHistory.length);
ArrayList<PrincipalVariationDetails> list = new ArrayList<>(principalVariationHistory.length);
for (int i = principalVariationHistory.length - 1; i >= 0; i--) {
list.add(principalVariationHistory[i]);
if (topPrincipalVariations != null) {
table.setRowCount(topPrincipalVariations.length);
ArrayList<PrincipalVariationDetails> list = new ArrayList<>(topPrincipalVariations.length);
for (PrincipalVariationDetails topPrincipalVariation : topPrincipalVariations) {
list.add(topPrincipalVariation);
}
table.setRowData(0, list);
} else if (tsumeAnalysis != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public class KifuServiceImpl extends RemoteServiceServlet implements KifuService

private final QueuedTsumeSolver queuedTsumeSolver = new QueuedTsumeSolver(EngineConfiguration.TSUME_ENGINE);
private final TsumeEscapeSolver tsumeEscapeSolver = new TsumeEscapeSolver(queuedTsumeSolver);
private final QueuedKifuAnalyzer queuedKifuAnalyzer = new QueuedKifuAnalyzer(EngineConfiguration.NORMAL_ENGINE);
private final QueuedKifuAnalyzer queuedKifuAnalyzer = new QueuedKifuAnalyzer(EngineConfiguration.INSIGHTS_ENGINE);

private final KifuSearchManager kifuSearchManager = new KifuSearchManager();

Expand Down Expand Up @@ -422,6 +422,8 @@ private PositionEvaluationDetails convertPositionEvaluation(final PositionEvalua
details.setPonderMove(evaluation.getPonderMove());
details.setPrincipalVariationHistory(evaluation.getPrincipalVariationsHistory().stream().map(
this::convertPrincipalVariation).toArray(PrincipalVariationDetails[]::new));
details.setTopPrincipalVariations(evaluation.getMultiVariations().getVariations().stream().map(
this::convertPrincipalVariation).toArray(PrincipalVariationDetails[]::new));
return details;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public class PositionEvaluationDetails implements Serializable {

private String sfen;
private PrincipalVariationDetails[] principalVariationHistory; // Index 0 is oldest (least accurate) eval
private PrincipalVariationDetails[] topPrincipalVariations; // Index 0 is the best line
private String bestMove;
private String ponderMove;
private TsumeAnalysisDetails tsumeAnalysis;
Expand All @@ -30,6 +31,14 @@ public void setPrincipalVariationHistory(PrincipalVariationDetails[] principalVa
this.principalVariationHistory = principalVariationHistory;
}

public PrincipalVariationDetails[] getTopPrincipalVariations() {
return topPrincipalVariations;
}

public void setTopPrincipalVariations(final PrincipalVariationDetails[] topPrincipalVariations) {
this.topPrincipalVariations = topPrincipalVariations;
}

public String getBestMove() {
return bestMove;
}
Expand Down Expand Up @@ -59,6 +68,7 @@ public String toString() {
return "PositionEvaluationDetails{" +
"sfen='" + sfen + '\'' +
", principalVariationHistory=" + Arrays.toString(principalVariationHistory) +
", topPrincipalVariations=" + Arrays.toString(topPrincipalVariations) +
", bestMove='" + bestMove + '\'' +
", ponderMove='" + ponderMove + '\'' +
", tsumeAnalysis=" + tsumeAnalysis +
Expand Down

0 comments on commit 47b4561

Please sign in to comment.