kaggle-environments 1.17.11__tar.gz → 1.18.0__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 (247) hide show
  1. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/MANIFEST.in +3 -1
  2. {kaggle_environments-1.17.11/kaggle_environments.egg-info → kaggle_environments-1.18.0}/PKG-INFO +2 -71
  3. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/README.md +1 -70
  4. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/__init__.py +1 -1
  5. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/api.py +5 -13
  6. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cabt.js +164 -0
  7. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cabt.json +28 -0
  8. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cabt.py +119 -0
  9. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cg/cg.dll +0 -0
  10. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cg/game.py +70 -0
  11. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cg/libcg.so +0 -0
  12. kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cg/sim.py +44 -0
  13. kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games/chess/chess.js +441 -0
  14. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/open_spiel.py +53 -1
  15. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/test_open_spiel.py +85 -1
  16. kaggle_environments-1.18.0/kaggle_environments/envs/rps/__init__.py +0 -0
  17. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/helpers.py +126 -86
  18. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/main.py +29 -44
  19. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/static/player.html +84 -37
  20. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/utils.py +8 -12
  21. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0/kaggle_environments.egg-info}/PKG-INFO +2 -71
  22. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments.egg-info/SOURCES.txt +8 -0
  23. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/setup.py +29 -16
  24. kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/chess/chess.js +0 -438
  25. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/LICENSE +0 -0
  26. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/agent.py +0 -0
  27. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/core.py +0 -0
  28. {kaggle_environments-1.17.11/kaggle_environments/envs/halite → kaggle_environments-1.18.0/kaggle_environments/envs/cabt/cg}/__init__.py +0 -0
  29. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/chess/chess.js +0 -0
  30. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/chess/chess.json +0 -0
  31. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/chess/chess.py +0 -0
  32. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/chess/test_chess.py +0 -0
  33. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/connectx/connectx.js +0 -0
  34. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/connectx/connectx.json +0 -0
  35. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/connectx/connectx.py +0 -0
  36. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/connectx/test_connectx.py +0 -0
  37. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/football/football.json +0 -0
  38. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/football/football.py +0 -0
  39. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/football/helpers.py +0 -0
  40. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/football/test_football.py +0 -0
  41. {kaggle_environments-1.17.11/kaggle_environments/envs/hungry_geese → kaggle_environments-1.18.0/kaggle_environments/envs/halite}/__init__.py +0 -0
  42. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/halite/halite.js +0 -0
  43. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/halite/halite.json +0 -0
  44. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/halite/halite.py +0 -0
  45. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/halite/helpers.py +0 -0
  46. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/halite/test_halite.py +0 -0
  47. {kaggle_environments-1.17.11/kaggle_environments/envs/kore_fleets → kaggle_environments-1.18.0/kaggle_environments/envs/hungry_geese}/__init__.py +0 -0
  48. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/hungry_geese/hungry_geese.js +0 -0
  49. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/hungry_geese/hungry_geese.json +0 -0
  50. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/hungry_geese/hungry_geese.py +0 -0
  51. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/hungry_geese/test_hungry_geese.py +0 -0
  52. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/identity/identity.json +0 -0
  53. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/identity/identity.py +0 -0
  54. {kaggle_environments-1.17.11/kaggle_environments/envs/kore_fleets/starter_bots/python → kaggle_environments-1.18.0/kaggle_environments/envs/kore_fleets}/__init__.py +0 -0
  55. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/helpers.py +0 -0
  56. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/kore_fleets.js +0 -0
  57. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/kore_fleets.json +0 -0
  58. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/kore_fleets.py +0 -0
  59. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/java/main.py +0 -0
  60. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/configuration.json +0 -0
  61. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/fullob.json +0 -0
  62. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/java/test/observation.json +0 -0
  63. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_2021 → kaggle_environments-1.18.0/kaggle_environments/envs/kore_fleets/starter_bots/python}/__init__.py +0 -0
  64. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/python/main.py +0 -0
  65. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/Bot.ts +0 -0
  66. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/DoNothingBot.ts +0 -0
  67. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/MinerBot.ts +0 -0
  68. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/interpreter.ts +0 -0
  69. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Board.ts +0 -0
  70. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Cell.ts +0 -0
  71. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Configuration.ts +0 -0
  72. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Direction.ts +0 -0
  73. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Fleet.ts +0 -0
  74. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/KoreIO.ts +0 -0
  75. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Observation.ts +0 -0
  76. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Pair.ts +0 -0
  77. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Player.ts +0 -0
  78. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Point.ts +0 -0
  79. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/Shipyard.ts +0 -0
  80. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/kore/ShipyardAction.ts +0 -0
  81. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/main.py +0 -0
  82. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/miner.py +0 -0
  83. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/package.json +0 -0
  84. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/BoardTest.ts +0 -0
  85. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ConfigurationTest.ts +0 -0
  86. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ObservationTest.ts +0 -0
  87. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/PointTest.ts +0 -0
  88. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/ShipyardTest.ts +0 -0
  89. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/configuration.json +0 -0
  90. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/fullob.json +0 -0
  91. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/test/observation.json +0 -0
  92. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/starter_bots/ts/tsconfig.json +0 -0
  93. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/kore_fleets/test_kore_fleets.py +0 -0
  94. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/llm_20_questions/keywords.py +0 -0
  95. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/llm_20_questions/llm_20_questions.js +0 -0
  96. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/llm_20_questions/llm_20_questions.json +0 -0
  97. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/llm_20_questions/llm_20_questions.py +0 -0
  98. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/llm_20_questions/test_llm_20_questions.py +0 -0
  99. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_2021/test_agents → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_2021}/__init__.py +0 -0
  100. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/agents.py +0 -0
  101. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/dimensions/754.js +0 -0
  102. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/dimensions/main.js +0 -0
  103. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/index.html +0 -0
  104. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.json +0 -0
  105. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/lux_ai_2021.py +0 -0
  106. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_2021/test_agents}/__init__.py +0 -0
  107. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.js +0 -0
  108. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_constants.json +0 -0
  109. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/game_objects.js +0 -0
  110. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/io.js +0 -0
  111. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/kit.js +0 -0
  112. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/map.js +0 -0
  113. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/lux/parser.js +0 -0
  114. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.js +0 -0
  115. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/js_simple/main.py +0 -0
  116. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s2 → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux}/__init__.py +0 -0
  117. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/annotate.py +0 -0
  118. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/constants.py +0 -0
  119. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game.py +0 -0
  120. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.json +0 -0
  121. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_constants.py +0 -0
  122. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_map.py +0 -0
  123. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/lux/game_objects.py +0 -0
  124. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/random_agent.py +0 -0
  125. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_agents/python/simple_agent.py +0 -0
  126. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_2021/test_lux.py +0 -0
  127. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s2/luxai_s2/map → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s2}/__init__.py +0 -0
  128. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/agents.py +0 -0
  129. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/index.html +0 -0
  130. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.json +0 -0
  131. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/lux_ai_s2.py +0 -0
  132. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/__init__.py +0 -0
  133. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/actions.py +0 -0
  134. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/config.py +0 -0
  135. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/env.py +0 -0
  136. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/factory.py +0 -0
  137. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/globals.py +0 -0
  138. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s2/luxai_s2/map}/__init__.py +0 -0
  139. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/bfs_deltas_gen.py +0 -0
  140. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/board.py +0 -0
  141. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map/position.py +0 -0
  142. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/__init__.py +0 -0
  143. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/generator.py +0 -0
  144. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/symnoise.py +0 -0
  145. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/timing.py +0 -0
  146. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize.py +0 -0
  147. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/map_generator/visualize_samples.py +0 -0
  148. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual}/__init__.py +0 -0
  149. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/pyvisual/visualizer.py +0 -0
  150. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/__init__.py +0 -0
  151. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/replay/replay.py +0 -0
  152. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces}/__init__.py +0 -0
  153. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/act_space.py +0 -0
  154. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/spaces/obs_space.py +0 -0
  155. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/__init__.py +0 -0
  156. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/state.py +0 -0
  157. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/stats.py +0 -0
  158. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/state/typing.py +0 -0
  159. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/team.py +0 -0
  160. {kaggle_environments-1.17.11/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools}/__init__.py +0 -0
  161. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/tools/replay.py +0 -0
  162. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/unit.py +0 -0
  163. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/__init__.py +0 -0
  164. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/animate.py +0 -0
  165. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/__init__.py +0 -0
  166. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/bidding.py +0 -0
  167. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory.py +0 -0
  168. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/heuristics/factory_placement.py +0 -0
  169. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/utils/utils.py +0 -0
  170. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/version.py +0 -0
  171. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/__init__.py +0 -0
  172. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/controllers.py +0 -0
  173. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/luxai_s2/wrappers/sb3.py +0 -0
  174. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/agent.py +0 -0
  175. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/cargo.py +0 -0
  176. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/config.py +0 -0
  177. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/factory.py +0 -0
  178. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/kit.py +0 -0
  179. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/team.py +0 -0
  180. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/unit.py +0 -0
  181. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/lux/utils.py +0 -0
  182. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_agents/python/main.py +0 -0
  183. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s2/test_lux.py +0 -0
  184. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/agents.py +0 -0
  185. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/index.html +0 -0
  186. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.json +0 -0
  187. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/lux_ai_s3.py +0 -0
  188. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/__init__.py +0 -0
  189. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/env.py +0 -0
  190. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/globals.py +0 -0
  191. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/params.py +0 -0
  192. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/profiler.py +0 -0
  193. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/pygame_render.py +0 -0
  194. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/spaces.py +0 -0
  195. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/state.py +0 -0
  196. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/utils.py +0 -0
  197. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/luxai_s3/wrappers.py +0 -0
  198. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/test_agents/python/agent.py +0 -0
  199. {kaggle_environments-1.17.11/kaggle_environments/envs/mab → kaggle_environments-1.18.0/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux}/__init__.py +0 -0
  200. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/kit.py +0 -0
  201. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/test_agents/python/lux/utils.py +0 -0
  202. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/test_agents/python/main.py +0 -0
  203. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/lux_ai_s3/test_lux.py +0 -0
  204. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel → kaggle_environments-1.18.0/kaggle_environments/envs/mab}/__init__.py +0 -0
  205. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/mab/agents.py +0 -0
  206. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/mab/mab.js +0 -0
  207. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/mab/mab.json +0 -0
  208. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/mab/mab.py +0 -0
  209. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel}/__init__.py +0 -0
  210. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/connect_four → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games}/__init__.py +0 -0
  211. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/go → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games/connect_four}/__init__.py +0 -0
  212. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four.js +0 -0
  213. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy.py +0 -0
  214. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/connect_four/connect_four_proxy_test.py +0 -0
  215. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/tic_tac_toe → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games/go}/__init__.py +0 -0
  216. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/go/go.js +0 -0
  217. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/go/go_proxy.py +0 -0
  218. {kaggle_environments-1.17.11/kaggle_environments/envs/open_spiel/games/universal_poker → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games/tic_tac_toe}/__init__.py +0 -0
  219. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe.js +0 -0
  220. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/tic_tac_toe/tic_tac_toe_proxy.py +0 -0
  221. {kaggle_environments-1.17.11/kaggle_environments/envs/rps → kaggle_environments-1.18.0/kaggle_environments/envs/open_spiel/games/universal_poker}/__init__.py +0 -0
  222. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker.js +0 -0
  223. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy.py +0 -0
  224. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/games/universal_poker/universal_poker_proxy_test.py +0 -0
  225. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/html_playthrough_generator.py +0 -0
  226. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/observation.py +0 -0
  227. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/proxy.py +0 -0
  228. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/open_spiel/proxy_test.py +0 -0
  229. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/agents.py +0 -0
  230. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/helpers.py +0 -0
  231. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/rps.js +0 -0
  232. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/rps.json +0 -0
  233. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/rps.py +0 -0
  234. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/test_rps.py +0 -0
  235. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/rps/utils.py +0 -0
  236. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/tictactoe/test_tictactoe.py +0 -0
  237. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/tictactoe/tictactoe.js +0 -0
  238. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/tictactoe/tictactoe.json +0 -0
  239. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/envs/tictactoe/tictactoe.py +0 -0
  240. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/errors.py +0 -0
  241. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/schemas.json +0 -0
  242. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments/status_codes.json +0 -0
  243. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments.egg-info/dependency_links.txt +0 -0
  244. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments.egg-info/entry_points.txt +0 -0
  245. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments.egg-info/requires.txt +7 -7
  246. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/kaggle_environments.egg-info/top_level.txt +0 -0
  247. {kaggle_environments-1.17.11 → kaggle_environments-1.18.0}/setup.cfg +0 -0
