andydotxyz / chess

A chess GUI build using the Fyne toolkit.
Other
54 stars 15 forks source link

Embed a CPU player #7

Open andydotxyz opened 3 years ago

andydotxyz commented 3 years ago

Allow those without spearfish installed to get a better game than just a random move generator.

TintifaxTheGreat commented 2 years ago

Would be interested in working on this (a minimalist "engine" for those who have no external engine installed). As a preparatory work, I would do some refactoring on the existing code (mostly done already in my fork). @andydotxyz Please let me know if you want me to contribute to your repo.

andydotxyz commented 2 years ago

Thanks for the interest @TintifaxTheGreat, it would be great if you could help contributing a non-spearfish CPU player. I'm not sure what the preparatory work would be, perhaps you could link to commits you are referring to?

TintifaxTheGreat commented 2 years ago

Thanks @andydotxyz for your quick response. The idea behind the preparatory work is to separate the chess playing "agents" (humans, UCI, random, the future CPU player etc.) from the UI and to establish an abstraction to be able to exchange them with each other. This would also be beneficial for future multiplayer mode. Also, the possibility to choose white or black (or to let the engines play each other) is already given.

I am referring to these changes: https://github.com/TintifaxTheGreat/chess/commit/057232eb8f30c7b98705ef3b8a429c9f42e8c618

Still, testing is needed, and these issues are present at the moment:

andydotxyz commented 2 years ago

Cool, sounds like a great contribution. However don't add the preference removal - that would be a regression. If the changes introduce the issue we can look into it here, if it was already present then please raise a bug in Fyne.

TintifaxTheGreat commented 2 years ago

The preparatory work is now done, also the type of the opponent (at the moment only "human" or "engine") is stored properly in preferences.