server and stuff
This commit is contained in:
parent
816cdfae00
commit
e9a46c79df
76
app.py
Normal file
76
app.py
Normal file
|
@ -0,0 +1,76 @@
|
|||
from flask import Flask, request
|
||||
from flask_json import FlaskJSON, as_json_p
|
||||
from flask_cors import CORS
|
||||
from board import Board
|
||||
import main
|
||||
import random
|
||||
from network import Network
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
app.config['JSON_ADD_STATUS'] = False
|
||||
app.config['JSON_JSONP_OPTIONAL'] = False
|
||||
|
||||
json = FlaskJSON(app)
|
||||
CORS(app)
|
||||
|
||||
config = main.config.copy()
|
||||
config['model'] = "player_testings"
|
||||
config['ply'] = "1"
|
||||
config['board_representation'] = 'quack-fat'
|
||||
network = Network(config, config['model'])
|
||||
|
||||
network.restore_model()
|
||||
|
||||
|
||||
@app.route('/get_board', methods=['GET'])
|
||||
@as_json_p
|
||||
def get_board():
|
||||
return {'board':'0, 2, 0, 0, 0, 0, -5, 0, -3, 0, 0, 0, 5, -5, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, -2, 0'}
|
||||
|
||||
|
||||
|
||||
def check_move(prev, curr):
|
||||
|
||||
# TODO: Decide on player system and implement roll properly
|
||||
legal_states = Board.calculate_legal_states(tuple(prev), -1, [1,2])
|
||||
|
||||
truth_list = [list(curr) == list(ele) for ele in legal_states]
|
||||
|
||||
return any(truth_list)
|
||||
|
||||
|
||||
|
||||
@app.route('/bot_move', methods=['POST'])
|
||||
def bot_move():
|
||||
data = request.get_json(force=True)
|
||||
|
||||
board = [int(x) for x in data['board'].split(',')]
|
||||
|
||||
roll = (random.randrange(1,7), random.randrange(1,7))
|
||||
print(roll)
|
||||
board, _ = network.make_move(tuple(board), roll, 1)
|
||||
print("Boards!:",board)
|
||||
|
||||
return ",".join([str(x) for x in list(board)])
|
||||
|
||||
|
||||
|
||||
@app.route('/post_board', methods=['POST'])
|
||||
def post_board():
|
||||
data = request.get_json(force=True)
|
||||
|
||||
board = [int(x) for x in data['board'].split(',')]
|
||||
prev_board = [int(x) for x in data['prev_board'].split(',')]
|
||||
|
||||
|
||||
str_board = ",".join([str(x) for x in (board if check_move(prev_board,board) else prev_board)])
|
||||
|
||||
print(check_move(prev_board, board))
|
||||
|
||||
|
||||
return str_board
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run()
|
Loading…
Reference in New Issue
Block a user