File size: 1,263 Bytes
d288960
770f950
 
0154f58
e7988f7
b3c5de3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
770f950
e7988f7
b3c5de3
 
 
 
770f950
b3c5de3
770f950
 
e7988f7
 
3c554b8
 
e7988f7
39de071
e7988f7
770f950
39de071
 
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
from my_chess.scripts.scripts import HumanVsBot
from my_chess.learner.environments import Chess

from chessmodels import DCMinMax
import streamlit as st
from streamlit_image_coordinates import streamlit_image_coordinates

class HvB(HumanVsBot):
    @staticmethod
    @st.cache_resource()
    def get_hvb_manager(
        _model,
        _environment,
        _extra_model_environment_context,
        **kwargs):
        return HvB(
            model = _model,
            environment = _environment,
            extra_model_environment_context = _extra_model_environment_context,
            **kwargs)

def play(bot_select):
    play = HvB.get_hvb_manager(
        _model=DCMinMax.from_pretrained("mzimm003/{}".format(bot_select)),
        _environment=Chess(render_mode="rgb_array"),
        _extra_model_environment_context=lambda env: {"board":env.board}
    )
    st.session_state["board"] = streamlit_image_coordinates(play.render_board(), key="brd", click_and_drag=True)
    play.run()

def main(kwargs=None):
    bot_select = st.selectbox(
        label="bot",
        options=["DeepChessReplicationMinMax"],
    )
    st.button("Play bot!", on_click=play, args=[bot_select])

if __name__ == "__main__":
    # main()
    play("DeepChessReplicationMinMax")