@@ -4,4 +4,6 @@ recursive-include kaggle_environments *.html
4
4
  recursive-include kaggle_environments *.js
5
5
  recursive-include kaggle_environments *.ts
6
6
  global-exclude */node_modules
7
- recursive-include kaggle_environments *.json
7
+ recursive-include kaggle_environments *.json
8
+ recursive-include kaggle_environments/envs/cabt *.so
9
+ recursive-include kaggle_environments/envs/cabt *.dll
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaggle-environments
3
- Version: 1.17.11
3
+ Version: 1.18.0
4
4
  Summary: Kaggle Environments
5
5
  Home-page: https://github.com/Kaggle/kaggle-environments
6
6
  Author: Kaggle
@@ -37,7 +37,7 @@ Dynamic: summary
37
37
  # [<img src="https://kaggle.com/static/images/site-logo.png" height="50" style="margin-bottom:-15px" />](https://kaggle.com) Environments
38
38
 
39
39
  ```bash
40
- pip install kaggle-environments
40
+ uv pip install kaggle-environments
41
41
  ```
42
42
 
43
43
  # TLDR;
@@ -320,72 +320,3 @@ The following rendering modes are supported:
320
320
  out = env.render(mode="ansi")
321
321
  print(out)
322
322
  ```
323
-
324
- # Command Line
325
-
326
- ```sh
327
- > python main.py -h
328
- ```
329
-
330
- ## List Registered Environments
331
-
332
- ```sh
333
- > python main.py list
334
- ```
335
-
336
- ## Evaluate Episode Rewards
337
-
338
- ```sh
339
- python main.py evaluate --environment tictactoe --agents random random --episodes 10
340
- ```
341
-
342
- ## Run an Episode
343
-
344
- ```sh
345
- > python main.py run --environment tictactoe --agents random /pathtomy/agent.py --debug True
346
- ```
347
-
348
- ## Load an Episode
349
-
350
- This is useful when converting an episode json output into html.
351
-
352
- ```sh
353
- python main.py load --environment tictactoe --steps [...] --render '{"mode": "html"}'
354
- ```
355
-
356
- # HTTP Server
357
-
358
- The HTTP server contains the same interface/actions as the CLI above merging both POST body and GET params.
359
-
360
- ## Setup
361
-
362
- ```bash
363
- python main.py http-server --port=8012 --host=0.0.0.0
364
- ```
365
-
366
- ### Running Agents on Separate Servers
367
-
368
- ```python
369
- # How to run agent on a separate server.
370
- import requests
371
- import json
372
-
373
- path_to_agent1 = "/home/ajeffries/git/playground/agent1.py"
374
- path_to_agent2 = "/home/ajeffries/git/playground/agent2.py"
375
-
376
- agent1_url = f"http://localhost:5001?agents[]={path_to_agent1}"
377
- agent2_url = f"http://localhost:5002?agents[]={path_to_agent2}"
378
-
379
- body = {
380
- "action": "run",
381
- "environment": "tictactoe",
382
- "agents": [agent1_url, agent2_url]
383
- }
384
- resp = requests.post(url="http://localhost:5000", data=json.dumps(body)).json()
385
-
386
- # Inflate the response replay to visualize.
387
- from kaggle_environments import make
388
- env = make("tictactoe", steps=resp["steps"], debug=True)
389
- env.render(mode="ipython")
390
- print(resp)
391
- ```
@@ -1,7 +1,7 @@
1
1
  # [<img src="https://kaggle.com/static/images/site-logo.png" height="50" style="margin-bottom:-15px" />](https://kaggle.com) Environments
2
2
 
3
3
  ```bash
