kaggle-environments 1.17.9__tar.gz → 1.17.11__tar.gz

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 (239) hide show
  1. {kaggle_environments-1.17.9/kaggle_environments.egg-info → kaggle_environments-1.17.11}/PKG-INFO +1 -1
  2. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/__init__.py +1 -1
  3. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/agent.py +2 -2
  4. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/core.py +2 -2
  5. kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/chess/chess.js +438 -0
  6. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/static/player.html +72 -61
  7. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11/kaggle_environments.egg-info}/PKG-INFO +1 -1
  8. kaggle_environments-1.17.9/kaggle_environments/envs/open_spiel/games/chess/chess.js +0 -301
  9. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/LICENSE +0 -0
  10. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/MANIFEST.in +0 -0
  11. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/README.md +0 -0
  12. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/api.py +0 -0
  13. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/chess/chess.js +0 -0
  14. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/chess/chess.json +0 -0
  15. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/chess/chess.py +0 -0
  16. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/chess/test_chess.py +0 -0
  17. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/connectx/connectx.js +0 -0
  18. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/connectx/connectx.json +0 -0
  19. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/connectx/connectx.py +0 -0
  20. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/connectx/test_connectx.py +0 -0
  21. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/football/football.json +0 -0
  22. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/football/football.py +0 -0
  23. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/football/helpers.py +0 -0
  24. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/football/test_football.py +0 -0
  25. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/__init__.py +0 -0
  26. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/halite.js +0 -0
  27. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/halite.json +0 -0
  28. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/halite.py +0 -0
  29. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/helpers.py +0 -0
  30. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/halite/test_halite.py +0 -0
  31. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/hungry_geese/__init__.py +0 -0
  32. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/hungry_geese/hungry_geese.js +0 -0
  33. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/hungry_geese/hungry_geese.json +0 -0
  34. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/hungry_geese/hungry_geese.py +0 -0
  35. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/hungry_geese/test_hungry_geese.py +0 -0
  36. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/identity/identity.json +0 -0
  37. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/identity/identity.py +0 -0
  38. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/__init__.py +0 -0
  39. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/helpers.py +0 -0
  40. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/kore_fleets.js +0 -0
  41. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/kore_fleets.json +0 -0
  42. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/kore_fleets.py +0 -0
  43. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/java/main.py +0 -0
  44. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/configuration.json +0 -0
  45. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/fullob.json +0 -0
  46. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/observation.json +0 -0
  47. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/python/__init__.py +0 -0
  48. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/python/main.py +0 -0
  49. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/Bot.ts +0 -0
  50. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/DoNothingBot.ts +0 -0
  51. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/MinerBot.ts +0 -0
  52. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts +0 -0
  53. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts +0 -0
  54. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Cell.ts +0 -0
  55. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Configuration.ts +0 -0
  56. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Direction.ts +0 -0
  57. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts +0 -0
  58. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/KoreIO.ts +0 -0
  59. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Observation.ts +0 -0
  60. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Pair.ts +0 -0
  61. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Player.ts +0 -0
  62. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Point.ts +0 -0
  63. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Shipyard.ts +0 -0
  64. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/ShipyardAction.ts +0 -0
  65. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/main.py +0 -0
  66. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/miner.py +0 -0
  67. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/package.json +0 -0
  68. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/BoardTest.ts +0 -0
  69. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ConfigurationTest.ts +0 -0
  70. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ObservationTest.ts +0 -0
  71. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/PointTest.ts +0 -0
  72. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ShipyardTest.ts +0 -0
  73. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/configuration.json +0 -0
  74. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/fullob.json +0 -0
  75. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/observation.json +0 -0
  76. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/starter_bots/ts/tsconfig.json +0 -0
  77. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/kore_fleets/test_kore_fleets.py +0 -0
  78. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/llm_20_questions/keywords.py +0 -0
  79. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/llm_20_questions/llm_20_questions.js +0 -0
  80. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/llm_20_questions/llm_20_questions.json +0 -0
  81. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/llm_20_questions/llm_20_questions.py +0 -0
  82. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/llm_20_questions/test_llm_20_questions.py +0 -0
  83. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/__init__.py +0 -0
  84. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/agents.py +0 -0
  85. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/dimensions/754.js +0 -0
  86. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/dimensions/main.js +0 -0
  87. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/index.html +0 -0
  88. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.json +0 -0
  89. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.py +0 -0
  90. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/__init__.py +0 -0
  91. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.js +0 -0
  92. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.json +0 -0
  93. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_objects.js +0 -0
  94. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/io.js +0 -0
  95. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/kit.js +0 -0
  96. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/map.js +0 -0
  97. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/parser.js +0 -0
  98. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.js +0 -0
  99. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.py +0 -0
  100. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/__init__.py +0 -0
  101. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/annotate.py +0 -0
  102. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/constants.py +0 -0
  103. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game.py +0 -0
  104. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.json +0 -0
  105. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.py +0 -0
  106. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_map.py +0 -0
  107. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_objects.py +0 -0
  108. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/random_agent.py +0 -0
  109. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_agents/python/simple_agent.py +0 -0
  110. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_2021/test_lux.py +0 -0
  111. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/__init__.py +0 -0
  112. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/agents.py +0 -0
  113. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/index.html +0 -0
  114. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.json +0 -0
  115. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.py +0 -0
  116. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/__init__.py +0 -0
  117. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/actions.py +0 -0
  118. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/config.py +0 -0
  119. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/env.py +0 -0
  120. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/factory.py +0 -0
  121. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/globals.py +0 -0
  122. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/__init__.py +0 -0
  123. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/bfs_deltas_gen.py +0 -0
  124. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/board.py +0 -0
  125. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/position.py +0 -0
  126. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/__init__.py +0 -0
  127. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/generator.py +0 -0
  128. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/symnoise.py +0 -0
  129. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/timing.py +0 -0
  130. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize.py +0 -0
  131. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize_samples.py +0 -0
  132. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/__init__.py +0 -0
  133. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/visualizer.py +0 -0
  134. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/__init__.py +0 -0
  135. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/replay.py +0 -0
  136. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/__init__.py +0 -0
  137. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/act_space.py +0 -0
  138. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/obs_space.py +0 -0
  139. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/__init__.py +0 -0
  140. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/state.py +0 -0
  141. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/stats.py +0 -0
  142. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/typing.py +0 -0
  143. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/team.py +0 -0
  144. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/__init__.py +0 -0
  145. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/replay.py +0 -0
  146. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/unit.py +0 -0
  147. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/__init__.py +0 -0
  148. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/animate.py +0 -0
  149. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/__init__.py +0 -0
  150. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/bidding.py +0 -0
  151. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory.py +0 -0
  152. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory_placement.py +0 -0
  153. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/utils.py +0 -0
  154. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/version.py +0 -0
  155. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/__init__.py +0 -0
  156. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/controllers.py +0 -0
  157. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/sb3.py +0 -0
  158. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/agent.py +0 -0
  159. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/cargo.py +0 -0
  160. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/config.py +0 -0
  161. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/factory.py +0 -0
  162. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/kit.py +0 -0
  163. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/team.py +0 -0
  164. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/unit.py +0 -0
  165. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/utils.py +0 -0
  166. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_agents/python/main.py +0 -0
  167. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s2/test_lux.py +0 -0
  168. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/agents.py +0 -0
  169. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/index.html +0 -0
  170. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +0 -0
  171. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.py +0 -0
  172. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/__init__.py +0 -0
  173. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +0 -0
  174. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/globals.py +0 -0
  175. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/params.py +0 -0
  176. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/profiler.py +0 -0
  177. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +0 -0
  178. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/spaces.py +0 -0
  179. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/state.py +0 -0
  180. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/utils.py +0 -0
  181. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +0 -0
  182. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_agents/python/agent.py +0 -0
  183. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/__init__.py +0 -0
  184. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/kit.py +0 -0
  185. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/utils.py +0 -0
  186. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_agents/python/main.py +0 -0
  187. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/lux_ai_s3/test_lux.py +0 -0
  188. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/mab/__init__.py +0 -0
  189. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/mab/agents.py +0 -0
  190. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/mab/mab.js +0 -0
  191. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/mab/mab.json +0 -0
  192. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/mab/mab.py +0 -0
  193. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/__init__.py +0 -0
  194. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/__init__.py +0 -0
  195. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/connect_four/__init__.py +0 -0
  196. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four.js +0 -0
  197. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy.py +0 -0
  198. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy_test.py +0 -0
  199. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/go/__init__.py +0 -0
  200. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/go/go.js +0 -0
  201. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/go/go_proxy.py +0 -0
  202. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/__init__.py +0 -0
  203. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe.js +0 -0
  204. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe_proxy.py +0 -0
  205. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/universal_poker/__init__.py +0 -0
  206. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker.js +0 -0
  207. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy.py +0 -0
  208. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy_test.py +0 -0
  209. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/html_playthrough_generator.py +0 -0
  210. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/observation.py +0 -0
  211. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/open_spiel.py +0 -0
  212. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/proxy.py +0 -0
  213. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/proxy_test.py +0 -0
  214. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/open_spiel/test_open_spiel.py +0 -0
  215. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/__init__.py +0 -0
  216. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/agents.py +0 -0
  217. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/helpers.py +0 -0
  218. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/rps.js +0 -0
  219. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/rps.json +0 -0
  220. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/rps.py +0 -0
  221. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/test_rps.py +0 -0
  222. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/rps/utils.py +0 -0
  223. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/tictactoe/test_tictactoe.py +0 -0
  224. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/tictactoe/tictactoe.js +0 -0
  225. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/tictactoe/tictactoe.json +0 -0
  226. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/envs/tictactoe/tictactoe.py +0 -0
  227. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/errors.py +0 -0
  228. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/helpers.py +0 -0
  229. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/main.py +0 -0
  230. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/schemas.json +0 -0
  231. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/status_codes.json +0 -0
  232. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments/utils.py +0 -0
  233. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments.egg-info/SOURCES.txt +0 -0
  234. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments.egg-info/dependency_links.txt +0 -0
  235. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments.egg-info/entry_points.txt +0 -0
  236. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments.egg-info/requires.txt +0 -0
  237. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/kaggle_environments.egg-info/top_level.txt +0 -0
  238. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/setup.cfg +0 -0
  239. {kaggle_environments-1.17.9 → kaggle_environments-1.17.11}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle-environments
