From 23d20f71484ac11132cbb95d3dab406f9d52c282 Mon Sep 17 00:00:00 2001 From: Zhu Liang Date: Sun, 24 Apr 2022 00:18:03 +0800 Subject: [PATCH 1/2] feat(kore): ts interpreter fixes --- .../envs/kore_fleets/starter_bots/ts/interpreter.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts b/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts index 43fe67d0..6ea34ec1 100644 --- a/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts +++ b/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts @@ -147,13 +147,14 @@ function boardTick(board:Board, agents: Agent[]) { const playerKore = player.kore; const shipyards = player.shipyards; const fleets = player.fleets; + const shipsInShipards = shipyards.reduce((acc, shipyard) => acc + shipyard.shipCount, 0); const canSpawn = shipyards.length > 0 && playerKore >= board.configuration.spawnCost; if(agent.status === 'ACTIVE' && shipyards.length === 0 && fleets.length === 0) { agent.status = 'DONE'; agent.reward = board.step - board.configuration.episodeSteps - 1; } - if(agent.status === 'ACTIVE' && playerKore === 0 && fleets.length === 0 && !canSpawn) { + if(agent.status === 'ACTIVE' && shipsInShipards === 0 && fleets.length === 0 && !canSpawn) { agent.status = 'DONE'; agent.reward = board.step - board.configuration.episodeSteps - 1; } @@ -230,7 +231,7 @@ async function stepAgent(episodes: number, agentsNames: string[], callback: Func // rotate the board to the agent's perspective // and assign agent action to game board gameBoard.currentPlayerId = i; - agent.tickFunc(gameBoard); + await agent.tickFunc(gameBoard); gameBoard.currentPlayer.shipyards.forEach(shipyard => { // console.log(gameBoard.currentPlayerId, shipyard.position.toString(), shipyard.nextAction); From 08779e7cc7a6209a934bcb528f44010a2600bae4 Mon Sep 17 00:00:00 2001 From: Zhu Liang Date: Tue, 3 May 2022 15:10:23 +0800 Subject: [PATCH 2/2] fix(ts): fix kore regen and collection rate --- .../envs/kore_fleets/starter_bots/ts/kore/Board.ts | 2 +- .../envs/kore_fleets/starter_bots/ts/kore/Fleet.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts b/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts index 2dbd036a..04678cf5 100644 --- a/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts +++ b/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts @@ -496,7 +496,7 @@ export class Board { for (let cell of board.cells) { if (cell.fleetId === "" && cell.shipyardId === "") { if (cell.kore < configuration.maxRegenCellKore) { - const nextKore = Board.roundToThreePlaces(cell.kore * (1 + configuration.regenRate) * 1000.0) / 1000.0; + const nextKore = Board.roundToThreePlaces(cell.kore * (1 + configuration.regenRate)); cell.kore = nextKore; } } diff --git a/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts b/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts index 48502b11..6c3051cf 100644 --- a/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts +++ b/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts @@ -39,7 +39,7 @@ export class Fleet { } public get collectionRate(): number { - return Math.min(Math.log(this.shipCount) / 10, .99); + return Math.min(Math.log(this.shipCount) / 20, .99); } /**