1. 22 Dec, 2011 1 commit
  2. 11 Dec, 2011 1 commit
    • Sam Moore's avatar
      Fixed bugs, minor changes · baf69b8d
      Sam Moore authored
      Fixed segfault in manager caused by attempt to print invalid setups to log
      Fixed SIGPIPE in manager caused by attempt to message non-existant programs.
      
      Although I previously fixed a similar SIGPIPE, It is also possible for a file to exist but not have executable permissions set.
      Controllers set to use such files as executables were returning true for Valid(), but were in fact, not valid at all.
      
      Use the access function (thanks stack overflow!) to check for executable permissions
      and existence in Program::Program. If they aren't set, or file doesn't exist, set
      pid to -1 which is an "invalid" controller.
      
      Discovered python trick which allows me to get rid of stupid "run.py" files for the python AIs.
      
      Modified the simulate script to take the number of rounds as an argument.
      Also made its output slightly prettier.
      
      Currently testing simulation of 10 rounds on my laptop at home.
      
      "./simulate 10; shutdown -h -P now"
      
      I hope it doesn't set the desk on fire while I'm asleep... :S
      
      Oh, and the VM is finally setup, hooray!
      baf69b8d
  3. 08 Dec, 2011 2 commits
  4. 07 Dec, 2011 1 commit
  5. 30 Nov, 2011 1 commit
    • Sam Moore's avatar
      Modified Turn Response Protocol, added handling for SIGPIPE, changed placeholder images · 2ab27eb6
      Sam Moore authored
      The "outcome" of a move is now listed as:
      
      TYPE [ATTACKER_RANK] [DEFENDER_RANK]
      
      Where ATTACKER_RANK and DEFENDER_RANK will be present if TYPE is one of: KILLS, DIES, BOTHDIE, and indicate the ranks of the pieces involved.
      This involved adding a class MovementResult, which stores the ranks of pieces in addition to an enum, replacing the enum Board::MovementResult
      
      The sample agent "forfax" was causing broken pipes, which caused the manager program to exit.
      I added a handler for SIGPIPE in manager/main.cpp to ensure that the manager program reports a DEFAULT victory to the other AI, and exits gracefully.
      However, I still don't know WHY forfax causes broken pipes, but hopefully its a problem with forfax and not with the manager program.
      
      I edited the images used by the graphical display to show the ordered ranks of the pieces, rather than some obscure characters.
      Unfortunately I have just realised that the enum used for Piece::Type stores ranks in the wrong order.
      In the actual game, LOWER numbers are better, in my enum, HIGHER numbers are better.
      To make things more confusing, I made the printed ATTACKER_RANK and DEFENDER_RANK correspond to the traditional numbering, not the enum numbering...
      2ab27eb6
  6. 29 Nov, 2011 1 commit