3
- Version: 1.17.9
3
+ Version: 1.17.11
4
4
  Summary: Kaggle Environments
5
5
  Home-page: https://github.com/Kaggle/kaggle-environments
6
6
  Author: Kaggle
@@ -20,7 +20,7 @@ from .core import *
20
20
  from .main import http_request
21
21
  from . import errors
22
22
 
23
- __version__ = "1.17.9"
23
+ __version__ = "1.17.11"
24
24
 
25
25
  __all__ = ["Agent", "environments", "errors", "evaluate", "http_request",
26
26
  "make", "register", "utils", "__version__",
@@ -174,8 +174,8 @@ class Agent:
174
174
  out = out_buffer.getvalue()
175
175
  err = err_buffer.getvalue()
176
176
  # Get the maximum log length
177
- # Allow up to 1k (default) log characters per step which is ~1MB per 600 step episode
178
- max_log_length = self.configuration.get('maxLogLength', 1024)
177
+ # Allow up to 10k (default) log characters per step which is ~10MB per 600 step episode
178
+ max_log_length = self.configuration.get('maxLogLength', 10000)
179
179
 
180
180
  # truncate if max_log_length is set to None, do not truncate
181
181
  if max_log_length is not None:
@@ -608,8 +608,8 @@ class Environment:
608
608
  err = err_buffer.getvalue()
609
609
 
610
610
  # strip if needed
611
- # Allow up to 1k (default) log characters per step which is ~1MB per 600 step episode
612
- max_log_length = self.configuration.get("maxLogLength", 1024)
611
+ # Allow up to 10k (default) log characters per step which is ~10MB per 600 step episode
612
+ max_log_length = self.configuration.get("maxLogLength", 10000)
613
613
  if max_log_length is not None:
614
614
  out = out[0:max_log_length]
615
615
  err = err[0:max_log_length]
@@ -0,0 +1,438 @@
1
+ function renderer(options) {
2
+ const { environment, step, parent, width = 400, height = 400 } = options; // Chess-specific constants
3
+
4
+ const DEFAULT_NUM_ROWS = 8;
5
+ const DEFAULT_NUM_COLS = 8;
6
+ const PIECE_SVG_URLS = {
7
+ p: 'https://upload.wikimedia.org/wikipedia/commons/c/c7/Chess_pdt45.svg', // Black Pawn
8
+ r: 'https://upload.wikimedia.org/wikipedia/commons/f/ff/Chess_rdt45.svg', // Black Rook
9
+ n: 'https://upload.wikimedia.org/wikipedia/commons/e/ef/Chess_ndt45.svg', // Black Knight
10
+ b: 'https://upload.wikimedia.org/wikipedia/commons/9/98/Chess_bdt45.svg', // Black Bishop
11
+ q: 'https://upload.wikimedia.org/wikipedia/commons/4/47/Chess_qdt45.svg', // Black Queen
12
+ k: 'https://upload.wikimedia.org/wikipedia/commons/f/f0/Chess_kdt45.svg', // Black King
13
+ P: 'https://upload.wikimedia.org/wikipedia/commons/4/45/Chess_plt45.svg', // White Pawn
14
+ R: 'https://upload.wikimedia.org/wikipedia/commons/7/72/Chess_rlt45.svg', // White Rook
15
+ N: 'https://upload.wikimedia.org/wikipedia/commons/7/70/Chess_nlt45.svg', // White Knight
16
+ B: 'https://upload.wikimedia.org/wikipedia/commons/b/b1/Chess_blt45.svg', // White Bishop
17
+ Q: 'https://upload.wikimedia.org/wikipedia/commons/1/15/Chess_qlt45.svg', // White Queen
18
+ K: 'https://upload.wikimedia.org/wikipedia/commons/4/42/Chess_klt45.svg' // White King
19
+ };
20
+ const LIGHT_SQUARE_COLOR = '#f0d9b5';
21
+ const DARK_SQUARE_COLOR = '#b58863';
22
+
23
+ let currentBoardElement = null;
24
+ let currentStatusTextElement = null;
25
+ let currentWinnerTextElement = null;
26
+ let currentMessageBoxElement = typeof document !== 'undefined' ? document.getElementById('messageBox') : null;
27
+ let currentRendererContainer = null;
28
+ let currentBoardContainer = null;
29
+ let currentTitleElement = null;
30
+ let squareSize = 0;
31
+
32
+ function _showMessage(message, type = 'info', duration = 3000) {
33
+ if (typeof document === 'undefined' || !document.body) return;
34
+ if (!currentMessageBoxElement) {
35
+ currentMessageBoxElement = document.createElement('div');
36
+ currentMessageBoxElement.id = 'messageBox';
37
+ Object.assign(currentMessageBoxElement.style, {
38
+ position: 'fixed',
39
+ top: '10px',
40
+ left: '50%',
41
+ transform: 'translateX(-50%)',
42
+ padding: '0.75rem 1rem',
43
+ borderRadius: '0.375rem',
44
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
45
+ zIndex: '1000',
46
+ opacity: '0',
47
+ transition: 'opacity 0.3s ease-in-out, background-color 0.3s',
48
+ fontSize: '0.875rem',
49
+ fontFamily: "'Inter', sans-serif",
50
+ color: 'white'
51
+ });
52
+ document.body.appendChild(currentMessageBoxElement);
53
+ }
54
+ currentMessageBoxElement.textContent = message;
55
+ currentMessageBoxElement.style.backgroundColor = type === 'error' ? '#ef4444' : '#10b981';
56
+ currentMessageBoxElement.style.opacity = '1';
57
+ setTimeout(() => {
58
+ if (currentMessageBoxElement) currentMessageBoxElement.style.opacity = '0';
59
+ }, duration);
60
+ }
61
+ function _ensureRendererElements(parentElementToClear, rows, cols) {
62
+ if (!parentElementToClear) return false;
63
+ parentElementToClear.innerHTML = '';
64
+
65
+ // NEW: Check for mobile screen size to apply responsive styles.
66
+ const isMobile = window.innerWidth < 768;
67
+
68
+ currentRendererContainer = document.createElement('div');
69
+ Object.assign(currentRendererContainer.style, {
70
+ display: 'flex',
71
+ flexDirection: 'column',
72
+ alignItems: 'center',
73
+ padding: isMobile ? '10px' : '20px', // Responsive padding
74
+ boxSizing: 'border-box',
75
+ width: '100%',
76
+ height: '100%',
77
+ fontFamily: "'Inter', sans-serif"
78
+ });
79
+ parentElementToClear.appendChild(currentRendererContainer);
80
+
81
+ if (!environment.viewer) {
82
+ const headerContainer = document.createElement('div');
83
+ Object.assign(headerContainer.style, {
84
+ display: 'flex',
85
+ justifyContent: 'center',
86
+ alignItems: 'center',
87
+ width: '100%',
88
+ marginBottom: '1rem',
89
+ color: 'white',
90
+ flexShrink: '0',
91
+ flexDirection: isMobile ? 'column' : 'row' // Stacks header vertically on mobile
92
+ });
93
+
94
+ // Player 2 (White) - Left side
95
+ const whitePlayerContainer = document.createElement('div');
96
+ Object.assign(whitePlayerContainer.style, {
97
+ display: 'flex',
98
+ alignItems: 'center'
99
+ });
100
+ const whitePawnImg = document.createElement('img');
101
+ whitePawnImg.src = PIECE_SVG_URLS.P;
102
+ Object.assign(whitePawnImg.style, { height: '30px', marginRight: '8px' });
103
+ const whitePlayerName = document.createElement('span');
104
+ whitePlayerName.textContent = environment.info?.TeamNames?.[1] || 'Player 2';
105
+ Object.assign(whitePlayerName.style, {
106
+ fontSize: isMobile ? '1rem' : '1.1rem', // Responsive font size
107
+ fontWeight: 'bold'
108
+ });
109
+ whitePlayerContainer.appendChild(whitePawnImg);
110
+ whitePlayerContainer.appendChild(whitePlayerName);
111
+
112
+ // Center Title
113
+ currentTitleElement = document.createElement('h1');
114
+ currentTitleElement.textContent = 'Chess';
115
+ Object.assign(currentTitleElement.style, {
116
+ fontSize: isMobile ? '1.5rem' : '1.875rem', // Responsive font size
117
+ fontWeight: 'bold',
118
+ textAlign: 'center',
119
+ color: '#e5e7eb',
120
+ margin: isMobile ? '10px 0' : '0 40px', // Responsive margin
121
+ order: isMobile ? '0' : 'initial' // Ensures title is between players on desktop
122
+ });
123
+
124
+ // Player 1 (Black) - Right side
125
+ const blackPlayerContainer = document.createElement('div');
126
+ Object.assign(blackPlayerContainer.style, {
127
+ display: 'flex',
128
+ alignItems: 'center'
129
+ });
130
+ const blackPlayerName = document.createElement('span');
131
+ blackPlayerName.textContent = environment.info?.TeamNames?.[0] || 'Player 1';
132
+ Object.assign(blackPlayerName.style, {
133
+ fontSize: isMobile ? '1rem' : '1.1rem', // Responsive font size
134
+ fontWeight: 'bold'
135
+ });
136
+ const blackPawnImg = document.createElement('img');
137
+ blackPawnImg.src = PIECE_SVG_URLS.p;
138
+ Object.assign(blackPawnImg.style, { height: '30px', marginLeft: '8px' });
139
+ blackPlayerContainer.appendChild(blackPlayerName);
140
+ blackPlayerContainer.appendChild(blackPawnImg);
141
+
142
+ // Assemble the header - order matters for mobile stacking
143
+ if (isMobile) {
144
+ // On mobile: White Player, then Black Player, then Title for a "vs" feel
145
+ headerContainer.appendChild(whitePlayerContainer);
146
+ const vsText = document.createElement('div');
147
+ vsText.textContent = 'vs';
148
+ Object.assign(vsText.style, { margin: '4px 0', fontStyle: 'italic' });
149
+ headerContainer.appendChild(vsText);
150
+ headerContainer.appendChild(blackPlayerContainer);
151
+ // Title is not added here for mobile to keep it separate or could be added last
152
+ } else {
153
+ // On desktop: White Player, Title, Black Player
154
+ headerContainer.appendChild(whitePlayerContainer);
155
+ headerContainer.appendChild(currentTitleElement);
156
+ headerContainer.appendChild(blackPlayerContainer);
157
+ }
158
+ currentRendererContainer.appendChild(headerContainer);
159
+ }
160
+
161
+ // ... (The rest of the function for the board and status container remains the same, but let's add responsive fonts to the status)
162
+
163
+ // Board container...
164
+ currentBoardContainer = document.createElement('div');
165
+ Object.assign(currentBoardContainer.style, {
166
+ display: 'flex',
167
+ justifyContent: 'center',
168
+ alignItems: 'center',
169
+ flexGrow: '1',
170
+ overflow: 'hidden',
171
+ width: '100%',
172
+ minHeight: '0'
173
+ });
174
+ currentRendererContainer.appendChild(currentBoardContainer);
175
+
176
+ // ... code to create board and squares ...
177
+ currentBoardElement = document.createElement('div');
178
+ Object.assign(currentBoardElement.style, {
179
+ display: 'grid',
180
+ border: '2px solid #333'
181
+ });
182
+ currentBoardContainer.appendChild(currentBoardElement);
183
+ for (let r = 0; r < rows; r++) {
184
+ for (let c = 0; c < cols; c++) {
185
+ const square = document.createElement('div');
186
+ square.id = `cell-${r}-${c}`;
187
+ Object.assign(square.style, {
188
+ backgroundColor: (r + c) % 2 === 0 ? LIGHT_SQUARE_COLOR : DARK_SQUARE_COLOR,
189
+ display: 'flex',
190
+ alignItems: 'center',
191
+ justifyContent: 'center'
192
+ });
193
+ currentBoardElement.appendChild(square);
194
+ }
195
+ }
196
+
197
+ // Status Container
198
+ const statusContainer = document.createElement('div');
199
+ Object.assign(statusContainer.style, {
200
+ padding: '10px 15px',
201
+ backgroundColor: 'white',
202
+ borderRadius: '8px',
203
+ boxShadow: '0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06)',
204
+ textAlign: 'center',
205
+ width: 'auto',
206
+ minWidth: '200px',
207
+ maxWidth: '90vw',
208
+ marginTop: '20px',
209
+ flexShrink: '0'
210
+ });
211
+ if (!environment.viewer) {
212
+ currentRendererContainer.appendChild(statusContainer);
213
+ }
214
+
215
+ currentStatusTextElement = document.createElement('p');
216
+ Object.assign(currentStatusTextElement.style, {
217
+ fontSize: isMobile ? '0.9rem' : '1.1rem', // Responsive font size
218
+ fontWeight: '600',
219
+ margin: '0 0 5px 0'
220
+ });
221
+ statusContainer.appendChild(currentStatusTextElement);
222
+
223
+ currentWinnerTextElement = document.createElement('p');
224
+ Object.assign(currentWinnerTextElement.style, {
225
+ fontSize: isMobile ? '1rem' : '1.25rem', // Responsive font size
226
+ fontWeight: '700',
227
+ margin: '5px 0 0 0'
228
+ });
229
+ statusContainer.appendChild(currentWinnerTextElement);
230
+
231
+ return true;
232
+ }
233
+
234
+ function _getTeamNameForColor(color, teamNames) {
235
+ if (!teamNames || teamNames.length < 2) return null;
236
+ return color.toLowerCase() === 'white' ? teamNames[1] : teamNames[0];
237
+ }
238
+
239
+ function _deriveWinnerFromRewards(currentStepAgents, teamNames) {
240
+ if (!currentStepAgents || currentStepAgents.length < 2) return null;
241
+
242
+ const player0Reward = currentStepAgents[0].reward;
243
+ const player1Reward = currentStepAgents[1].reward;
244
+
245
+ if (player0Reward === player1Reward) {
246
+ return 'draw';
247
+ }
248
+
249
+ const winnerPlayerIndex = player0Reward === 1 ? 0 : 1;
250
+ const color = winnerPlayerIndex === 0 ? 'Black' : 'White';
251
+
252
+ if (teamNames) {
253
+ const teamName = _getTeamNameForColor(color, teamNames);
254
+ return `${color} (${teamName})`;
255
+ }
256
+
257
+ return color.toLowerCase();
258
+ }
259
+
260
+ function _parseFen(fen) {
261
+ if (!fen || typeof fen !== 'string') return null;
262
+
263
+ const [piecePlacement, activeColor, castling, enPassant, halfmoveClock, fullmoveNumber] = fen.split(' ');
264
+ const board = [];
265
+ const rows = piecePlacement.split('/');
266
+
267
+ for (const row of rows) {
268
+ const boardRow = [];
269
+ for (const char of row) {
270
+ if (isNaN(parseInt(char))) {
271
+ boardRow.push(char);
272
+ } else {
273
+ for (let i = 0; i < parseInt(char); i++) {
274
+ boardRow.push(null);
275
+ }
276
+ }
277
+ }
278
+ board.push(boardRow);
279
+ }
280
+
281
+ return {
282
+ board,
283
+ activeColor,
284
+ castling,
285
+ enPassant,
286
+ halfmoveClock,
287
+ fullmoveNumber
288
+ };
289
+ }
290
+
291
+ function _renderBoardDisplay(gameStateToDisplay, displayRows, displayCols) {
292
+ if (!currentBoardContainer || !currentBoardElement || !currentStatusTextElement || !currentWinnerTextElement)
293
+ return;
294
+
295
+ const isMobile = window.innerWidth < 768;
296
+
297
+ // Calculate and apply board size
298
+ const containerWidth = currentBoardContainer?.clientWidth ?? width;
299
+ const containerHeight = currentBoardContainer?.clientHeight ?? height;
300
+ const smallestContainerEdge = Math.min(containerWidth, containerHeight);
301
+ const newSquareSize = Math.floor(smallestContainerEdge / displayCols);
302
+
303
+ if (newSquareSize !== squareSize) {
304
+ squareSize = newSquareSize;
305
+ Object.assign(currentBoardElement.style, {
306
+ gridTemplateColumns: `repeat(${displayCols}, ${squareSize}px)`,
307
+ gridTemplateRows: `repeat(${displayRows}, ${squareSize}px)`,
308
+ width: `${displayCols * squareSize}px`,
309
+ height: `${displayRows * squareSize}px`
310
+ });
311
+
312
+ const squares = currentBoardElement.querySelectorAll('div[id^="cell-"]');
313
+ squares.forEach((square) => {
314
+ Object.assign(square.style, {
315
+ width: `${squareSize}px`,
316
+ height: `${squareSize}px`
317
+ });
318
+ });
319
+ }
320
+
321
+ // Clear and render board pieces...
322
+ for (let r = 0; r < displayRows; r++) {
323
+ for (let c = 0; c < displayCols; c++) {
324
+ const squareElement = currentBoardElement.querySelector(`#cell-${r}-${c}`);
325
+ if (squareElement) squareElement.innerHTML = '';
326
+ }
327
+ }
328
+
329
+ if (!gameStateToDisplay || !gameStateToDisplay.board) {
330
+ currentStatusTextElement.textContent = 'Waiting for game data...';
331
+ currentWinnerTextElement.textContent = '';
332
+ return;
333
+ }
334
+
335
+ const { board, activeColor, isTerminal, winner } = gameStateToDisplay;
336
+ const pieceSize = Math.floor(squareSize * 0.9);
337
+ for (let r_data = 0; r_data < displayRows; r_data++) {
338
+ for (let c_data = 0; c_data < displayCols; c_data++) {
339
+ const piece = board[r_data][c_data];
340
+ const squareElement = currentBoardElement.querySelector(`#cell-${r_data}-${c_data}`);
341
+ if (squareElement && piece) {
342
+ const pieceImg = document.createElement('img');
343
+ pieceImg.src = PIECE_SVG_URLS[piece];
344
+ pieceImg.style.width = `${pieceSize}px`;
345
+ pieceImg.style.height = `${pieceSize}px`;
346
+ squareElement.appendChild(pieceImg);
347
+ }
348
+ }
349
+ }
350
+
351
+ // Render status text
352
+ currentStatusTextElement.innerHTML = '';
353
+ currentWinnerTextElement.innerHTML = '';
354
+ if (isTerminal) {
355
+ const winnerText = winner
356
+ ? String(winner).toLowerCase() === 'draw'
357
+ ? "It's a Draw!"
358
+ : winner
359
+ : 'Game ended.';
360
+ if (isMobile) {
361
+ currentStatusTextElement.innerHTML = `<div style="font-size: 0.9rem; color: #666;">Winner</div>`;
362
+ currentWinnerTextElement.innerHTML = `<div style="font-size: 1.1rem; font-weight: bold;">${winnerText}</div>`;
363
+ } else {
364
+ currentStatusTextElement.textContent = 'Game Over!';
365
+ currentWinnerTextElement.innerHTML = `Winner: <span style="font-weight: bold;">${winnerText}</span>`;
366
+ }
367
+ } else {
368
+ const playerColor = String(activeColor).toLowerCase() === 'w' ? 'White' : 'Black';
369
+ const teamName = _getTeamNameForColor(playerColor, environment.info?.TeamNames);
370
+ const currentPlayerText = teamName ? `${playerColor} (${teamName})` : playerColor;
371
+
372
+ if (isMobile) {
373
+ currentStatusTextElement.innerHTML = `<div style="font-size: 0.9rem; color: #666;">Current Player</div>`;
374
+ currentWinnerTextElement.innerHTML = `<div style="font-size: 1.1rem; font-weight: bold;">${currentPlayerText}</div>`;
375
+ } else {
376
+ currentStatusTextElement.innerHTML = `Current Player: <span style="font-weight: bold;">${currentPlayerText}</span>`;
377
+ currentWinnerTextElement.innerHTML = ''; // Clear winner text when game is active
378
+ }
379
+ }
380
+ }
381
+
382
+ if (!_ensureRendererElements(parent, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS)) {
383
+ if (parent && typeof parent.innerHTML !== 'undefined') {
384
+ parent.innerHTML =
385
+ "<p style='color:red; font-family: sans-serif;'>Critical Error: Renderer element setup failed.</p>";
386
+ }
387
+ return;
388
+ }
389
+
390
+ if (!environment || !environment.steps || !environment.steps[step]) {
391
+ _renderBoardDisplay(null, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS);
392
+ if (currentStatusTextElement) currentStatusTextElement.textContent = 'Initializing environment...';
393
+ return;
394
+ }
395
+
396
+ const currentStepAgents = environment.steps[step];
397
+ if (!currentStepAgents || !Array.isArray(currentStepAgents) || currentStepAgents.length === 0) {
398
+ _renderBoardDisplay(null, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS);
399
+ if (currentStatusTextElement) currentStatusTextElement.textContent = 'Waiting for agent data...';
400
+ return;
401
+ }
402
+
403
+ const agent = currentStepAgents[0];
404
+
405
+ if (!agent || typeof agent.observation === 'undefined') {
406
+ _renderBoardDisplay(null, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS);
407
+ if (currentStatusTextElement) currentStatusTextElement.textContent = 'Waiting for observation data...';
408
+ return;
409
+ }
410
+ const observationForRenderer = agent.observation;
411
+
412
+ let gameSpecificState = null;
413
+
414
+ if (
415
+ observationForRenderer &&
416
+ typeof observationForRenderer.observationString === 'string' &&
417
+ observationForRenderer.observationString.trim() !== ''
418
+ ) {
419
+ try {
420
+ const fen = observationForRenderer.observationString;
421
+ const parsedFen = _parseFen(fen);
422
+ if (parsedFen) {
423
+ const winner = observationForRenderer.isTerminal
424
+ ? _deriveWinnerFromRewards(currentStepAgents, environment.info?.TeamNames)
425
+ : null;
426
+ gameSpecificState = {
427
+ ...parsedFen,
428
+ isTerminal: observationForRenderer.isTerminal,
429
+ winner: winner
430
+ };
431
+ }
432
+ } catch (e) {
433
+ _showMessage('Error: Corrupted game state (obs_string).', 'error');
434
+ }
435
+ }
436
+
437
+ _renderBoardDisplay(gameSpecificState, DEFAULT_NUM_ROWS, DEFAULT_NUM_COLS);
438
+ }