forked from HearthSim/SabberStone
-
Notifications
You must be signed in to change notification settings - Fork 0
/
testStateSizeAndActionSize.py
37 lines (36 loc) · 1.26 KB
/
testStateSizeAndActionSize.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import os
import sys
import clr
import zlib
sys.path.append(str(os.getcwd())+"\\SabberStonePythonPort\\bin\\Release\\")
clr.AddReference("SabberStonePythonPort")
from SabberStonePythonPortNS import SabberStonePythonPort
game=SabberStonePythonPort()
maxActionSize=0
maxStateSize=0
lastBiggestState=0
lastBiggestAction=0
for i in range(0,1000):
print(i)
try:
game.Reset()
while not game.GetDone():
nowState=list(game.GetPlayerViewGameBinary())
compressed_data = zlib.compress(bytearray(nowState), level=9)
nowStateSize=len(compressed_data)
nowActionSize=game.GetNumActions()
if nowStateSize>maxStateSize:
print('max state now '+str(nowStateSize))
lastBiggestState=maxStateSize
maxStateSize=nowStateSize
if nowActionSize>maxActionSize:
print('max action size now '+str(nowActionSize))
lastBiggestAction=maxActionSize
maxActionSize=nowActionSize
game.Step(game.GetNumActions()-1)
except:
print('error')
print('Max State: '+str(maxStateSize))
print('Max Action: '+str(maxActionSize))
print('2nd Max State: '+str(lastBiggestState))
print('2nd Max Action: '+str(lastBiggestAction))