Following on from my graph traversal tutorial at https://swish.swi-prolog.org/p/Graphs1.swinb, I’ve elaborated the code to handle adversarial search at a tutorial at https://swish.swi-prolog.org/p/minimax19.swinb
It’s still work in progress, and only has two easy tic-tac-toe examples so far. I’m planning to develop it further to use iterative deepening with alpha-beta pruning in due course, but it’s far enough for anyone interested in AI basics to tinker with.
Comments and suggestions welcome as always, since I’m doing it as much for my own education as others.
(BTW: I’ve had to change the url from Games, to Games1, Games2 … to minimax because Swish constantly prevents me from saving for some reason. I’m hoping not calling it GamesN will help since I’m guessing its a popular name).