我想创造一个象棋引擎。我最熟悉SWIFT,而超高性能对我来说并不那么重要(否则我很可能会在C++中学习和编写它)。我需要我的引擎在一个象棋位置
in an FEN formatted
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2
. 然后它会处理这个位置,然后吐出一个移动
algebraic notation
,就像
Nxd4
.
然而,这些细节并不是那么重要,因为我可以用Swift编程所有这些。我想知道的是如何用swift创建一个API来实现这一点。也就是说,url编码的FEN位置被传递一个参数给API,如下所示:
https://www.mywebsite.com/chessEngine?position=rnbqkbnr%2Fpp1ppppp%2F8%2F2p5%2F4P3%2F5N2%2FPPPP1PPP%2FRNBQKB1R%20b%20KQkq%20-%201%202
然后,Swift代码将在后端处理此位置,响应如下:
{status:"success",recommendedMove:"Nxd4",moveTime:"12.34"}
另见:
https://chess.stackexchange.com/questions/26489/creating-chess-engine-machine-learning-vs-traditional-engine