4
- pip install kaggle-environments
4
+ uv pip install kaggle-environments
5
5
  ```
6
6
 
7
7
  # TLDR;
@@ -284,72 +284,3 @@ The following rendering modes are supported:
284
284
  out = env.render(mode="ansi")
285
285
  print(out)
286
286
  ```
287
-
288
- # Command Line
289
-
290
- ```sh
291
- > python main.py -h
292
- ```
293
-
294
- ## List Registered Environments
295
-
296
- ```sh
297
- > python main.py list
298
- ```
299
-
300
- ## Evaluate Episode Rewards
301
-
302
- ```sh
303
- python main.py evaluate --environment tictactoe --agents random random --episodes 10
304
- ```
305
-
306
- ## Run an Episode
307
-
308
- ```sh
309
- > python main.py run --environment tictactoe --agents random /pathtomy/agent.py --debug True
310
- ```
311
-
312
- ## Load an Episode
313
-
314
- This is useful when converting an episode json output into html.
315
-
316
- ```sh
317
- python main.py load --environment tictactoe --steps [...] --render '{"mode": "html"}'
318
- ```
319
-
320
- # HTTP Server
321
-
322
- The HTTP server contains the same interface/actions as the CLI above merging both POST body and GET params.
323
-
324
- ## Setup
325
-
326
- ```bash
327
- python main.py http-server --port=8012 --host=0.0.0.0
328
- ```
329
-
330
- ### Running Agents on Separate Servers
331
-
332
- ```python
333
- # How to run agent on a separate server.
334
- import requests
335
- import json
336
-
337
- path_to_agent1 = "/home/ajeffries/git/playground/agent1.py"
338
- path_to_agent2 = "/home/ajeffries/git/playground/agent2.py"
339
-
340
- agent1_url = f"http://localhost:5001?agents[]={path_to_agent1}"
341
- agent2_url = f"http://localhost:5002?agents[]={path_to_agent2}"
342
-
343
- body = {
344
- "action": "run",
345
- "environment": "tictactoe",
346
- "agents": [agent1_url, agent2_url]
347
- }
348
- resp = requests.post(url="http://localhost:5000", data=json.dumps(body)).json()
349
-
350
- # Inflate the response replay to visualize.
351
- from kaggle_environments import make
352
- env = make("tictactoe", steps=resp["steps"], debug=True)
353
- env.render(mode="ipython")
354
- print(resp)
355
- ```
@@ -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.11"
23
+ __version__ = "1.18.0"
24
24
 
