Skip to content

Commit 1adfc61

Browse files
committed
feat: start and end steps (#820)
1 parent 4e38d6d commit 1adfc61

2 files changed

Lines changed: 45 additions & 6 deletions

File tree

kaggle_environments/envs/open_spiel_env/games/go/visualizer/v2/src/transformers/goTransformer.ts

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,33 @@ export const goTransformer = (environment: any): GoStep[] => {
5252
const goReplay = environment as GoReplay;
5353
const goSteps: GoStep[] = [];
5454

55+
const firstStep = goReplay.steps[0];
56+
const extraStepPlayers = [0, 1].map(
57+
(index): GoPlayer => ({
58+
id: index,
59+
name: environment.info.TeamNames[index],
60+
thumbnail: '',
61+
isTurn: false,
62+
actionDisplayText: '',
63+
thoughts: '',
64+
reward: null,
65+
generateReturns: null,
66+
})
67+
);
68+
69+
goSteps.push({
70+
step: goSteps.length,
71+
players: extraStepPlayers,
72+
boardState: parseBoardState(firstStep[0].observation.observationString),
73+
isTerminal: false,
74+
winner: null,
75+
});
76+
5577
for (const step of goReplay.steps) {
5678
if (step.some((p) => p.action?.actionString) === false) continue;
5779

58-
const stepPlayers: GoPlayer[] = step.map((player, index): GoPlayer => {
59-
return {
80+
const stepPlayers: GoPlayer[] = step.map(
81+
(player, index): GoPlayer => ({
6082
id: index,
6183
name: environment.info.TeamNames[index],
6284
thumbnail: '',
@@ -65,17 +87,25 @@ export const goTransformer = (environment: any): GoStep[] => {
6587
thoughts: parseThoughts(player.action),
6688
reward: player.reward,
6789
generateReturns: player.action?.generate_returns ?? null,
68-
};
69-
});
90+
})
91+
);
7092

7193
goSteps.push({
7294
step: goSteps.length,
7395
players: stepPlayers,
7496
boardState: parseBoardState(step[0].observation.observationString),
7597
isTerminal: step[0].observation.isTerminal,
76-
winner: deriveWinner(step),
98+
winner: null,
7799
});
78100
}
79101

102+
goSteps.push({
103+
step: goSteps.length,
104+
players: extraStepPlayers,
105+
boardState: goSteps[goSteps.length - 1].boardState,
106+
isTerminal: goSteps[goSteps.length - 1].isTerminal,
107+
winner: deriveWinner(goReplay.steps[goReplay.steps.length - 1]),
108+
});
109+
80110
return goSteps;
81111
};

kaggle_environments/envs/open_spiel_env/games/go/visualizer/v2/src/utils/getStepLabel.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,16 @@ import { BaseGameStep } from '@kaggle-environments/core';
22

33
export function getStepLabel(step: BaseGameStep) {
44
const player = step.players.find((p) => p.isTurn);
5+
6+
if (player === undefined && step.step === 0) {
7+
const black = step.players.at(0)?.name ?? 'Black';
8+
const white = step.players.at(1)?.name ?? 'White';
9+
return `${black} vs. ${white}`;
10+
}
11+
12+
if (player === undefined) return '';
13+
514
const color = player?.id ? 'white' : 'black';
615
const move = player?.actionDisplayText?.toUpperCase() ?? '';
7-
return `Plays a ${color} stone on ${move}`;
16+
return `Played the ${color} stone on ${move}`;
817
}

0 commit comments

Comments
 (0)