mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-05-07 16:17:49 +02:00
IPVGO: Add new analysis method to set a custom testing board state (#2029)
This commit is contained in:
committed by
GitHub
parent
de8c8691c2
commit
17ffabdfa5
@@ -54,6 +54,7 @@ export type BoardState = {
|
||||
passCount: number;
|
||||
cheatCount: number;
|
||||
cheatCountForWhite: number;
|
||||
komiOverride: number | null;
|
||||
};
|
||||
|
||||
export type PointState = {
|
||||
|
||||
@@ -860,8 +860,11 @@ function getMoveOptions(boardState: BoardState, player: GoColor, rng: number, sm
|
||||
/**
|
||||
* Gets the starting score for white.
|
||||
*/
|
||||
export function getKomi(opponent: GoOpponent) {
|
||||
return opponentDetails[opponent].komi;
|
||||
export function getKomi(state: BoardState): number {
|
||||
if (state.komiOverride !== null) {
|
||||
return state.komiOverride;
|
||||
}
|
||||
return opponentDetails[state.ai].komi;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,7 +17,7 @@ import { Go, GoEvents } from "../Go";
|
||||
* fully surrounded by their pieces
|
||||
*/
|
||||
export function getScore(boardState: BoardState) {
|
||||
const komi = getKomi(boardState.ai) ?? 6.5;
|
||||
const komi = getKomi(boardState) ?? 6.5;
|
||||
const whitePieces = getColoredPieceCount(boardState, GoColor.white);
|
||||
const blackPieces = getColoredPieceCount(boardState, GoColor.black);
|
||||
const territoryScores = getTerritoryScores(boardState.board);
|
||||
|
||||
@@ -35,6 +35,7 @@ export function getNewBoardState(
|
||||
passCount: 0,
|
||||
cheatCount: 0,
|
||||
cheatCountForWhite: 0,
|
||||
komiOverride: null,
|
||||
board: Array.from({ length: boardSize }, (_, x) =>
|
||||
Array.from({ length: boardSize }, (_, y) =>
|
||||
!boardToCopy || boardToCopy?.[x]?.[y]
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Board, BoardState, OpponentStats, Play, SimpleBoard, SimpleOpponentStat
|
||||
|
||||
import { Player } from "@player";
|
||||
import { AugmentationName, GoColor, GoOpponent, GoPlayType, GoValidity } from "@enums";
|
||||
import { Go } from "../Go";
|
||||
import { Go, GoEvents } from "../Go";
|
||||
import {
|
||||
getNewBoardState,
|
||||
getNewBoardStateFromSimpleBoard,
|
||||
@@ -263,6 +263,20 @@ export function getControlledEmptyNodes(_board?: Board) {
|
||||
);
|
||||
}
|
||||
|
||||
export function setTestingBoardState(board: Board, komi?: number) {
|
||||
resetBoardState(
|
||||
() => {},
|
||||
() => {},
|
||||
GoOpponent.none,
|
||||
board.length,
|
||||
);
|
||||
Go.currentGame.board = board;
|
||||
if (komi != undefined) {
|
||||
Go.currentGame.komiOverride = komi;
|
||||
}
|
||||
GoEvents.emit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all previous board states as SimpleBoards
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user