1. 20 Apr, 2013 4 commits
  2. 12 Apr, 2013 1 commit
  3. 05 Apr, 2013 2 commits
  4. 02 Apr, 2013 1 commit
  5. 29 Mar, 2013 3 commits
  6. 28 Mar, 2013 2 commits
  7. 27 Mar, 2013 3 commits
  8. 23 Mar, 2013 1 commit
  9. 22 Mar, 2013 1 commit
    • Sam Moore's avatar
      Improving C++ API · 7518ec8d
      Sam Moore authored
      Changed the Piece and Board classes slightly so that I can make an efficient C++ agent.
      
      I plan to make SilverFish as good as I possibly can.
      Rather than writing 6 different mediocre sample agents like I did last year, I will just focus on this one.
      
      Technically I can't enter my own competition, so SilverFish is still just a sample agent.
      
      Anyway it still just defaults to random moves at the moment.
      7518ec8d
  10. 21 Mar, 2013 1 commit
    • Sam Moore's avatar
      Fixed bug with probabilities · 8571bc0c
      Sam Moore authored
      Pretty terrible, introduced weeks ago when trying to improve efficiency.
      Also fixed bug with --reveal switch.
      
      Agent Bishop should play better as a result of this (the former not the latter).
      8571bc0c
  11. 19 Mar, 2013 1 commit
    • Sam Moore's avatar
      Add screen blackout to qchess · c0c346f9
      Sam Moore authored
      Just because it bugged [BOB] that the screen never went to sleep when using qchess_login.sh
      Aren't I nice?
      c0c346f9
  12. 14 Mar, 2013 1 commit
    • Sam Moore's avatar
      Actually commit stuff from ages ago · 5287b4f8
      Sam Moore authored
      - Use regex in ExternalAgent to cope with Fortran agents
      - Add "Q" to graphics (although somehow that did get committed?)
      - Did something in src/board.py... no idea what
      5287b4f8
  13. 10 Mar, 2013 1 commit
  14. 05 Mar, 2013 1 commit
    • Sam Moore's avatar
      Added Fortran sample Agent · 17d3a7ed
      Sam Moore authored
      It occasionally gets confused and breaks. Fixing is an excercise for any fools that decide to use FORTRAN.
      17d3a7ed
  15. 28 Feb, 2013 3 commits
  16. 25 Feb, 2013 1 commit
    • Sam Moore's avatar
      Added C++ agent · 559edeec
      Sam Moore authored
      As a result, found an issue where qchess was printing "-1" as the index whenever a King was selected.
      I don't know why that didn't break the python agent, but it definitely breaks the C++ agent, so I fixed it.
      559edeec
  17. 19 Feb, 2013 1 commit
  18. 18 Feb, 2013 1 commit
  19. 12 Feb, 2013 1 commit
    • Sam Moore's avatar
      Getting ready to run rounds · a6d91c8b
      Sam Moore authored
      Got sidetracked writing "swarm" to parallelise rounds.
      It's not ready yet, but I wrote run.sh to run a round.
      Which should work even if I never finish swarm.
      It'll just be ridiculously slow.
      
      Changed structure of agents directory (same as last year).
      
      Minor changes to qchess. Added yet another wrapper class for replaying logs.
      FileReplayer replaces the standard python file; if a game is still in progress you can use that.
      
      I noticed the Http log replay was breaking a while ago, but I haven't investigated.
      
      TODO: - Finish swarm
            - Generate pretty html pages from results
              (but hopefully make the script nicer than last years)
            - Handle errors/illegal moves properly. Enforce the timeouts.
            - Include draws/stalemate
            - events? prizes? profit?
            - BUG FIXING
            - Read TODO lists more often, because I usually just write them and then never read them
      a6d91c8b
  20. 31 Jan, 2013 1 commit
    • Sam Moore's avatar
      Messing with log files · 3decbfd6
      Sam Moore authored
      - Fixed storing of whether pieces were revealed or not in log files
        - Just prepend '?' to the hidden types, removed the Piece.types_revealed list
      
      - Implemented Agent resetting of board state from strings
        - ReplayPlayer will call the Agent.reset_board() function
        - run_agent() looks for lines between "BOARD" and "END BOARD"
        - This API will not be compulsory for entered agents
          - All games will start with the initial board state, it is not required
      
      - Fixed other stuff with log files
        - Needed to work out whose turn it is when the game continues from a log
        - HttpLog -> ShortLog (since it just writes to a file)
        - To get a log from http, use --file=http://address
          - This works for either ShortLog or LogFile written logs
      	- But if the game hasn't ended there is a bug with the LogFile logs
        - Can now have multiple logs at the same time
      
      - Hopefully nothing is borked
      3decbfd6
  21. 30 Jan, 2013 8 commits
    • Sam Moore's avatar
      It works! · a238aa7a
      Sam Moore authored
      Need to tidy things up. Differ between 'short' log and full log. Make HttpGetter work for either.
      
      "short" log has the entire board state and most recent selection/move.
      "full" log has the original board state and all moves up to the current point.
      
      I started the "short" log so I could make it easy to watch games played on the server, but I think it might be useful
      for testing now. But I need to work on it first.
      
      Since short log prints the board state rather than all moves, agents don't know what is going on when short log is read back.
      If I implement an API for that, then people can write their own starting game states.
      
      Also need to indicate whether pieces are revealed or not in their string, and interpret correctly in reading the short logs
      
      Or not...
      perhaps this is getting too complicated?
      
      NEVER
      a238aa7a
    • Sam Moore's avatar
      I think I just borked things... · 09f14db7
      Sam Moore authored
      And then rewrote what I originally had anyway
      09f14db7
    • Sam Moore's avatar
      There's probably a better way of doing this... · 337c794f
      Sam Moore authored
      Get log to show last selection and movement
      So that the "client" doesn't get confused if it misses a selection/move
      
      Client has to rebuild the board every time, yuck
      337c794f
    • Sam Moore's avatar
      Try again · 0325af7e
      Sam Moore authored
      0325af7e
    • Sam Moore's avatar
      Make sure the board reflects the state BEFORE the move is made · 6857a85b
      Sam Moore authored
      Whoops
      
      Probably going to get a lot of really small commits for a while...
      6857a85b
    • Sam Moore's avatar
      Feature creep in log files · 5e4b175a
      Sam Moore authored
      I want to be able to watch a game that's playing on the server!
      Without having to actually use sockets and shit!
      I've used enough sockets already!
      5e4b175a
    • Sam Moore's avatar
      Started work on website · 6b085cf1
      Sam Moore authored
      I forgot how terrible web design is.
      6b085cf1
    • Sam Moore's avatar
      Added sample agent + log file writing/parsing · a35e4dc5
      Sam Moore authored
      I figured no one wants to sift through the qchess internal agent stuff,
      So I wrote a python external agent agents/sample.py
      
      I ended up implementing the cool idea about log files.
      You can replay a log file up to an arbitrary point, and then continue play.
      
      I also fixed a bug with external agents calling run_agent.
      Removed the reading of the colour line from there, since the external agent should do it.
      Added reading of the colour line to the ExternalWrapper class, to avoid breaking that.
      
      Added --reveal so that all states can be seen in the GUI (but they are not communicated to Agents).
      
      Added handling of SIGINT to main.py
      
      Probably did something else I forgot.
      
      qchess will probably be ready soon (famous last words), I should start on a scoring/entry system...
      And a webpage.
      a35e4dc5
  22. 29 Jan, 2013 1 commit
    • Sam Moore's avatar
      Progress? · 877034f0
      Sam Moore authored
      - Fixed .dll files that were the wrong ones for cx_freeze win32
      - Created "internal" agents, and made AgentBishop one of them
      - Implemented terrible wrapper class that runs an internal agent in a seperate python process
        - This is for when timeouts are used
        - select == better than threads
        - TimeoutPlayer appears to not work properly anyway
      - Tested win32 version (script and frozen binary)
        - ExternalAgent seems to break
        - TimeoutPlayer seems to break (even more than normal)
        - Pretty much everything breaks actually
          - More things seem to break with the frozen binary than with the script
          - Amazingly the pygame interface doesn't break, just the fancy threading/subprocess/socket/file related stuff
        - Somehow, the InternalAgents, ie: AgentBishop were working
        - So windows users can play the python sample agents, but otherwise the program is pretty useless
      
      - Implemented the --log and --file arguments
        - Get an error if the game hasn't actually finished when using --file, should probably fix
          - It might be cool to let people use --file for a set number of moves, and then continue play from that position
            - Would need more work...
      
      - When graphics are disabled, the game still works
        - But I need to test it on a server that doesn't have pygame at all
      
      TODO: Finish the qchess program and actually work on setting up the competition.
      877034f0