如何在Python、Python chess和Flask中为我自己的基于国际象棋的网站创建一个类似Lichess的引擎到玩家的通信API?
因此,这是一个大型大学项目,我正在尝试创建一个网站,玩家可以登录,玩引擎(在队友的PC或服务器上本地运行),然后显示输出,让玩家玩动作,再次将动作传达给引擎,并获得引擎的输出,并在浏览器中显示它们 这就是我的想法:如何在Python、Python chess和Flask中为我自己的基于国际象棋的网站创建一个类似Lichess的引擎到玩家的通信API?,flask,api-design,chessboard.js,python-chess,lichess,Flask,Api Design,Chessboard.js,Python Chess,Lichess,因此,这是一个大型大学项目,我正在尝试创建一个网站,玩家可以登录,玩引擎(在队友的PC或服务器上本地运行),然后显示输出,让玩家玩动作,再次将动作传达给引擎,并获得引擎的输出,并在浏览器中显示它们 这就是我的想法:用户播放移动->移动响应在本地显示->通过API转到引擎作为包装函数的输入->引擎播放移动->在用户端点显示等等。 我考虑使用Python chess为我的团队创建的chess引擎创建一个包装器函数,以便获得最佳的移动、当前的FEN等等 接下来,我考虑使用Chess.js和chessb
用户播放移动->移动响应在本地显示->通过API转到引擎作为包装函数的输入->引擎播放移动->在用户端点显示等等。
我考虑使用Python chess为我的团队创建的chess引擎创建一个包装器函数,以便获得最佳的移动、当前的FEN等等
接下来,我考虑使用Chess.js和chessboard.js/chessboard3.js来显示基本动作并让玩家玩
但现在,我无法考虑如何在本地存储为“.exe”文件(带有python象棋包装器)的引擎和web浏览器之间创建通信桥梁。我无法思考如何编写API。我所能想到的最好的方法就是使用Flask框架,从Firebase数据库中获取新的移动,用户的移动将被存储和记录。类似地,带有引擎的服务器PC将播放移动,该移动将存储在Firebase数据库中,并再次显示在客户端
客户端处理将由Chess.js、chessboard.js等国际象棋库完成,服务器端处理将主要由python、python国际象棋和其他一些面向Firebase的通信库完成
我真的需要一些帮助来弄清楚这一点,因为我对设计API真的很陌生,而且对我来说它非常模糊。这是我所能想到的最接近的,但我知道对Firebase DB的整个获取和检索调用将花费大量时间和吞吐量
谢谢大家