Introducing MankalaEngine

João Gouveia joaotalonegouveia at gmail.com
Thu Jul 25 22:09:34 BST 2024


On 7/23/24 22:32, Albert Astals Cid wrote:
> El dimarts, 23 de juliol del 2024, a les 18:57:56 (CEST), João Gouveia va
> escriure:
>> Hi everyone,
>>
>> I've been developing MankalaEngine, a library for creating computerized
>> opponents for Mancala games, as part of my GSoC project.
>>
>> In the coming weeks, I'll be developing a GUI for playing Mancala that uses
>> this engine, with the objective of integrating both projects into KDE.
>>
>> You can check out the library at MankalaEngine
>> <https://invent.kde.org/joaotgouveia/mankalaengine>. Any feedback is
>> greatly appreciated.
> Good work!
>
>
> Runinng make install installs the wrong things
> https://pastebin.com/raw/1PS1kczY
>
>
>
>
> You probably want to rename some of the functions that return bool to isXXX,
> see these two functions
>
> finishGame
> gameOver
>
> by the name it would seem they both do almost the same?
>
> Now if the second is called
>
> isGameOver
>
> It's much clearer what it really does
>
> Same for validMove, with that name it would seem it's part of some hint system
> that will return a valid move, while if the name is isValidMode, it's much
> clearer that you give it a move and returns yes/no.
>
>
>
>
> If the idea is making this a public library (as oposed as something that will
> just live inside the game itself) it is possible a good idea to use d-pointer/
> pimpl for the classes, i.e. Rules should not have the private members directly
> in the class but hidden in a Private class, search the internet, there's
> extensive documentation about that.
>
>
>
> Cheers,
>    Albert
>
>
>> If you're interested, you can also check out my blog posts documenting the
>> library's development at joaotgouveia.com.
>
>
>

Thank you for your feedback!

I've renamed functions that return boolean values to names that better 
convey this, as per your suggestion.

I've also fixed the installation process and added a section to the 
project's README detailing how to incorporate MankalaEngine in projects 
using CMake. However, I have only tested installing and using the 
library as a dependency in a project on Linux.

Regarding the use of the PImpl idiom, is it really justifiable in this 
case? Since every class is fairly simple, implementing them using PImpl 
seems a bit overkill.



More information about the kde-games-devel mailing list