kaggle-environments 1.16.8__py2.py3-none-any.whl → 1.16.10__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kaggle-environments might be problematic. Click here for more details.

Files changed (60) hide show
  1. kaggle_environments/__init__.py +1 -1
  2. kaggle_environments/agent.py +1 -1
  3. kaggle_environments/envs/chess/chess.js +10 -5
  4. kaggle_environments/envs/chess/chess.json +7 -2
  5. kaggle_environments/envs/chess/chess.py +12 -5
  6. kaggle_environments/envs/connectx/connectx.ipynb +3183 -0
  7. kaggle_environments/envs/connectx/connectx.py +1 -1
  8. kaggle_environments/envs/football/football.ipynb +75 -0
  9. kaggle_environments/envs/halite/halite.ipynb +44736 -0
  10. kaggle_environments/envs/halite/halite.py +1 -1
  11. kaggle_environments/envs/hungry_geese/hungry_geese.py +1 -1
  12. kaggle_environments/envs/kore_fleets/kore_fleets.ipynb +112 -0
  13. kaggle_environments/envs/kore_fleets/kore_fleets.py +1 -1
  14. kaggle_environments/envs/kore_fleets/starter_bots/java/Bot.java +54 -0
  15. kaggle_environments/envs/kore_fleets/starter_bots/java/README.md +26 -0
  16. kaggle_environments/envs/kore_fleets/starter_bots/java/jars/hamcrest-core-1.3.jar +0 -0
  17. kaggle_environments/envs/kore_fleets/starter_bots/java/jars/junit-4.13.2.jar +0 -0
  18. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Board.java +518 -0
  19. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Cell.java +61 -0
  20. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Configuration.java +24 -0
  21. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Direction.java +166 -0
  22. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Fleet.java +72 -0
  23. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/KoreJson.java +97 -0
  24. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Observation.java +72 -0
  25. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Pair.java +13 -0
  26. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Player.java +68 -0
  27. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Point.java +65 -0
  28. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/Shipyard.java +70 -0
  29. kaggle_environments/envs/kore_fleets/starter_bots/java/kore/ShipyardAction.java +59 -0
  30. kaggle_environments/envs/kore_fleets/starter_bots/java/test/BoardTest.java +567 -0
  31. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ConfigurationTest.java +25 -0
  32. kaggle_environments/envs/kore_fleets/starter_bots/java/test/KoreJsonTest.java +62 -0
  33. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ObservationTest.java +46 -0
  34. kaggle_environments/envs/kore_fleets/starter_bots/java/test/PointTest.java +21 -0
  35. kaggle_environments/envs/kore_fleets/starter_bots/java/test/ShipyardTest.java +22 -0
  36. kaggle_environments/envs/kore_fleets/starter_bots/ts/README.md +55 -0
  37. kaggle_environments/envs/llm_20_questions/llm_20_questions.py +1 -1
  38. kaggle_environments/envs/lux_ai_2021/README.md +3 -0
  39. kaggle_environments/envs/lux_ai_2021/dimensions/754.js.LICENSE.txt +296 -0
  40. kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/simple.tar.gz +0 -0
  41. kaggle_environments/envs/lux_ai_2021/testing.md +23 -0
  42. kaggle_environments/envs/lux_ai_2021/todo.md.og +18 -0
  43. kaggle_environments/envs/lux_ai_s2/.gitignore +1 -0
  44. kaggle_environments/envs/lux_ai_s2/README.md +21 -0
  45. kaggle_environments/envs/lux_ai_s2/luxai_s2/.DS_Store +0 -0
  46. kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/.DS_Store +0 -0
  47. kaggle_environments/envs/lux_ai_s3/README.md +21 -0
  48. kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +1 -1
  49. kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +15 -8
  50. kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +6 -29
  51. kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +0 -17
  52. kaggle_environments/envs/tictactoe/tictactoe.ipynb +1393 -0
  53. kaggle_environments/envs/tictactoe/tictactoe.py +1 -1
  54. kaggle_environments/helpers.py +3 -3
  55. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/METADATA +2 -2
  56. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/RECORD +60 -22
  57. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/WHEEL +1 -1
  58. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/LICENSE +0 -0
  59. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/entry_points.txt +0 -0
  60. {kaggle_environments-1.16.8.dist-info → kaggle_environments-1.16.10.dist-info}/top_level.txt +0 -0
@@ -20,7 +20,7 @@ from .core import *
20
20
  from .main import http_request
21
21
  from . import errors
22
22
 
23
- __version__ = "1.16.8"
23
+ __version__ = "1.16.10"
24
24
 