25
25
  __all__ = ["Agent", "environments", "errors", "evaluate", "http_request",
26
26
  "make", "register", "utils", "__version__",
@@ -1,6 +1,6 @@
1
1
  import requests
2
2
 
3
- from typing import *
3
+ from typing import List
4
4
 
5
5
  base_url = "https://www.kaggle.com/requests/EpisodeService/"
6
6
  get_url = base_url + "GetEpisodeReplay"
@@ -8,30 +8,22 @@ list_url = base_url + "ListEpisodes"
8
8
 
9
9
 
10
10
  def get_episode_replay(episode_id: int):
11
- body = {
12
- "EpisodeId": episode_id
13
- }
11
+ body = {"EpisodeId": episode_id}
14
12
 
15
13
  response = requests.post(get_url, json=body)
16
14
  return response.json()
17
15
 
18
16
 
19
17
  def list_episodes(episode_ids: List[int]):
20
- return __list_episodes({
21
- "Ids": episode_ids
22
- })
18
+ return __list_episodes({"Ids": episode_ids})
23
19
 
24
20
 
25
21
  def list_episodes_for_team(team_id: int):
26
- return __list_episodes({
27
- "TeamId": team_id
28
- })
22
+ return __list_episodes({"TeamId": team_id})
29
23
 
30
24
 
31
25
  def list_episodes_for_submission(submission_id: int):
32
- return __list_episodes({
33
- "SubmissionId": submission_id
34
- })
26
+ return __list_episodes({"SubmissionId": submission_id})
35
27
 
36
28
 
37
29
  def __list_episodes(body):
@@ -0,0 +1,164 @@
1
+
2
+ function renderer(context) {
3
+ const step = context.step
4
+ const visList = context.environment.steps[0][0].visualize
5
+ const energyText = "CGRWLPFDM A"
6
+
7
+ const info = context.environment.info
8
+ const players = [
9
+ info?.TeamNames?.[0] || "Player 0",
10
+ info?.TeamNames?.[1] || "Player 1"
11
+ ]
12
+
13
+ let canvas = context.parent.querySelector("canvas")
14
+ if (!canvas) {
15
+ container = document.createElement("div")
16
+ container.style.position = "relative"
17
+ context.parent.appendChild(container)
18
+
19
+ canvas = document.createElement("canvas")
20
+ canvas.width = 750
21
+ canvas.height = 700
22
+ container.appendChild(canvas)
23
+
24
+ if (visList) {
25
+ for (let k = 0; k < 2; k++) {
26
+ const button = document.createElement("button")
27
+ button.style.width = "120px"
28
+ button.style.height = "50px"
29
+ button.style.left = k == 0 ? "240px" : "380px"
30
+ button.style.top = "10px"
31
+ button.style.position = "absolute"
32
+ button.style.zIndex = 1
33
+ button.innerHTML = "Open Visualizer<br>" + players[k]
34
+ button.addEventListener("click", (e) => {
35
+ for (let i = 0; i < visList.length; i++) {
36
+ for (let j = 0; j < 2; j++) {
37
+ visList[i].current.players[j].ramainingTime = context.environment.steps[i][j].observation.remainingOverageTime
38
+ }
39
+ }
40
+ visList[0].ps = players
41
+
42
+ const input = document.createElement("input")
43
+ input.type = "hidden"
44
+ input.name = "json"
45
+ input.value = JSON.stringify(visList)
46
+
47
+ const form = document.createElement("form")
48
+ form.method = "POST"
49
+ form.action = "https://ptcgvis.heroz.jp/Visualizer/Replay/"
50
+ if (info.EpisodeId == null) {
51
+ form.action += k
52
+ } else {
53
+ form.action += info.EpisodeId + "/" + k
54
+ }
55
+ form.target = "_blank"
56
+ form.appendChild(input)
57
+
58
+ document.body.appendChild(form)
59
+ form.submit()
60
+ })
61
+ container.appendChild(button)
62
+ }
63
+ } else {
64
+ const ctx = canvas.getContext("2d")
65
+ ctx.strokeStyle = "#ccc"
66
+ ctx.fillStyle = "#fff"
67
+ ctx.font = "30px sans-serif"
68
+ ctx.fillText("No visualize data.", 10, 100)
69
+ const error = context.environment.steps[0][0].error
70
+ if (error) {
71
+ ctx.fillText(error, 10, 150)
72
+ }
73
+ }
74
+ }
75
+
76
+ if (visList.length <= step) {
77
+ return
78
+ }
79
+ const vis = visList[step]
80
+ const state = vis.current
81
+
82
+ const ctx = canvas.getContext("2d")
83
+ ctx.clearRect(0, 0, canvas.width, canvas.height)
84
+
85
+ ctx.strokeStyle = "#ccc"
86
+ ctx.fillStyle = "#fff"
87
+ ctx.lineWidth = 2
88
+
89
+ ctx.font = "20px sans-serif"
90
+ if (state.result >= 0) {
91
+ if (state.result == 2) {
92
+ ctx.fillText("Draw", 330, 70)
93
+ } else {
94
+ ctx.fillText(players[state.result] + " Win", 310, 120)
95
+ }
96
+ }
97
+
98
+ ctx.font = "12px sans-serif"
99
+
100
+ const drawCard = (x, y, card) => {
101
+ ctx.beginPath()
102
+ ctx.rect(x, y, 80, 60)
103
+ ctx.stroke()
104
+ nm = card.name
105
+ nm2 = null
106
+ if (nm.length >= 13) {
107
+ for (let i = 0; i < nm.length; i++) {
108
+ if (nm[i] == " ") {
109
+ nm2 = nm.substring(i + 1)
110
+ nm = nm.substring(0, i)
111
+ break
112
+ }
113
+ }
114
+ }
115
+ ctx.fillText(nm, x + 5, y + 13)
116
+ if (nm2 != null) {
117
+ ctx.fillText(nm2, x + 5, y + 27)
118
+ }
119
+ }
120
+ const drawField = (x, y, card) => {
121
+ drawCard(x, y, card)
122
+ ctx.fillText("HP " + card.hp, x + 5, y + 41)
123
+ energy = ""
124
+ for (let e of card.energies) {
125
+ energy = energy + energyText[e]
126
+ }
127
+ ctx.fillText(energy, x + 5, y + 55)
128
+ }
129
+ const posY = (index, len) => {
130
+ const center = 290
131
+ let height
132
+ if (len <= 8) {
133
+ height = 35 * len
134
+ } else {
135
+ height = 280
136
+ }
137
+ return center + height * (2 * index + 1 - len) / len
138
+ }
139
+
140
+ for (let j = 0; j < state.stadium.length; j++) {
141
+ drawCard(330, 420, state.stadium[j])
142
+ }
143
+
144
+ for (let i = 0; i < 2; i++) {
145
+ const ps = state.players[i]
146
+
147
+ ctx.fillText("Active", i == 0 ? 245 : 425, 270)
148
+ ctx.fillText("Bench", i == 0 ? 145 : 525, 10)
149
+ ctx.fillText("Hand", i == 0 ? 15 : 655, 10)
150
+ ctx.fillText("Deck " + ps.deckCount, i == 0 ? 258 : 438, 150)
151
+ ctx.fillText("Discard " + ps.discard.length, i == 0 ? 245 : 425, 170)
152
+ ctx.fillText("Prize " + ps.prize.length, i == 0 ? 258 : 438, 200)
153
+
154
+ for (let j = 0; j < ps.active.length; j++) {
155
+ drawField(i == 0 ? 240 : 420, posY(j, ps.active.length), ps.active[j])
156
+ }
157
+ for (let j = 0; j < ps.bench.length; j++) {
158
+ drawField(i == 0 ? 140 : 520, posY(j, ps.bench.length), ps.bench[j])
159
+ }
160
+ for (let j = 0; j < ps.hand.length; j++) {
161
+ drawCard(i == 0 ? 10 : 650, posY(j, ps.hand.length), ps.hand[j])
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "cabt",
3
+ "title": "Card Battle",
4
+ "description": "Limited Card Battle.",
5
+ "version": "1.0.0",
6
+ "agents": [2],
7
+ "configuration": {
8
+ "episodeSteps": 10000,
9
+ "actTimeout": 0,
10
+ "runTimeout": 3000
11
+ },
12
+ "reward": {
13
+ "description": "Lost:-1, Won:1, Draw:0",
14
+ "enum": [-1, 0, 1],
15
+ "default": 0
16
+ },
17
+ "observation": {
18
+ "remainingOverageTime": 600
19
+ },
20
+ "action": {
21
+ "description": "List of option index.",
22
+ "type": "array",
23
+ "default": []
24
+ },
25
+ "status": {
26
+ "defaults": ["INACTIVE", "INACTIVE"]
27
+ }
28
+ }
@@ -0,0 +1,119 @@
1
+ import random
2
+ import os
3
+ import json
4
+
5
+ from .cg.sim import Battle
6
+ from .cg.game import battle_start, battle_finish, battle_select, visualize_data
7
+
8
+ deck = [5,5,5,5,5,5,5,5,5,5,9,9,77,77,77,77,156,156,156,156,157,157,157,157,331,331,331,331,408,408,408,408,474,474,474,474,528,528,528,528,530,530,530,530,532,554,554,554,576,576,576,576,585,585,585,585,630,630,630,630]
9
+
10
+ def random_agent(obs: dict) -> list[int]:
11
+ if obs["select"] == None:
12
+ return deck
13
+ return random.sample(list(range(len(obs["select"]["option"]))), obs["select"]["maxCount"])
14
+
15
+ def first_agent(obs: dict) -> list[int]:
16
+ if obs["select"] == None:
17
+ return deck
18
+ return list(range(obs["select"]["maxCount"]))
19
+
20
+ agents = {"random": random_agent, "first": first_agent}
21
+
22
+
23
+ def finish(env):
24
+ if len(env.steps) > 0:
25
+ env.steps[0][0]["visualize"] = json.loads(visualize_data())
26
+ battle_finish()
27
+
28
+ def interpreter(state, env):
29
+ if env.done:
30
+ Battle.battle_ptr = None
31
+ for i in range(2):
32
+ state[i].status = "ACTIVE"
33
+ o = state[i].observation
34
+ o["select"] = None
35
+ o["logs"] = []
36
+ o["current"] = None
37
+ o["search_begin_input"] = None
38
+ return state
39
+ elif Battle.battle_ptr == None:
40
+ decks = [state[0].action, state[1].action]
41
+ error = False
42
+ for i in range(2):
43
+ if state[i].status == "TIMEOUT" or state[i].status == "ERROR":
44
+ error = True
45
+ continue
46
+ if len(decks[i]) != 60:
47
+ state[i].status = "INVALID"
48
+ env.steps[0][0]["error"] = f"Player {i}'s deck does not have 60 cards."
49
+ error = True
50
+ if not error:
51
+ _, start_data = battle_start(state[0].action, state[1].action)
52
+ if start_data.errorPlayer >= 0:
53
+ state[start_data.errorPlayer].status = "INVALID"
54
+ env.steps[0][0]["error"] = f"Player {i}'s deck error."
55
+ error = True
56
+ if error:
57
+ for i in range(2):
58
+ if state[i].status == "ACTIVE":
59
+ state[i].status = "DONE"
60
+ return state
61
+ if Battle.battle_ptr == None:
62
+ raise ValueError("battle_ptr None.")
63
+ else:
64
+ error = False
65
+ select_player = Battle.obs["current"]["yourIndex"]
66
+ if state[select_player].status == "TIMEOUT" or state[select_player].status == "ERROR":
67
+ error = True
68
+ else:
69
+ try:
70
+ battle_select(state[select_player].action)
71
+ except:
72
+ state[select_player].status = "INVALID"
73
+ error = True
74
+
75
+ if error:
76
+ state[select_player].reward = -1
77
+ state[1 - select_player].status = "DONE"
78
+ state[1 - select_player].reward = 1
79
+ finish(env)
80
+ return state
81
+
82
+ obs = Battle.obs
83
+ s = obs["current"]
84
+ if s["result"] >= 0:
85
+ state[0].status = "DONE"
86
+ state[1].status = "DONE"
87
+ if s["result"] == 0:
88
+ state[0].reward = 1
89
+ state[1].reward = -1
90
+ elif s["result"] == 1:
91
+ state[0].reward = -1
92
+ state[1].reward = 1
93
+ else:
94
+ state[0].reward = 0
95
+ state[1].reward = 0
96
+ finish(env)
97
+ else:
98
+ index = s["yourIndex"]
99
+ state[index].status = "ACTIVE"
100
+ state[1 - index].status = "INACTIVE"
101
+ o = state[index].observation
102
+ o["select"] = obs["select"]
103
+ o["logs"] = obs["logs"]
104
+ o["current"] = obs["current"]
105
+ o["search_begin_input"] = obs["search_begin_input"]
106
+ return state
107
+
108
+ def renderer(state, env):
109
+ return json.dumps(Battle.obs)
110
+
111
+ def html_renderer():
112
+ jspath = os.path.abspath(os.path.join(os.path.dirname(__file__), "cabt.js"))
113
+ with open(jspath, encoding="utf-8") as f:
114
+ return f.read()
115
+
116
+
117
+ jsonpath = os.path.abspath(os.path.join(os.path.dirname(__file__), "cabt.json"))
118
+ with open(jsonpath) as f:
119
+ specification = json.load(f)
@@ -0,0 +1,70 @@
1
+ import ctypes
2
+ import json
3
+
4
+ from .sim import StartData, lib, Battle
5
+
6
+ def _get_battle_data() -> dict:
7
+ """Retrieve the current state.
8
+
9
+ Returns:
10
+ dict: Current observation.
11
+ """
12
+ sd = lib.GetBattleData(Battle.battle_ptr)
13
+ Battle.obs = json.loads(sd.json.decode())
14
+ Battle.obs["search_begin_input"] = ctypes.string_at(sd.data, sd.count).decode('ascii')
15
+ return Battle.obs
16
+
17
+ def battle_start(deck0: list[int], deck1: list[int]) -> tuple[dict, StartData]:
18
+ """Start the battle.
19
+
20
+ Args:
21
+ deck0: List of card IDs included in the first player’s deck.
22
+ deck1: List of card IDs included in the second player’s deck.
23
+
24
+ Returns:
25
+ tuple: A tuple containing:
26
+ - dict: First observation.
27
+ - StartData: Battle start data.
28
+ """
29
+ if len(deck0) != 60 or len(deck1) != 60:
30
+ raise ValueError("The deck must contain 60 cards.")
31
+ cards = deck0 + deck1
32
+ arg = (ctypes.c_int*len(cards))(*cards)
33
+ start_data = lib.BattleStart(arg)
34
+ Battle.battle_ptr = start_data.battlePtr
35
+ if Battle.battle_ptr == None or Battle.battle_ptr == 0:
36
+ return (None, start_data)
37
+ else:
38
+ return (_get_battle_data(), start_data)
39
+
40
+ def battle_finish():
41
+ """End the battle and free the memory used during it."""
42
+ lib.BattleFinish(Battle.battle_ptr)
43
+
44
+ def battle_select(select_list: list[int]) -> dict:
45
+ """Select option.
46
+
47
+ Args:
48
+ select_list:
49
+
50
+ Returns:
51
+ dict: Next observation.
52
+ """
53
+ if not isinstance(select_list, list) or not all(isinstance(i, int) for i in select_list):
54
+ raise ValueError("select_list is not list[int]")
55
+ arg = (ctypes.c_int*len(select_list))(*select_list)
56
+ err = lib.Select(Battle.battle_ptr, arg, len(select_list))
57
+ if err != 0:
58
+ if err == 30:
59
+ raise ValueError("battle_ptr broken.")
60
+ else:
61
+ raise IndexError()
62
+ return _get_battle_data()
63
+
64
+ def visualize_data() -> str:
65
+ """Retrieve the data to be used by the visualizer.
66
+
67
+ Returns:
68
+ str: The data to be used by the visualizer.
69
+ """
70
+ return lib.VisualizeData(Battle.battle_ptr).decode()
@@ -0,0 +1,44 @@
1
+ import ctypes
2
+ import os
3
+
4
+ class StartData(ctypes.Structure):
5
+ _fields_ = [
6
+ ("battlePtr", ctypes.c_void_p),
7
+ ("errorPlayer", ctypes.c_int),
8
+ ("errorType", ctypes.c_int),
9
+ ]
10
+
11
+ class SerialData(ctypes.Structure):
12
+ _fields_ = [
13
+ ("json", ctypes.c_char_p),
14
+ ("data", ctypes.POINTER(ctypes.c_ubyte)),
15
+ ("count", ctypes.c_int),
16
+ ("selectPlayer", ctypes.c_int)
17
+ ]
18
+
19
+ if os.name == 'nt':
20
+ lib_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "cg.dll")
21
+ else:
22
+ lib_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "libcg.so")
23
+ lib = ctypes.cdll.LoadLibrary(lib_path)
24
+
25
+ lib.GameInitialize()
26
+
27
+ lib.BattleStart.restype = StartData
28
+ lib.BattleStart.argtypes = [ctypes.POINTER(ctypes.c_int)]
29
+
30
+ lib.BattleFinish.argtypes = [ctypes.c_void_p]
31
+
32
+ lib.GetBattleData.restype = SerialData
33
+ lib.GetBattleData.argtypes = [ctypes.c_void_p]
34
+
35
+ lib.Select.restype = ctypes.c_int
36
+ lib.Select.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_int), ctypes.c_int]
37
+
38
+ lib.VisualizeData.restype = ctypes.c_char_p
39
+ lib.VisualizeData.argtypes = [ctypes.c_void_p]
40
+
41
+ class Battle:
42
+ battle_ptr = None
43
+ obs = None
44
+ raminingTime = [[], []]