kaggle-environments 1.16.3__py2.py3-none-any.whl → 1.16.4__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kaggle-environments might be problematic. Click here for more details.
- kaggle_environments/__init__.py +1 -1
- kaggle_environments/envs/chess/chess.json +5 -5
- kaggle_environments/envs/chess/chess.py +8 -23
- kaggle_environments/envs/chess/test_chess.py +2 -2
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/METADATA +1 -1
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/RECORD +10 -10
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/LICENSE +0 -0
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/WHEEL +0 -0
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/entry_points.txt +0 -0
- {kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/top_level.txt +0 -0
kaggle_environments/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chess",
|
|
3
3
|
"title": "Chess",
|
|
4
|
-
"description": "Classic Chess with full
|
|
4
|
+
"description": "Classic Chess with full rule set",
|
|
5
5
|
"version": "1.0.0",
|
|
6
6
|
"agents": [2],
|
|
7
7
|
"configuration": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"description": "Obsolete field kept for backwards compatibility, please use observation.remainingOverageTime.",
|
|
13
13
|
"type": "number",
|
|
14
14
|
"minimum": 0,
|
|
15
|
-
"default":
|
|
15
|
+
"default": 10
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"reward": {
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"defaults": ["white", "black"],
|
|
33
33
|
"enum": ["white", "black"]
|
|
34
34
|
},
|
|
35
|
-
"remainingOverageTime": 20,
|
|
36
35
|
"opponentRemainingOverageTime": {
|
|
37
36
|
"description": "Amount of overage time remaining for the opponent.",
|
|
38
37
|
"type": "number",
|
|
39
|
-
"default":
|
|
40
|
-
}
|
|
38
|
+
"default": 10
|
|
39
|
+
},
|
|
40
|
+
"remainingOverageTime": 10
|
|
41
41
|
},
|
|
42
42
|
"action": {
|
|
43
43
|
"description": "Move in UCI notation (e.g., e2e4)",
|
|
@@ -165,31 +165,19 @@ def square_str_to_int(square_str):
|
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
seen_positions = defaultdict(int)
|
|
168
|
-
game_one_complete = False
|
|
169
|
-
game_start_position = math.floor(random.random() * len(OPENINGS))
|
|
170
|
-
|
|
171
168
|
|
|
172
169
|
def interpreter(state, env):
|
|
173
170
|
global seen_positions
|
|
174
|
-
global game_one_complete
|
|
175
|
-
global game_start_position
|
|
176
171
|
if env.done:
|
|
177
|
-
game_one_complete = False
|
|
178
172
|
seen_positions = defaultdict(int)
|
|
179
173
|
game_start_position = math.floor(random.random() * len(OPENINGS))
|
|
174
|
+
if "seed" in env.configuration:
|
|
175
|
+
seed = int(env.configuration["seed"]) % len(OPENINGS)
|
|
176
|
+
game_start_position = seed & len(OPENINGS)
|
|
180
177
|
state[0].observation.board = OPENINGS[game_start_position]
|
|
181
178
|
state[1].observation.board = OPENINGS[game_start_position]
|
|
182
179
|
return state
|
|
183
180
|
|
|
184
|
-
if state[0].status == ACTIVE and state[1].status == ACTIVE:
|
|
185
|
-
# set up new game
|
|
186
|
-
state[0].observation.mark, state[1].observation.mark = state[1].observation.mark, state[0].observation.mark
|
|
187
|
-
state[0].observation.board = OPENINGS[game_start_position]
|
|
188
|
-
state[1].observation.board = OPENINGS[game_start_position]
|
|
189
|
-
state[0].status = ACTIVE if state[0].observation.mark == WHITE else INACTIVE
|
|
190
|
-
state[0].status = ACTIVE if state[0].observation.mark == WHITE else INACTIVE
|
|
191
|
-
return state
|
|
192
|
-
|
|
193
181
|
# Isolate the active and inactive agents.
|
|
194
182
|
active = state[0] if state[0].status == ACTIVE else state[1]
|
|
195
183
|
inactive = state[0] if state[0].status == INACTIVE else state[1]
|
|
@@ -201,7 +189,7 @@ def interpreter(state, env):
|
|
|
201
189
|
# The board is shared, only update the first state.
|
|
202
190
|
board = state[0].observation.board
|
|
203
191
|
|
|
204
|
-
# Create a
|
|
192
|
+
# Create a Chessnut game object from the FEN string
|
|
205
193
|
game = Game(board)
|
|
206
194
|
|
|
207
195
|
# Get the action (move) from the agent
|
|
@@ -227,7 +215,6 @@ def interpreter(state, env):
|
|
|
227
215
|
state[0].observation.opponentRemainingOverageTime = state[1].observation.remainingOverageTime
|
|
228
216
|
state[1].observation.opponentRemainingOverageTime = state[0].observation.remainingOverageTime
|
|
229
217
|
|
|
230
|
-
terminal_state = DONE if game_one_complete else ACTIVE
|
|
231
218
|
pawn_or_capture_move_count = int(
|
|
232
219
|
fen.split(" ")[4]) # fen keeps track of this
|
|
233
220
|
# Check for game end conditions
|
|
@@ -235,14 +222,12 @@ def interpreter(state, env):
|
|
|
235
222
|
game.board) or seen_positions[board_str] >= 3 or game.status == Game.STALEMATE:
|
|
236
223
|
active.reward += .5
|
|
237
224
|
inactive.reward += .5
|
|
238
|
-
active.status =
|
|
239
|
-
inactive.status =
|
|
240
|
-
game_one_complete = True
|
|
225
|
+
active.status = DONE
|
|
226
|
+
inactive.status = DONE
|
|
241
227
|
elif game.status == Game.CHECKMATE:
|
|
242
228
|
active.reward += 1
|
|
243
|
-
active.status =
|
|
244
|
-
inactive.status =
|
|
245
|
-
game_one_complete = True
|
|
229
|
+
active.status = DONE
|
|
230
|
+
inactive.status = DONE
|
|
246
231
|
else:
|
|
247
232
|
# Switch turns
|
|
248
233
|
active.status = INACTIVE
|
|
@@ -15,7 +15,7 @@ def test_chess_three_fold():
|
|
|
15
15
|
json = env.toJSON()
|
|
16
16
|
assert json["name"] == "chess"
|
|
17
17
|
assert json["statuses"] == ["DONE", "DONE"]
|
|
18
|
-
assert json["rewards"] == [
|
|
18
|
+
assert json["rewards"] == [0.5, 0.5]
|
|
19
19
|
|
|
20
20
|
def test_chess_100_move_rule():
|
|
21
21
|
env = make("chess", debug=True)
|
|
@@ -23,7 +23,7 @@ def test_chess_100_move_rule():
|
|
|
23
23
|
json = env.toJSON()
|
|
24
24
|
assert json["name"] == "chess"
|
|
25
25
|
assert json["statuses"] == ["DONE", "DONE"]
|
|
26
|
-
assert json["rewards"] == [
|
|
26
|
+
assert json["rewards"] == [0.5, 0.5]
|
|
27
27
|
|
|
28
28
|
def test_sufficient_material():
|
|
29
29
|
game = Game()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
kaggle_environments/__init__.py,sha256=
|
|
1
|
+
kaggle_environments/__init__.py,sha256=ddFc8d0FO0tsxk5jwdm2UKLHc2NeafGrlPEv4H373aw,1682
|
|
2
2
|
kaggle_environments/agent.py,sha256=BpYrAC6EOhJF3Wzynq-CWg8l-z5uXW1Lq4qUsyOM0ik,6203
|
|
3
3
|
kaggle_environments/api.py,sha256=eLBKqr11Ku4tdsMUdUqy74FIVEA_hdV3_QUpX84x3Z8,798
|
|
4
4
|
kaggle_environments/core.py,sha256=IrEkN9cIA2djBAxI8Sz1GRpGNKjhqbnBdV6irAeTm8Q,27851
|
|
@@ -9,9 +9,9 @@ kaggle_environments/schemas.json,sha256=zGzLyhqPdH6QQ0d48SrP5LKbvupprrWvgfQBerLq
|
|
|
9
9
|
kaggle_environments/status_codes.json,sha256=6a8HuS_Vth95W0f2fov21QLdRfA3KbizUvjKmJhYtBc,995
|
|
10
10
|
kaggle_environments/utils.py,sha256=FcI17PA4QK2-hyNp0dryS0TQ2pFlH9K19zDUMmuF4-E,5713
|
|
11
11
|
kaggle_environments/envs/chess/chess.js,sha256=RVwu2meNTKiXxd15WGZXr5NVwm_RgKMlqIFkzKJ7IaM,30743
|
|
12
|
-
kaggle_environments/envs/chess/chess.json,sha256=
|
|
13
|
-
kaggle_environments/envs/chess/chess.py,sha256=
|
|
14
|
-
kaggle_environments/envs/chess/test_chess.py,sha256=
|
|
12
|
+
kaggle_environments/envs/chess/chess.json,sha256=sbTVp645zzEiDZL_lmAEM4023wukPseevBIJks9J6xw,1403
|
|
13
|
+
kaggle_environments/envs/chess/chess.py,sha256=bBzFMw2njsYHN33-_sqJURtac36SiqgLbmBWdaPtMGQ,7667
|
|
14
|
+
kaggle_environments/envs/chess/test_chess.py,sha256=ayZEIWRSD3D6BqhJv0q_M5a-j8-pMm8kb4ACAW-DhBE,1748
|
|
15
15
|
kaggle_environments/envs/connectx/connectx.js,sha256=2j4PigyyZYNH5tzKflmj__8-kT9LMfPsRT_hOkbojUE,9236
|
|
16
16
|
kaggle_environments/envs/connectx/connectx.json,sha256=Tt-vH-em-RKK5scAcjJ82zOvGov42OW6u9IJCPkS9Fo,1783
|
|
17
17
|
kaggle_environments/envs/connectx/connectx.py,sha256=PeQsALGBUJrUnCvYmc6AE8nIdFFKM5GHs24RrL0-xAU,6928
|
|
@@ -201,9 +201,9 @@ kaggle_environments/envs/tictactoe/tictactoe.js,sha256=NZDT-oSG0a6a-rso9Ldh9qkJw
|
|
|
201
201
|
kaggle_environments/envs/tictactoe/tictactoe.json,sha256=zMXZ8-fpT7FBhzz2FFBvRLn4XwtngjEqOieMvI6cCj8,1121
|
|
202
202
|
kaggle_environments/envs/tictactoe/tictactoe.py,sha256=iLNU5V-lz7Xab-d1vpPMfU5jDM3QtgBUH63Y_SU7I9Y,3639
|
|
203
203
|
kaggle_environments/static/player.html,sha256=XyVoe0XxMa2MO1fTDY_rjyjzPN-JZgbVwJIDoLSnlw0,23016
|
|
204
|
-
kaggle_environments-1.16.
|
|
205
|
-
kaggle_environments-1.16.
|
|
206
|
-
kaggle_environments-1.16.
|
|
207
|
-
kaggle_environments-1.16.
|
|
208
|
-
kaggle_environments-1.16.
|
|
209
|
-
kaggle_environments-1.16.
|
|
204
|
+
kaggle_environments-1.16.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
205
|
+
kaggle_environments-1.16.4.dist-info/METADATA,sha256=OLglJwqIuQOokDoNanoqvaCO0vHSiXIOZvTgg3Re3Ok,10699
|
|
206
|
+
kaggle_environments-1.16.4.dist-info/WHEEL,sha256=m9WAupmBd2JGDsXWQGJgMGXIWbQY3F5c2xBJbBhq0nY,110
|
|
207
|
+
kaggle_environments-1.16.4.dist-info/entry_points.txt,sha256=HbVC-LKGQFV6lEEYBYyDTtrkHgdHJUWQ8_qt9KHGqz4,70
|
|
208
|
+
kaggle_environments-1.16.4.dist-info/top_level.txt,sha256=v3MMWIPMQFcI-WuF_dJngHWe9Bb2yH_6p4wat1x4gAc,20
|
|
209
|
+
kaggle_environments-1.16.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{kaggle_environments-1.16.3.dist-info → kaggle_environments-1.16.4.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|