25
25
  __all__ = ["Agent", "environments", "errors", "evaluate", "http_request",
26
26
  "make", "register", "utils", "__version__",
@@ -123,7 +123,7 @@ def build_agent(raw, builtin_agents, environment_name):
123
123
  raw_agent = raw
124
124
  if os.path.exists(raw):
125
125
  raw_agent = read_file(raw, raw)
126
- elif (len(raw) < 100 and ("/" in raw or "\\" in raw)) or raw < 20:
126
+ elif (len(raw) < 100 and ("/" in raw or "\\" in raw)) or len(raw) < 20:
127
127
  raise FileNotFoundError("Could not find : " + raw)
128
128
 
129
129
  # Attempt to execute the last callable or just return the string.
@@ -47,11 +47,11 @@ async function renderer(context) {
47
47
  let downloadButton = parent.querySelector("#copy-pgn");
48
48
  if (!downloadButton) {
49
49
  try {
50
- const board = environment.steps[step][0].observation.board;
50
+ const board = environment.steps[0][0].observation.board;
51
51
  const info = environment.info;
52
52
  const agent1 = info?.TeamNames?.[0] || "Agent 1";
53
53
  const agent2 = info?.TeamNames?.[1] || "Agent 2";
54
- const game = new Chess(board);
54
+ const game = new Chess();
55
55
  let result = environment.rewards;
56
56
  if (result.some((r) => r === undefined || r === null)) {
57
57
  result = result.map((r) => (r === undefined || r === null ? 0 : 1));
@@ -64,8 +64,6 @@ async function renderer(context) {
64
64
  agent1,
65
65
  "Black",
66
66
  agent2,
67
- "Result",
68
- result.join("-")
69
67
  );
70
68
 
71
69
  const openingIdx = OPENINGS.indexOf(board);
@@ -89,7 +87,14 @@ async function renderer(context) {
89
87
  }
90
88
  }
91
89
 
92
- const pgn = game.pgn();
90
+ let pgn = game.pgn();
91
+
92
+ // for some reason the pgn doesn't calculate the result correctly
93
+ // until we can fix this bug, remove it.
94
+ // b/383366972
95
+ if (pgn.indexOf(" 0-0") !== -1) {
96
+ pgn = pgn.split(" 0-0")[0]
97
+ }
93
98
 
94
99
  downloadButton = document.createElement("button");
95
100
  downloadButton.id = "copy-pgn";
@@ -21,8 +21,8 @@
21
21
  }
22
22
  },
23
23
  "reward": {
24
- "description": "-1 = Lost, 0 = Draw/Ongoing, 1 = Won",
25
- "enum": [-1, 0, 1],
24
+ "description": "0 = Lost/Ongoing, 0.5 = Draw, 1 = Won",
25
+ "enum": [0, 0.5, 1],
26
26
  "default": 0
27
27
  },
28
28
  "observation": {
@@ -42,6 +42,11 @@
42
42
  "type": "number",
43
43
  "default": 10
44
44
  },
45
+ "lastMove": {
46
+ "description": "Previous move to get to this position.",
47
+ "type": "string",
48
+ "default": ""
49
+ },
45
50
  "remainingOverageTime": 10
46
51
  },
47
52
  "action": {
@@ -166,6 +166,7 @@ def square_str_to_int(square_str):
166
166
 
167
167
  seen_positions = defaultdict(int)
168
168
 
169
+
169
170
  def interpreter(state, env):
170
171
  global seen_positions
171
172
  if env.done:
@@ -204,8 +205,10 @@ def interpreter(state, env):
204
205
  inactive.status = DONE
205
206
  return state
206
207
  fen = game.get_fen()
207
- board_str = fen.split(" ", maxsplit=1)[0]
208
- seen_positions[board_str] += 1
208
+ # board, player turn, en passant, and castling status form board status
209
+ # for 3-fold draws
210
+ board_position = ' '.join(fen.split()[:4])
211
+ seen_positions[board_position] += 1
209
212
 
210
213
  # Update the board in the observation
211
214
  state[0].observation.board = fen
@@ -215,15 +218,19 @@ def interpreter(state, env):
215
218
  state[0].observation.opponentRemainingOverageTime = state[1].observation.remainingOverageTime
216
219
  state[1].observation.opponentRemainingOverageTime = state[0].observation.remainingOverageTime
217
220
 
221
+ # Update last move
222
+ state[0].observation.lastMove = action
223
+ state[1].observation.lastMove = action
224
+
218
225
  pawn_or_capture_move_count = int(
219
226
  fen.split(" ")[4]) # fen keeps track of this
220
227
  # Check for game end conditions
221
228
  if pawn_or_capture_move_count == 100 or is_insufficient_material(
222
- game.board) or seen_positions[board_str] >= 3 or game.status == Game.STALEMATE:
229
+ game.board) or seen_positions[board_position] >= 3 or game.status == Game.STALEMATE:
223
230
  active.reward += .5
224
231
  inactive.reward += .5
225
232
  active.status = DONE
226
- inactive.status = DONE
233
+ inactive.status = DONE
227
234
  elif game.status == Game.CHECKMATE:
228
235
  active.reward += 1
229
236
  active.status = DONE
@@ -249,5 +256,5 @@ with open(jsonpath) as f:
249
256
 
250
257
  def html_renderer():
251
258
  jspath = path.abspath(path.join(path.dirname(__file__), "chess.js"))
252
- with open(jspath) as g:
259
+ with open(jspath, encoding="utf-8") as g:
253
260
  return g.read()