-
Notifications
You must be signed in to change notification settings - Fork 0
/
play_with_model.py
42 lines (31 loc) · 1.11 KB
/
play_with_model.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
38
39
40
41
42
import tensorflow as tf
from tensorflow import keras
import numpy as np
import os
from Agent import Agent
from Game import Game
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
game = Game(9)
# display = 0 to hide the game status
# display = 1 to display the game status with clear screen
# display = 2 to display the game status without clear screen
qfunction = keras.models.load_model('trained_model')
agent = Agent()
wins = 0
N = 1
for ii in range(N):
game.reset(display=1)
while game.done == False:
if game.player == 0:
state = tf.experimental.numpy.atleast_2d(game.state.astype('float32'))
Q = qfunction(state)
actionMask = np.array([(i%6 in game.validCard[game.player]) and (i//6 in game.validStone[game.player]) for i in range(54)])
action = np.argmax(Q*actionMask)
else:
card = int(input('Select the card to play: '))
stone = int(input('Select the card to play: '))
action = card-1+(stone-1)*6
game.step(action)
if game.winner == 0:
wins += 1