I recently started working on the implementation of "Belote" (https://en.wikipedia.org/wiki/Belote). Belote is a 4-player partnership trick-taking game similar to Bridge, featuring trump selection, imperfect information, and partnership play. Compared to Bridge, it uses a smaller 32-card deck and a much simpler bidding phase, making it a potentially useful complementary benchmark for imperfect-information algorithms while still capturing the core challenges of partnership coordination and trick-taking strategy.
My current python implementation follows the official French FFBelote rules, where players either pass or take the contract by selecting a trump suit. It is played by two competing partnerships that score points by winning tricks, with optional Belote/Rebelote support. The rules are available here: https://www.ffbelote.org/wp-content/uploads/2016/01/regles-officielles-de-la-Belote-27-01-2016.pdf.
Before I go any further, I wanted to check what you'd prefer. I assume a C++ implementation is the way to go, both for performance and to stay consistent with the rest of OpenSpiel. In that case, would you recommend keeping the Python implementation, or just removing it once the C++ version is ready to avoid maintaining two versions?
I recently started working on the implementation of "Belote" (https://en.wikipedia.org/wiki/Belote). Belote is a 4-player partnership trick-taking game similar to Bridge, featuring trump selection, imperfect information, and partnership play. Compared to Bridge, it uses a smaller 32-card deck and a much simpler bidding phase, making it a potentially useful complementary benchmark for imperfect-information algorithms while still capturing the core challenges of partnership coordination and trick-taking strategy.
My current python implementation follows the official French FFBelote rules, where players either pass or take the contract by selecting a trump suit. It is played by two competing partnerships that score points by winning tricks, with optional Belote/Rebelote support. The rules are available here: https://www.ffbelote.org/wp-content/uploads/2016/01/regles-officielles-de-la-Belote-27-01-2016.pdf.
Before I go any further, I wanted to check what you'd prefer. I assume a C++ implementation is the way to go, both for performance and to stay consistent with the rest of OpenSpiel. In that case, would you recommend keeping the Python implementation, or just removing it once the C++ version is ready to avoid maintaining two versions?