• Sam Moore's avatar
    Mostly messing with "forfax" AI · 041c37d1
    Sam Moore authored
    It would be nice to have an AI that doesn't segfault.
    
    Currently segfault caused by Board::ForgetPiece.
    valgrind outputs a lot of wierd crap about std::vector and uninitialised values
    Uninitialised values created by std::vector::push_back()
    All I am pushing is a simple pointer (Piece*), so I don't know WHY uninitialised values happen...
    The std::list used in MakeMove is somehow using the same memory as the std::vectors of the board, which is causing invalid reads
    Stupid, stupid stdlib.
    
    I think that once that is fixed, forfax is pretty much done. I'd like to see how well it plays, but... segfaults.
    
    I also fixed dummy to take into account the modified turn protocol which prints piece ranks. dummy just reads them and ignores them.
    
    I plan to make the manager program more useful
    	- Enable human players
    	- Add command line arguments for things like timeouts, graphics on/off etc
    	- Read a game from a file (so that games can be viewed after they are run)
    I need to go through the manager program carefully and make sure that the way AI programs quit actually works
    Ideally the AI program has a short period to exit gracefully before it is killed
    I think for some reason the AI program always just gets killed.
    
    At some point I need to setup a VM for this. I should probably do that.
    
    I also might change minor things like the tokens (from random characters to digits + a few characters) and the internal ordering of the enum Piece::Type
    041c37d1