bitburner-src/markdown/bitburner.go.md
Michael Ficocelli b53c35126e
IPVGO: Provide API for getting game stats per opponent ()
Give users access to wins, losses, stat bonuses, and favor gained
2024-05-10 01:57:03 -07:00

4.4 KiB

Home > bitburner > Go

Go interface

IPvGO api

Signature:

export interface Go 

Properties

Property Modifiers Type Description
analysis { getValidMoves(): boolean[][]; getChains(): (number | null)[][]; getLiberties(): number[][]; getControlledEmptyNodes(): string[]; getStats(): Partial<Record<GoOpponent, SimpleOpponentStats>>; } Tools to analyze the IPvGO subnet.
cheat { getCheatSuccessChance(): number; removeRouter( x: number, y: number, ): Promise<{ type: "move" | "pass" | "gameOver"; x: number | null; y: number | null; }>; playTwoMoves( x1: number, y1: number, x2: number, y2: number, ): Promise<{ type: "move" | "pass" | "gameOver"; x: number | null; y: number | null; }>; repairOfflineNode( x: number, y: number, ): Promise<{ type: "move" | "pass" | "gameOver"; x: number | null; y: number | null; }>; destroyNode( x: number, y: number, ): Promise<{ type: "move" | "pass" | "gameOver"; x: number | null; y: number | null; }>; } Illicit and dangerous IPvGO tools. Not for the faint of heart. Requires Bitnode 14.2 to use.

Methods

Method Description
getBoardState()

Retrieves a simplified version of the board state. "X" represents black pieces, "O" white, and "." empty points. "#" are dead nodes that are not part of the subnet. (They are not territory nor open nodes.)

For example, a 5x5 board might look like this:

[
"XX.O.",
"X..OO",
".XO..",
"XXO.#",
".XO.#",
]

Each string represents a vertical column on the board, and each character in the string represents a point.

Traditional notation for Go is e.g. "B,1" referring to second ("B") column, first rank. This is the equivalent of index [1][0].

Note that the [0][0] point is shown on the bottom-left on the visual board (as is traditional), and each string represents a vertical column on the board. In other words, the printed example above can be understood to be rotated 90 degrees clockwise compared to the board UI as shown in the IPvGO subnet tab.

getCurrentPlayer() Returns the color of the current player, or 'None' if the game is over.
getGameState() Gets the status of the current game. Shows the current player, current score, and the previous move coordinates. Previous move coordinates will be [-1, -1] for a pass, or if there are no prior moves.
getOpponent() Returns the name of the opponent faction in the current subnet.
makeMove(x, y) Make a move on the IPvGO subnet gameboard, and await the opponent's response. x:0 y:0 represents the bottom-left corner of the board in the UI.
opponentNextTurn(logOpponentMove) Returns a promise that resolves with the success or failure state of your last move, and the AI's response, if applicable. x:0 y:0 represents the bottom-left corner of the board in the UI.
passTurn()

Pass the player's turn rather than making a move, and await the opponent's response. This ends the game if the opponent passed on the previous turn, or if the opponent passes on their following turn.

This can also be used if you pick up the game in a state where the opponent needs to play next. For example: if BitBurner was closed while waiting for the opponent to make a move, you may need to call passTurn() to get them to play their move on game start.

resetBoardState(opponent, boardSize)

Gets new IPvGO subnet with the specified size owned by the listed faction, ready for the player to make a move. This will reset your win streak if the current game is not complete and you have already made moves.

Note that some factions will have a few routers on the subnet at this state.

opponent is "Netburners" or "Slum Snakes" or "The Black Hand" or "Tetrads" or "Daedalus" or "Illuminati" or "????????????",