1. 01 Dec, 2011 1 commit
    • 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