From 65d9bb84c7e2dca4a8fac4d92c225ce1bb4f7c52 Mon Sep 17 00:00:00 2001 From: Sam Moore Date: Wed, 23 Jan 2013 21:21:09 +0800 Subject: [PATCH] Initial Commit Now is probably a good time to start using git 1. Implemented quantum chess as described here: http://research.cs.queensu.ca/Parallel/QuantumChess/QuantumChess.html - Except I have "white on the right" 2. Wrote sample agent "agent_bishop.py" which is already better at the game than I am 3. Sort of got sidetracked trying to split my original quantum chess python file into multiple files. - Difficulties because there are circular dependencies with the graphics / game stuff - eg: HumanPlayer needs to know about GraphicsThread to get its move and GraphicsThread needs to know about HumanPlayer to draw stuff and give it a move 4. Ended up writing a bash script to combine multiple python files into single qchess.py file. - It was easier than working out how __init__.py and __main__.py work / do not work - "from . import *" doesn't work and apparently is "bad practice" or something - Bash scripts are the best practice - It will probably backfire horribly. Hence, git TODO: - Either borrow sigma from [DJA] again, or setup a new progcomp server at UCC - Make website for results / information - Depending upon how adventurous I feel it might be django - Or a .html file created by a bash script - Make judging / scoring system - Need to implement move timeouts for AI players (remember to use select this time) - Organise some sort of event for people to come to - Should probably talk to #committee at some point - Get people interested? Bribe them? Threaten them with account locking if they don't enter? - If I get 4 entrants it will be a doubling in entries since 2010! --- agents/bishop.py | 321 ++++++++++ agents/data | 1 + agents/qchess.py | 1 + qchess/board.py | 403 +++++++++++++ qchess/data/DejaVuSans.ttf | Bin 0 -> 720012 bytes qchess/game.py | 116 ++++ qchess/graphics.py | 286 +++++++++ qchess/main.py | 62 ++ qchess/piece.py | 89 +++ qchess/player.py | 158 +++++ qchess/qchess.py | 1144 ++++++++++++++++++++++++++++++++++++ qchess/thread_util.py | 15 + qchess/update.sh | 34 ++ 13 files changed, 2630 insertions(+) create mode 100755 agents/bishop.py create mode 120000 agents/data create mode 120000 agents/qchess.py create mode 100644 qchess/board.py create mode 100644 qchess/data/DejaVuSans.ttf create mode 100644 qchess/game.py create mode 100644 qchess/graphics.py create mode 100644 qchess/main.py create mode 100644 qchess/piece.py create mode 100644 qchess/player.py create mode 100755 qchess/qchess.py create mode 100644 qchess/thread_util.py create mode 100755 qchess/update.sh diff --git a/agents/bishop.py b/agents/bishop.py new file mode 100755 index 0000000..036e7a6 --- /dev/null +++ b/agents/bishop.py @@ -0,0 +1,321 @@ +#!/usr/bin/python -u + +from qchess import * + +""" + Agent Bishop + ( an agent, not an implementation of a bishop chess piece!) +""" + + + + +# Skeleton class for your agent +class Agent(AgentRandom): # Inherits from AgentRandom (in qchess.py) + def __init__(self, name, colour): + AgentRandom.__init__(self, name, colour) + self.value = {"pawn" : 1, "bishop" : 3, "knight" : 3, "rook" : 5, "queen" : 9, "king" : 100, "unknown" : 4} + + self.aggression = 2.0 # Multiplier for scoring due to aggressive actions + self.defence = 1.0 # Multiplier for scoring due to defensive actions + + self.depth = 0 # Current depth + self.max_depth = 2 # Recurse this many times (for some reason, makes more mistakes when this is increased???) + self.recurse_for = -1 # Recurse for the best few moves each times (less than 0 = all moves) + + for p in self.board.pieces["white"] + self.board.pieces["black"]: + p.last_moves = None + p.selected_moves = None + + + + def get_value(self, piece): + if piece == None: + return 0.0 + return float(self.value[piece.types[0]] + self.value[piece.types[1]]) / 2.0 + + # Score possible moves for the piece + # Highest score is 1.0 (which means: make this move!) + def prioritise_moves(self, piece): + + #sys.stderr.write(sys.argv[0] + ": prioritise called for " + str(piece) + "\n") + + + + grid = self.board.probability_grid(piece) + #sys.stderr.write("\t Probability grid " + str(grid) + "\n") + moves = [] + for x in range(w): + for y in range(h): + if grid[x][y] < 0.3: # Throw out moves with < 30% probability + #sys.stderr.write("\tReject " + str(x) + "," + str(y) + " (" + str(grid[x][y]) + ")\n") + continue + + target = self.board.grid[x][y] + + + + + # Get total probability that the move is protected + [xx,yy] = [piece.x, piece.y] + [piece.x, piece.y] = [x, y] + self.board.grid[x][y] = piece + self.board.grid[xx][yy] = None + + defenders = self.board.coverage(x, y, piece.colour, reject_allied = False) + d_prob = 0.0 + for d in defenders.keys(): + d_prob += defenders[d] + if len(defenders.keys()) > 0: + d_prob /= float(len(defenders.keys())) + + if (d_prob > 1.0): + d_prob = 1.0 + + # Get total probability that the move is threatened + attackers = self.board.coverage(x, y, opponent(piece.colour), reject_allied = False) + a_prob = 0.0 + for a in attackers.keys(): + a_prob += attackers[a] + if len(attackers.keys()) > 0: + a_prob /= float(len(attackers.keys())) + + if (a_prob > 1.0): + a_prob = 1.0 + + self.board.grid[x][y] = target + self.board.grid[xx][yy] = piece + [piece.x, piece.y] = [xx, yy] + + + # Score of the move + value = self.aggression * (1.0 + d_prob) * self.get_value(target) - self.defence * (1.0 - d_prob) * a_prob * self.get_value(piece) + + # Adjust score based on movement of piece out of danger + attackers = self.board.coverage(piece.x, piece.y, opponent(piece.colour)) + s_prob = 0.0 + for a in attackers.keys(): + s_prob += attackers[a] + if len(attackers.keys()) > 0: + s_prob /= float(len(attackers.keys())) + + if (s_prob > 1.0): + s_prob = 1.0 + value += self.defence * s_prob * self.get_value(piece) + + # Adjust score based on probability that the move is actually possible + moves.append([[x, y], grid[x][y] * value]) + + moves.sort(key = lambda e : e[1], reverse = True) + #sys.stderr.write(sys.argv[0] + ": Moves for " + str(piece) + " are " + str(moves) + "\n") + + piece.last_moves = moves + piece.selected_moves = None + + + + + return moves + + def select_best(self, colour): + + self.depth += 1 + all_moves = {} + for p in self.board.pieces[colour]: + self.choice = p # Temporarily pick that piece + m = self.prioritise_moves(p) + if len(m) > 0: + all_moves.update({p : m[0]}) + + if len(all_moves.items()) <= 0: + return None + + + opts = all_moves.items() + opts.sort(key = lambda e : e[1][1], reverse = True) + + if self.depth >= self.max_depth: + self.depth -= 1 + return list(opts[0]) + + if self.recurse_for >= 0: + opts = opts[0:self.recurse_for] + sys.stderr.write(sys.argv[0] + " : Before recurse, options are " + str(opts) + "\n") + + # Take the best few moves, and recurse + for choice in opts[0:self.recurse_for]: + [xx,yy] = [choice[0].x, choice[0].y] # Remember position + [nx,ny] = choice[1][0] # Target + [choice[0].x, choice[0].y] = [nx, ny] # Set position + target = self.board.grid[nx][ny] # Remember piece in spot + self.board.grid[xx][yy] = None # Remove piece + self.board.grid[nx][ny] = choice[0] # Replace with moving piece + + # Recurse + best_enemy_move = self.select_best(opponent(choice[0].colour)) + choice[1][1] -= best_enemy_move[1][1] / float(self.depth + 1.0) + + [choice[0].x, choice[0].y] = [xx, yy] # Restore position + self.board.grid[nx][ny] = target # Restore taken piece + self.board.grid[xx][yy] = choice[0] # Restore moved piece + + + + opts.sort(key = lambda e : e[1][1], reverse = True) + sys.stderr.write(sys.argv[0] + " : After recurse, options are " + str(opts) + "\n") + + self.depth -= 1 + return list(opts[0]) + + + + # Returns [x,y] of selected piece + def select(self): + + self.choice = self.select_best(self.colour)[0] + return [self.choice.x, self.choice.y] + + # Returns [x,y] of square to move selected piece into + def get_move(self): + self.choice.selected_moves = self.choice.last_moves + moves = self.prioritise_moves(self.choice) + if len(moves) > 0: + return moves[0][0] + else: + return AgentRandom.get_move(self) + + + + +# Horrible messy graphics class that draws what the agent is doing, kind of useful for testing +class AgentGraphics(GraphicsThread): + def __init__(self, board, title): + GraphicsThread.__init__(self, board, title, grid_sz = [64,64]) + self.choice = None + self.moves = None + + def run(self): + square_img = pygame.Surface((self.grid_sz[0], self.grid_sz[1]),pygame.SRCALPHA) # A square image + while not self.stopped(): + + self.board.display_grid(window = self.window, grid_sz = self.grid_sz) + + # Draw choice of the AI + if agent.choice != None: + mp = [self.grid_sz[i] * [agent.choice.x, agent.choice.y][i] for i in range(2)] + square_img.fill(pygame.Color(0,255,0,64)) + self.window.blit(square_img, mp) + + # Draw calculated choices for the piece clicked on + if self.choice != None: + mp = [self.grid_sz[i] * [self.choice.x, self.choice.y][i] for i in range(2)] + square_img.fill(pygame.Color(0,0,255,128)) + self.window.blit(square_img, mp) + + # Draw the choices the AI calculated from the selection of the chosen piece + if agent.choice != None and agent.choice.selected_moves != None: + for m in agent.choice.selected_moves: + mp = [m[0][i] * self.grid_sz[i] for i in range(2)] + square_img.fill(pygame.Color(128,128,255,128)) + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[1],2)), 1, pygame.Color(255,0,0)) + mp[0] = mp[0] + self.grid_sz[0] - text.get_width() + mp[1] = mp[1] + self.grid_sz[1] - text.get_height() + self.window.blit(text, mp) + + + # Draw the choice the AI's chosen piece could have actually made + if agent.choice != None and agent.choice.last_moves != None: + for m in agent.choice.last_moves: + mp = [m[0][i] * self.grid_sz[i] for i in range(2)] + square_img.fill(pygame.Color(255,0,0,128)) + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[1],2)), 1, pygame.Color(0,0,255)) + mp[0] = mp[0] + self.grid_sz[0] - text.get_width() + self.window.blit(text, mp) + + + + + if self.moves != None: + for m in self.moves: + mp = [m[0][i] * self.grid_sz[i] for i in range(2)] + square_img.fill(pygame.Color(255,0,255,128)) + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[1],2)), 1, pygame.Color(0,0,0)) + self.window.blit(text, mp) + + + + self.board.display_pieces(window = self.window, grid_sz = self.grid_sz) + + pygame.display.flip() + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + self.stop() + break + elif event.type == pygame.MOUSEBUTTONDOWN: + m = [event.pos[i] / self.grid_sz[i] for i in range(len(event.pos))] + p = agent.board.grid[m[0]][m[1]] + if p == None: + continue + self.choice = p + self.last_moves = self.choice.last_moves + self.selected_moves = self.choice.selected_moves + if event.button == 3 or self.choice.last_moves == None: + self.moves = agent.prioritise_moves(self.choice) + else: + self.moves = self.choice.last_moves + + elif event.type == pygame.MOUSEBUTTONUP: + if self.choice == None: + continue + self.choice.last_moves = self.last_moves + self.choice.selected_moves = self.selected_moves + self.choice = None + self.moves = None + + pygame.display.quit() + + + +# Main function; don't alter +def main(argv): + + global agent + colour = sys.stdin.readline().strip("\n") # Gets the colour of the agent from stdin + + agent = Agent(argv[0], colour) # Creates your agent + + graphics = AgentGraphics(agent.board, title="Agent Bishop (" + str(colour) + ") - DEBUG VIEW") + graphics.start() + + # Plays quantum chess using your agent + while True: + line = sys.stdin.readline().strip(" \r\n") + #sys.stderr.write(argv[0] + ": gets line \"" + str(line) + "\"\n") + if line == "SELECTION?": + [x,y] = agent.select() # Gets your agent's selection + #print "Select " + str(x) + "," + str(y) + sys.stdout.write(str(x) + " " + str(y) + "\n") + elif line == "MOVE?": + [x,y] = agent.get_move() # Gets your agent's move + sys.stdout.write(str(x) + " " + str(y) + "\n") + elif line.split(" ")[0] == "QUIT": + agent.quit(" ".join(line.split(" ")[1:])) # Quits the game +# graphics.stop() + break + else: + agent.update(line) # Updates agent.board + + graphics.stop() + graphics.join() + return 0 + +# Don't touch this +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/agents/data b/agents/data new file mode 120000 index 0000000..eed2d0b --- /dev/null +++ b/agents/data @@ -0,0 +1 @@ +../data/ \ No newline at end of file diff --git a/agents/qchess.py b/agents/qchess.py new file mode 120000 index 0000000..daafe05 --- /dev/null +++ b/agents/qchess.py @@ -0,0 +1 @@ +../qchess.py \ No newline at end of file diff --git a/qchess/board.py b/qchess/board.py new file mode 100644 index 0000000..4858168 --- /dev/null +++ b/qchess/board.py @@ -0,0 +1,403 @@ +[w,h] = [8,8] # Width and height of board(s) + +# Class to represent a quantum chess board +class Board(): + # Initialise; if master=True then the secondary piece types are assigned + # Otherwise, they are left as unknown + # So you can use this class in Agent programs, and fill in the types as they are revealed + def __init__(self, style="agent"): + self.style = style + self.pieces = {"white" : [], "black" : []} + self.grid = [[None] * w for _ in range(h)] # 2D List (you can get arrays in python, somehow, but they scare me) + self.unrevealed_types = {"white" : piece_types.copy(), "black" : piece_types.copy()} + self.king = {"white" : None, "black" : None} # We need to keep track of the king, because he is important + for c in ["black", "white"]: + del self.unrevealed_types[c]["unknown"] + + # Add all the pieces with known primary types + for i in range(0, 2): + + s = ["black", "white"][i] + c = self.pieces[s] + y = [0, h-1][i] + + c.append(Piece(s, 0, y, ["rook"])) + c.append(Piece(s, 1, y, ["knight"])) + c.append(Piece(s, 2, y, ["bishop"])) + k = Piece(s, 3, y, ["king", "king"]) # There can only be one ruler! + k.types_revealed[1] = True + k.current_type = "king" + self.king[s] = k + c.append(k) + c.append(Piece(s, 4, y, ["queen"])) # Apparently he may have multiple wives though. + c.append(Piece(s, 5, y, ["bishop"])) + c.append(Piece(s, 6, y, ["knight"])) + c.append(Piece(s, 7, y, ["rook"])) + + if y == 0: + y += 1 + else: + y -= 1 + + # Lots of pawn + for x in range(0, w): + c.append(Piece(s, x, y, ["pawn"])) + + types_left = {} + types_left.update(piece_types) + del types_left["king"] # We don't want one of these randomly appearing (although it might make things interesting...) + del types_left["unknown"] # We certainly don't want these! + for piece in c: + # Add to grid + self.grid[piece.x][piece.y] = piece + + if len(piece.types) > 1: + continue + if style == "agent": # Assign placeholder "unknown" secondary type + piece.types.append("unknown") + continue + + elif style == "quantum": + # The master allocates the secondary types + choice = types_left.keys()[random.randint(0, len(types_left.keys())-1)] + types_left[choice] -= 1 + if types_left[choice] <= 0: + del types_left[choice] + piece.types.append(choice) + elif style == "classical": + piece.types.append(piece.types[0]) + piece.current_type = piece.types[0] + piece.types_revealed[1] = True + piece.choice = 0 + + def clone(self): + newboard = Board(master = False) + newpieces = newboard.pieces["white"] + newboard.pieces["black"] + mypieces = self.pieces["white"] + self.pieces["black"] + + for i in range(len(mypieces)): + newpieces[i].init_from_copy(mypieces[i]) + + + def display_grid(self, window = None, grid_sz = [80,80]): + if window == None: + return # I was considering implementing a text only display, then I thought "Fuck that" + + # The indentation is getting seriously out of hand... + for x in range(0, w): + for y in range(0, h): + if (x + y) % 2 == 0: + c = pygame.Color(200,200,200) + else: + c = pygame.Color(64,64,64) + pygame.draw.rect(window, c, (x*grid_sz[0], y*grid_sz[1], (x+1)*grid_sz[0], (y+1)*grid_sz[1])) + + def display_pieces(self, window = None, grid_sz = [80,80]): + if window == None: + return + for p in self.pieces["white"] + self.pieces["black"]: + p.draw(window, grid_sz) + + # Draw the board in a pygame window + def display(self, window = None): + self.display_grid(window) + self.display_pieces(window) + + + + + def verify(self): + for x in range(w): + for y in range(h): + if self.grid[x][y] == None: + continue + if (self.grid[x][y].x != x or self.grid[x][y].y != y): + raise Exception(sys.argv[0] + ": MISMATCH " + str(self.grid[x][y]) + " should be at " + str(x) + "," + str(y)) + + # Select a piece on the board (colour is the colour of whoever is doing the selecting) + def select(self, x,y, colour=None): + if not self.on_board(x, y): # Get on board everyone! + raise Exception("BOUNDS") + + piece = self.grid[x][y] + if piece == None: + raise Exception("EMPTY") + + if colour != None and piece.colour != colour: + raise Exception("COLOUR") + + # I'm not quite sure why I made this return a string, but screw logical design + return str(x) + " " + str(y) + " " + str(piece.select()) + " " + str(piece.current_type) + + + # Update the board when a piece has been selected + # "type" is apparently reserved, so I'll use "state" + def update_select(self, x, y, type_index, state): + piece = self.grid[x][y] + if piece.types[type_index] == "unknown": + if not state in self.unrevealed_types[piece.colour].keys(): + raise Exception("SANITY: Too many " + piece.colour + " " + state + "s") + self.unrevealed_types[piece.colour][state] -= 1 + if self.unrevealed_types[piece.colour][state] <= 0: + del self.unrevealed_types[piece.colour][state] + + piece.types[type_index] = state + piece.types_revealed[type_index] = True + piece.current_type = state + + if len(self.possible_moves(piece)) <= 0: + piece.deselect() # Piece can't move; deselect it + + # Update the board when a piece has been moved + def update_move(self, x, y, x2, y2): + piece = self.grid[x][y] + self.grid[x][y] = None + taken = self.grid[x2][y2] + if taken != None: + if taken.current_type == "king": + self.king[taken.colour] = None + self.pieces[taken.colour].remove(taken) + self.grid[x2][y2] = piece + piece.x = x2 + piece.y = y2 + + # If the piece is a pawn, and it reaches the final row, it becomes a queen + # I know you are supposed to get a choice + # But that would be effort + if piece.current_type == "pawn" and ((piece.colour == "white" and piece.y == 0) or (piece.colour == "black" and piece.y == h-1)): + if self.style == "classical": + piece.types[0] = "queen" + piece.types[1] = "queen" + else: + piece.types[piece.choice] = "queen" + piece.current_type = "queen" + + piece.deselect() # Uncollapse (?) the wavefunction! + self.verify() + + # Update the board from a string + # Guesses what to do based on the format of the string + def update(self, result): + #print "Update called with \"" + str(result) + "\"" + # String always starts with 'x y' + try: + s = result.split(" ") + [x,y] = map(int, s[0:2]) + except: + raise Exception("GIBBERISH \""+ str(result) + "\"") # Raise expectations + + piece = self.grid[x][y] + if piece == None: + raise Exception("EMPTY") + + # If a piece is being moved, the third token is '->' + # We could get away with just using four integers, but that wouldn't look as cool + if "->" in s: + # Last two tokens are the destination + try: + [x2,y2] = map(int, s[3:]) + except: + raise Exception("GIBBERISH \"" + str(result) + "\"") # Raise the alarm + + # Move the piece (take opponent if possible) + self.update_move(x, y, x2, y2) + + else: + # Otherwise we will just assume a piece has been selected + try: + type_index = int(s[2]) # We need to know which of the two types the piece is in; that's the third token + state = s[3] # The last token is a string identifying the type + except: + raise Exception("GIBBERISH \"" + result + "\"") # Throw a hissy fit + + # Select the piece + self.update_select(x, y, type_index, state) + + return result + + # Gets each piece that could reach the given square and the probability that it could reach that square + # Will include allied pieces that defend the attacker + def coverage(self, x, y, colour = None, reject_allied = True): + result = {} + + if colour == None: + pieces = self.pieces["white"] + self.pieces["black"] + else: + pieces = self.pieces[colour] + + for p in pieces: + prob = self.probability_grid(p, reject_allied)[x][y] + if prob > 0: + result.update({p : prob}) + + self.verify() + return result + + + + + + # Associates each square with a probability that the piece could move into it + # Look, I'm doing all the hard work for you here... + def probability_grid(self, p, reject_allied = True): + + result = [[0.0] * w for _ in range(h)] + if not isinstance(p, Piece): + return result + + if p.current_type != "unknown": + #sys.stderr.write(sys.argv[0] + ": " + str(p) + " moves " + str(self.possible_moves(p, reject_allied)) + "\n") + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] = 1.0 + return result + + + for i in range(len(p.types)): + t = p.types[i] + prob = 0.5 + if t == "unknown" or p.types_revealed[i] == False: + total_types = 0 + for t2 in self.unrevealed_types[p.colour].keys(): + total_types += self.unrevealed_types[p.colour][t2] + + for t2 in self.unrevealed_types[p.colour].keys(): + prob2 = float(self.unrevealed_types[p.colour][t2]) / float(total_types) + p.current_type = t2 + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] += prob2 * prob + + else: + p.current_type = t + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] += prob + + self.verify() + p.current_type = "unknown" + return result + + def prob_is_type(self, p, state): + prob = 0.5 + result = 0 + for i in range(len(p.types)): + t = p.types[i] + if t == state: + result += prob + continue + if t == "unknown" or p.types_revealed[i] == False: + total_prob = 0 + for t2 in self.unrevealed_types[p.colour].keys(): + total_prob += self.unrevealed_types[p.colour][t2] + for t2 in self.unrevealed_types[p.colour].keys(): + if t2 == state: + result += prob * float(self.unrevealed_types[p.colour][t2]) / float(total_prob) + + + + # Get all squares that the piece could move into + # This is probably inefficient, but I looked at some sample chess games and they seem to actually do things this way + # reject_allied indicates whether squares occupied by allied pieces will be removed + # (set to false to check for defense) + def possible_moves(self, p, reject_allied = True): + result = [] + if p == None: + return result + + + if p.current_type == "unknown": + raise Exception("SANITY: Piece state unknown") + # The below commented out code causes things to break badly + #for t in p.types: + # if t == "unknown": + # continue + # p.current_type = t + # result += self.possible_moves(p) + #p.current_type = "unknown" + #return result + + if p.current_type == "king": + result = [[p.x-1,p.y],[p.x+1,p.y],[p.x,p.y-1],[p.x,p.y+1], [p.x-1,p.y-1],[p.x-1,p.y+1],[p.x+1,p.y-1],[p.x+1,p.y+1]] + elif p.current_type == "queen": + for d in [[-1,0],[1,0],[0,-1],[0,1],[-1,-1],[-1,1],[1,-1],[1,1]]: + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "bishop": + for d in [[-1,-1],[-1,1],[1,-1],[1,1]]: # There's a reason why bishops move diagonally + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "rook": + for d in [[-1,0],[1,0],[0,-1],[0,1]]: + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "knight": + # I would use two lines, but I'm not sure how python likes that + result = [[p.x-2, p.y-1], [p.x-2, p.y+1], [p.x+2, p.y-1], [p.x+2,p.y+1], [p.x-1,p.y-2], [p.x-1, p.y+2],[p.x+1,p.y-2],[p.x+1,p.y+2]] + elif p.current_type == "pawn": + if p.colour == "white": + + # Pawn can't move forward into occupied square + if self.on_board(p.x, p.y-1) and self.grid[p.x][p.y-1] == None: + result = [[p.x,p.y-1]] + for f in [[p.x-1,p.y-1],[p.x+1,p.y-1]]: + if not self.on_board(f[0], f[1]): + continue + if self.grid[f[0]][f[1]] != None: # Pawn can take diagonally + result.append(f) + if p.y == h-2: + # Slightly embarrassing if the pawn jumps over someone on its first move... + if self.grid[p.x][p.y-1] == None and self.grid[p.x][p.y-2] == None: + result.append([p.x, p.y-2]) + else: + # Vice versa for the black pawn + if self.on_board(p.x, p.y+1) and self.grid[p.x][p.y+1] == None: + result = [[p.x,p.y+1]] + + for f in [[p.x-1,p.y+1],[p.x+1,p.y+1]]: + if not self.on_board(f[0], f[1]): + continue + if self.grid[f[0]][f[1]] != None: + #sys.stderr.write(sys.argv[0] + " : "+str(p) + " can take " + str(self.grid[f[0]][f[1]]) + "\n") + result.append(f) + if p.y == 1: + if self.grid[p.x][p.y+1] == None and self.grid[p.x][p.y+2] == None: + result.append([p.x, p.y+2]) + + #sys.stderr.write(sys.argv[0] + " : possible_moves for " + str(p) + " " + str(result) + "\n") + + # Remove illegal moves + # Note: The result[:] creates a copy of result, so that the result.remove calls don't fuck things up + for point in result[:]: + + if (point[0] < 0 or point[0] >= w) or (point[1] < 0 or point[1] >= h): + result.remove(point) # Remove locations outside the board + continue + g = self.grid[point[0]][point[1]] + + if g != None and (g.colour == p.colour and reject_allied == True): + result.remove(point) # Remove allied pieces + + self.verify() + return result + + + # Scans in a direction until it hits a piece, returns all squares in the line + # (includes the final square (which contains a piece), but not the original square) + def scan(self, x, y, vx, vy): + p = [] + + xx = x + yy = y + while True: + xx += vx + yy += vy + if not self.on_board(xx, yy): + break + if not [xx,yy] in p: + p.append([xx, yy]) + g = self.grid[xx][yy] + if g != None: + return p + + return p + + + + # I typed the full statement about 30 times before writing this function... + def on_board(self, x, y): + return (x >= 0 and x < w) and (y >= 0 and y < h) diff --git a/qchess/data/DejaVuSans.ttf b/qchess/data/DejaVuSans.ttf new file mode 100644 index 0000000000000000000000000000000000000000..27cff476ef317e4666f7ffb77e82b9398a90825a GIT binary patch literal 720012 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�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�@_$#aU@6laZ58j-; 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 literal 0 HcmV?d00001 diff --git a/qchess/game.py b/qchess/game.py new file mode 100644 index 0000000..1b568a0 --- /dev/null +++ b/qchess/game.py @@ -0,0 +1,116 @@ + +# A thread that runs the game +class GameThread(StoppableThread): + def __init__(self, board, players): + StoppableThread.__init__(self) + self.board = board + self.players = players + self.state = {"turn" : None} # The game state + self.error = 0 # Whether the thread exits with an error + self.lock = threading.RLock() #lock for access of self.state + self.cond = threading.Condition() # conditional for some reason, I forgot + self.final_result = "" + + # Run the game (run in new thread with start(), run in current thread with run()) + def run(self): + result = "" + while not self.stopped(): + + for p in self.players: + with self.lock: + self.state["turn"] = p # "turn" contains the player who's turn it is + #try: + if True: + [x,y] = p.select() # Player selects a square + if self.stopped(): + break + + result = self.board.select(x, y, colour = p.colour) + for p2 in self.players: + p2.update(result) # Inform players of what happened + + + + target = self.board.grid[x][y] + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = self.board.possible_moves(target) + graphics.state["select"] = target + + time.sleep(turn_delay) + + + if len(self.board.possible_moves(target)) == 0: + #print "Piece cannot move" + target.deselect() + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = None + graphics.state["select"] = None + graphics.state["dest"] = None + continue + + try: + [x2,y2] = p.get_move() # Player selects a destination + except: + self.stop() + + if self.stopped(): + break + + result = self.board.update_move(x, y, x2, y2) + for p2 in self.players: + p2.update(str(x) + " " + str(y) + " -> " + str(x2) + " " + str(y2)) # Inform players of what happened + + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = [[x2,y2]] + + time.sleep(turn_delay) + + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["select"] = None + graphics.state["dest"] = None + graphics.state["moves"] = None + + # Commented out exception stuff for now, because it makes it impossible to tell if I made an IndentationError somewhere + #except Exception,e: + #result = "ILLEGAL " + e.message + #sys.stderr.write(result + "\n") + + #self.stop() + #with self.lock: + # self.final_result = self.state["turn"].colour + " " + "ILLEGAL" + + if self.board.king["black"] == None: + if self.board.king["white"] == None: + with self.lock: + self.final_result = "DRAW" + else: + with self.lock: + self.final_result = "white" + self.stop() + elif self.board.king["white"] == None: + with self.lock: + self.final_result = "black" + self.stop() + + + if self.stopped(): + break + + + for p2 in self.players: + p2.quit(self.final_result) + + graphics.stop() + + + + +def opponent(colour): + if colour == "white": + return "black" + else: + return "white" diff --git a/qchess/graphics.py b/qchess/graphics.py new file mode 100644 index 0000000..2939e89 --- /dev/null +++ b/qchess/graphics.py @@ -0,0 +1,286 @@ +import pygame + +# Dictionary that stores the unicode character representations of the different pieces +# Chess was clearly the reason why unicode was invented +# For some reason none of the pygame chess implementations I found used them! +piece_char = {"white" : {"king" : u'\u2654', + "queen" : u'\u2655', + "rook" : u'\u2656', + "bishop" : u'\u2657', + "knight" : u'\u2658', + "pawn" : u'\u2659', + "unknown" : '?'}, + "black" : {"king" : u'\u265A', + "queen" : u'\u265B', + "rook" : u'\u265C', + "bishop" : u'\u265D', + "knight" : u'\u265E', + "pawn" : u'\u265F', + "unknown" : '?'}} + +images = {"white" : {}, "black" : {}} +small_images = {"white" : {}, "black" : {}} + +# A thread to make things pretty +class GraphicsThread(StoppableThread): + def __init__(self, board, title = "UCC::Progcomp 2013 - QChess", grid_sz = [80,80]): + StoppableThread.__init__(self) + + self.board = board + pygame.init() + self.window = pygame.display.set_mode((grid_sz[0] * w, grid_sz[1] * h)) + pygame.display.set_caption(title) + self.grid_sz = grid_sz[:] + self.state = {"select" : None, "dest" : None, "moves" : None, "overlay" : None, "coverage" : None} + self.error = 0 + self.lock = threading.RLock() + self.cond = threading.Condition() + + # Get the font sizes + l_size = 5*(self.grid_sz[0] / 8) + s_size = 3*(self.grid_sz[0] / 8) + for p in piece_types.keys(): + c = "black" + images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", l_size).render(piece_char[c][p], True,(0,0,0))}) + small_images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", s_size).render(piece_char[c][p],True,(0,0,0))}) + c = "white" + + images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", l_size+1).render(piece_char["black"][p], True,(255,255,255))}) + images[c][p].blit(pygame.font.Font("data/DejaVuSans.ttf", l_size).render(piece_char[c][p], True,(0,0,0)),(0,0)) + small_images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", s_size+1).render(piece_char["black"][p],True,(255,255,255))}) + small_images[c][p].blit(pygame.font.Font("data/DejaVuSans.ttf", s_size).render(piece_char[c][p],True,(0,0,0)),(0,0)) + + + + + + # On the run from the world + def run(self): + + while not self.stopped(): + + self.board.display_grid(window = self.window, grid_sz = self.grid_sz) # Draw the board + + self.overlay() + + self.board.display_pieces(window = self.window, grid_sz = self.grid_sz) # Draw the board + + pygame.display.flip() + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + if isinstance(game, GameThread): + with game.lock: + game.final_result = "terminated" + game.stop() + self.stop() + break + elif event.type == pygame.MOUSEBUTTONDOWN: + self.mouse_down(event) + elif event.type == pygame.MOUSEBUTTONUP: + self.mouse_up(event) + + + + + + + self.message("Game ends, result \""+str(game.final_result) + "\"") + time.sleep(1) + + # Wake up anyone who is sleeping + self.cond.acquire() + self.cond.notify() + self.cond.release() + + pygame.quit() # Time to say goodbye + + # Mouse release event handler + def mouse_up(self, event): + if event.button == 3: + with self.lock: + self.state["overlay"] = None + elif event.button == 2: + with self.lock: + self.state["coverage"] = None + + # Mouse click event handler + def mouse_down(self, event): + if event.button == 1: + m = [event.pos[i] / self.grid_sz[i] for i in range(2)] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + s = self.board.grid[m[0]][m[1]] + select = self.state["select"] + if select == None: + if s != None and s.colour != p.colour: + self.message("Wrong colour") # Look at all this user friendliness! + time.sleep(1) + return + # Notify human player of move + self.cond.acquire() + with self.lock: + self.state["select"] = s + self.state["dest"] = None + self.cond.notify() + self.cond.release() + return + + if select == None: + return + + + if self.state["moves"] == None: + return + + if not m in self.state["moves"]: + self.message("Illegal Move") # I still think last year's mouse interface was adequate + time.sleep(2) + return + + with self.lock: + if self.state["dest"] == None: + self.cond.acquire() + self.state["dest"] = m + self.state["select"] = None + self.state["moves"] = None + self.cond.notify() + self.cond.release() + elif event.button == 3: + m = [event.pos[i] / self.grid_sz[i] for i in range(len(event.pos))] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + self.state["overlay"] = self.board.probability_grid(self.board.grid[m[0]][m[1]]) + + elif event.button == 2: + m = [event.pos[i] / self.grid_sz[i] for i in range(len(event.pos))] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + self.state["coverage"] = self.board.coverage(m[0], m[1], None, self.state["select"]) + + # Draw the overlay + def overlay(self): + + square_img = pygame.Surface((self.grid_sz[0], self.grid_sz[1]),pygame.SRCALPHA) # A square image + # Draw square over the selected piece + with self.lock: + select = self.state["select"] + if select != None: + mp = [self.grid_sz[i] * [select.x, select.y][i] for i in range(len(self.grid_sz))] + square_img.fill(pygame.Color(0,255,0,64)) + self.window.blit(square_img, mp) + # If a piece is selected, draw all reachable squares + # (This quality user interface has been patented) + with self.lock: + m = self.state["moves"] + if m != None: + square_img.fill(pygame.Color(255,0,0,128)) # Draw them in blood red + for move in m: + mp = [self.grid_sz[i] * move[i] for i in range(2)] + self.window.blit(square_img, mp) + # If a piece is overlayed, show all squares that it has a probability to reach + with self.lock: + m = self.state["overlay"] + if m != None: + for x in range(w): + for y in range(h): + if m[x][y] > 0.0: + mp = [self.grid_sz[i] * [x,y][i] for i in range(2)] + square_img.fill(pygame.Color(255,0,255,int(m[x][y] * 128))) # Draw in purple + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[x][y],2)), 1, pygame.Color(0,0,0)) + self.window.blit(text, mp) + + # If a square is selected, highlight all pieces that have a probability to reach it + with self.lock: + m = self.state["coverage"] + if m != None: + for p in m: + mp = [self.grid_sz[i] * [p.x,p.y][i] for i in range(2)] + square_img.fill(pygame.Color(0,255,255, int(m[p] * 196))) # Draw in pale blue + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[p],2)), 1, pygame.Color(0,0,0)) + self.window.blit(text, mp) + # Draw a square where the mouse is + # This also serves to indicate who's turn it is + + if isinstance(game, GameThread): + with game.lock: + turn = game.state["turn"] + else: + turn = None + + if isinstance(turn, HumanPlayer): + mp = [self.grid_sz[i] * int(pygame.mouse.get_pos()[i] / self.grid_sz[i]) for i in range(2)] + square_img.fill(pygame.Color(0,0,255,128)) + if turn.colour == "white": + c = pygame.Color(255,255,255) + else: + c = pygame.Color(0,0,0) + pygame.draw.rect(square_img, c, (0,0,self.grid_sz[0], self.grid_sz[1]), self.grid_sz[0]/10) + self.window.blit(square_img, mp) + + # Message in a bottle + def message(self, string, pos = None, colour = None, font_size = 32): + font = pygame.font.Font(None, font_size) + if colour == None: + colour = pygame.Color(0,0,0) + + text = font.render(string, 1, colour) + + + s = pygame.Surface((text.get_width(), text.get_height()), pygame.SRCALPHA) + s.fill(pygame.Color(128,128,128)) + + tmp = self.window.get_size() + + if pos == None: + pos = (tmp[0] / 2 - text.get_width() / 2, tmp[1] / 3 - text.get_height()) + else: + pos = (pos[0]*text.get_width() + tmp[0] / 2 - text.get_width() / 2, pos[1]*text.get_height() + tmp[1] / 3 - text.get_height()) + + + rect = (pos[0], pos[1], text.get_width(), text.get_height()) + + pygame.draw.rect(self.window, pygame.Color(0,0,0), pygame.Rect(rect), 1) + self.window.blit(s, pos) + self.window.blit(text, pos) + + pygame.display.flip() + + def getstr(self, prompt = None): + result = "" + while True: + #print "LOOP" + if prompt != None: + self.message(prompt) + self.message(result, pos = (0, 1)) + + for event in pygame.event.get(): + if event.type == pygame.KEYDOWN: + if chr(event.key) == '\r': + return result + result += str(chr(event.key)) diff --git a/qchess/main.py b/qchess/main.py new file mode 100644 index 0000000..a0a40db --- /dev/null +++ b/qchess/main.py @@ -0,0 +1,62 @@ +#!/usr/bin/python -u + +# Do you know what the -u does? It unbuffers stdin and stdout +# I can't remember why, but last year things broke without that + +""" + UCC::Progcomp 2013 Quantum Chess game + @author Sam Moore [SZM] "matches" + @copyright The University Computer Club, Incorporated + (ie: You can copy it for not for profit purposes) +""" + +# system python modules or whatever they are called +import sys +import os +import time + +turn_delay = 0.5 +[game, graphics] = [None, None] + + +# The main function! It does the main stuff! +def main(argv): + + # Apparently python will silently treat things as local unless you do this + # But (here's the fun part), only if you actually modify the variable. + # For example, all those 'if graphics_enabled' conditions work in functions that never say it is global + # Anyone who says "You should never use a global variable" can die in a fire + global game + global graphics + + # Magical argument parsing goes here + if len(argv) == 1: + players = [HumanPlayer("saruman", "white"), AgentRandom("sabbath", "black")] + elif len(argv) == 2: + players = [AgentPlayer(argv[1], "white"), HumanPlayer("shadow", "black"), ] + elif len(argv) == 3: + players = [AgentPlayer(argv[1], "white"), AgentPlayer(argv[2], "black")] + + # Construct the board! + board = Board(style = "quantum") + game = GameThread(board, players) # Construct a GameThread! Make it global! Damn the consequences! + #try: + if True: + graphics = GraphicsThread(board, grid_sz = [64,64]) # Construct a GraphicsThread! I KNOW WHAT I'M DOING! BEAR WITH ME! + game.start() # This runs in a new thread + #except NameError: + # print "Run game in main thread" + # game.run() # Run game in the main thread (no need for joining) + # return game.error + #except Exception, e: + # raise e + #else: + # print "Normal" + graphics.run() + game.join() + return game.error + graphics.error + + +# This is how python does a main() function... +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/qchess/piece.py b/qchess/piece.py new file mode 100644 index 0000000..5fd3943 --- /dev/null +++ b/qchess/piece.py @@ -0,0 +1,89 @@ +import random + +# I know using non-abreviated strings is inefficient, but this is python, who cares? +# Oh, yeah, this stores the number of pieces of each type in a normal chess game +piece_types = {"pawn" : 8, "bishop" : 2, "knight" : 2, "rook" : 2, "queen" : 1, "king" : 1, "unknown" : 0} + +# Class to represent a quantum chess piece +class Piece(): + def __init__(self, colour, x, y, types): + self.colour = colour # Colour (string) either "white" or "black" + self.x = x # x coordinate (0 - 8), none of this fancy 'a', 'b' shit here + self.y = y # y coordinate (0 - 8) + self.types = types # List of possible types the piece can be (should just be two) + self.current_type = "unknown" # Current type + self.choice = -1 # Index of the current type in self.types (-1 = unknown type) + self.types_revealed = [True, False] # Whether the types are known (by default the first type is always known at game start) + + + # + self.last_state = None + self.move_pattern = None + + + + def init_from_copy(self, c): + self.colour = c.colour + self.x = c.x + self.y = c.y + self.types = c.types[:] + self.current_type = c.current_type + self.choice = c.choice + self.types_revealed = c.types_revealed[:] + + self.last_state = None + self.move_pattern = None + + + + # Make a string for the piece (used for debug) + def __str__(self): + return str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) + + # Draw the piece in a pygame surface + def draw(self, window, grid_sz = [80,80]): + + # First draw the image corresponding to self.current_type + img = images[self.colour][self.current_type] + rect = img.get_rect() + offset = [-rect.width/2,-3*rect.height/4] + window.blit(img, (self.x * grid_sz[0] + grid_sz[0]/2 + offset[0], self.y * grid_sz[1] + grid_sz[1]/2 + offset[1])) + + + # Draw the two possible types underneath the current_type image + for i in range(len(self.types)): + if self.types_revealed[i] == True: + img = small_images[self.colour][self.types[i]] + else: + img = small_images[self.colour]["unknown"] # If the type hasn't been revealed, show a placeholder + + + rect = img.get_rect() + offset = [-rect.width/2,-rect.height/2] + + if i == 0: + target = (self.x * grid_sz[0] + grid_sz[0]/5 + offset[0], self.y * grid_sz[1] + 3*grid_sz[1]/4 + offset[1]) + else: + target = (self.x * grid_sz[0] + 4*grid_sz[0]/5 + offset[0], self.y * grid_sz[1] + 3*grid_sz[1]/4 + offset[1]) + + window.blit(img, target) # Blit shit + + # Collapses the wave function! + def select(self): + if self.current_type == "unknown": + self.choice = random.randint(0,1) + self.current_type = self.types[self.choice] + self.types_revealed[self.choice] = True + return self.choice + + # Uncollapses (?) the wave function! + def deselect(self): + #print "Deselect called" + if (self.x + self.y) % 2 != 0: + if (self.types[0] != self.types[1]) or (self.types_revealed[0] == False or self.types_revealed[1] == False): + self.current_type = "unknown" + self.choice = -1 + else: + self.choice = 0 # Both the two types are the same + + # The sad moment when you realise that you do not understand anything about a subject you studied for 4 years... diff --git a/qchess/player.py b/qchess/player.py new file mode 100644 index 0000000..4a3fa48 --- /dev/null +++ b/qchess/player.py @@ -0,0 +1,158 @@ +import subprocess + + + +# A player who can't play +class Player(): + def __init__(self, name, colour): + self.name = name + self.colour = colour + +# Player that runs from another process +class AgentPlayer(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + self.p = subprocess.Popen(name, stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=sys.stderr) + try: + self.p.stdin.write(colour + "\n") + except: + raise Exception("UNRESPONSIVE") + + def select(self): + + #try: + self.p.stdin.write("SELECTION?\n") + line = self.p.stdout.readline().strip("\r\n ") + #except: + # raise Exception("UNRESPONSIVE") + try: + result = map(int, line.split(" ")) + except: + raise Exception("GIBBERISH \"" + str(line) + "\"") + return result + + def update(self, result): + #print "Update " + str(result) + " called for AgentPlayer" +# try: + self.p.stdin.write(result + "\n") +# except: +# raise Exception("UNRESPONSIVE") + + def get_move(self): + + try: + self.p.stdin.write("MOVE?\n") + line = self.p.stdout.readline().strip("\r\n ") + except: + raise Exception("UNRESPONSIVE") + try: + result = map(int, line.split(" ")) + except: + raise Exception("GIBBERISH \"" + str(line) + "\"") + return result + + def quit(self, final_result): + try: + self.p.stdin.write("QUIT " + final_result + "\n") + except: + self.p.kill() + +# So you want to be a player here? +class HumanPlayer(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + + # Select your preferred account + def select(self): + if isinstance(graphics, GraphicsThread): + # Basically, we let the graphics thread do some shit and then return that information to the game thread + graphics.cond.acquire() + # We wait for the graphics thread to select a piece + while graphics.stopped() == False and graphics.state["select"] == None: + graphics.cond.wait() # The difference between humans and machines is that humans sleep + select = graphics.state["select"] + + + graphics.cond.release() + if graphics.stopped(): + return [-1,-1] + return [select.x, select.y] + else: + # Since I don't display the board in this case, I'm not sure why I filled it in... + while True: + sys.stdout.write("SELECTION?\n") + try: + p = map(int, sys.stdin.readline().strip("\r\n ").split(" ")) + except: + sys.stderr.write("ILLEGAL GIBBERISH\n") + continue + # It's your move captain + def get_move(self): + if isinstance(graphics, GraphicsThread): + graphics.cond.acquire() + while graphics.stopped() == False and graphics.state["dest"] == None: + graphics.cond.wait() + graphics.cond.release() + + return graphics.state["dest"] + else: + + while True: + sys.stdout.write("MOVE?\n") + try: + p = map(int, sys.stdin.readline().strip("\r\n ").split(" ")) + except: + sys.stderr.write("ILLEGAL GIBBERISH\n") + continue + + # Are you sure you want to quit? + def quit(self, final_result): + sys.stdout.write("QUIT " + final_result + "\n") + + # Completely useless function + def update(self, result): + if isinstance(graphics, GraphicsThread): + pass + else: + sys.stdout.write(result + "\n") + + +# Player that makes random moves +class AgentRandom(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + self.choice = None + + self.board = Board(style = "agent") + + def select(self): + while True: + self.choice = self.board.pieces[self.colour][random.randint(0, len(self.board.pieces[self.colour])-1)] + all_moves = [] + # Check that the piece has some possibility to move + tmp = self.choice.current_type + if tmp == "unknown": # For unknown pieces, try both types + for t in self.choice.types: + if t == "unknown": + continue + self.choice.current_type = t + all_moves += self.board.possible_moves(self.choice) + else: + all_moves = self.board.possible_moves(self.choice) + self.choice.current_type = tmp + if len(all_moves) > 0: + break + return [self.choice.x, self.choice.y] + + def get_move(self): + moves = self.board.possible_moves(self.choice) + move = moves[random.randint(0, len(moves)-1)] + return move + + def update(self, result): + #sys.stderr.write(sys.argv[0] + " : Update board for AgentRandom\n") + self.board.update(result) + self.board.verify() + + def quit(self, final_result): + pass diff --git a/qchess/qchess.py b/qchess/qchess.py new file mode 100755 index 0000000..db73c94 --- /dev/null +++ b/qchess/qchess.py @@ -0,0 +1,1144 @@ +#!/usr/bin/python -u +# +++ board.py +++ # +[w,h] = [8,8] # Width and height of board(s) + +# Class to represent a quantum chess board +class Board(): + # Initialise; if master=True then the secondary piece types are assigned + # Otherwise, they are left as unknown + # So you can use this class in Agent programs, and fill in the types as they are revealed + def __init__(self, style="agent"): + self.style = style + self.pieces = {"white" : [], "black" : []} + self.grid = [[None] * w for _ in range(h)] # 2D List (you can get arrays in python, somehow, but they scare me) + self.unrevealed_types = {"white" : piece_types.copy(), "black" : piece_types.copy()} + self.king = {"white" : None, "black" : None} # We need to keep track of the king, because he is important + for c in ["black", "white"]: + del self.unrevealed_types[c]["unknown"] + + # Add all the pieces with known primary types + for i in range(0, 2): + + s = ["black", "white"][i] + c = self.pieces[s] + y = [0, h-1][i] + + c.append(Piece(s, 0, y, ["rook"])) + c.append(Piece(s, 1, y, ["knight"])) + c.append(Piece(s, 2, y, ["bishop"])) + k = Piece(s, 3, y, ["king", "king"]) # There can only be one ruler! + k.types_revealed[1] = True + k.current_type = "king" + self.king[s] = k + c.append(k) + c.append(Piece(s, 4, y, ["queen"])) # Apparently he may have multiple wives though. + c.append(Piece(s, 5, y, ["bishop"])) + c.append(Piece(s, 6, y, ["knight"])) + c.append(Piece(s, 7, y, ["rook"])) + + if y == 0: + y += 1 + else: + y -= 1 + + # Lots of pawn + for x in range(0, w): + c.append(Piece(s, x, y, ["pawn"])) + + types_left = {} + types_left.update(piece_types) + del types_left["king"] # We don't want one of these randomly appearing (although it might make things interesting...) + del types_left["unknown"] # We certainly don't want these! + for piece in c: + # Add to grid + self.grid[piece.x][piece.y] = piece + + if len(piece.types) > 1: + continue + if style == "agent": # Assign placeholder "unknown" secondary type + piece.types.append("unknown") + continue + + elif style == "quantum": + # The master allocates the secondary types + choice = types_left.keys()[random.randint(0, len(types_left.keys())-1)] + types_left[choice] -= 1 + if types_left[choice] <= 0: + del types_left[choice] + piece.types.append(choice) + elif style == "classical": + piece.types.append(piece.types[0]) + piece.current_type = piece.types[0] + piece.types_revealed[1] = True + piece.choice = 0 + + def clone(self): + newboard = Board(master = False) + newpieces = newboard.pieces["white"] + newboard.pieces["black"] + mypieces = self.pieces["white"] + self.pieces["black"] + + for i in range(len(mypieces)): + newpieces[i].init_from_copy(mypieces[i]) + + + def display_grid(self, window = None, grid_sz = [80,80]): + if window == None: + return # I was considering implementing a text only display, then I thought "Fuck that" + + # The indentation is getting seriously out of hand... + for x in range(0, w): + for y in range(0, h): + if (x + y) % 2 == 0: + c = pygame.Color(200,200,200) + else: + c = pygame.Color(64,64,64) + pygame.draw.rect(window, c, (x*grid_sz[0], y*grid_sz[1], (x+1)*grid_sz[0], (y+1)*grid_sz[1])) + + def display_pieces(self, window = None, grid_sz = [80,80]): + if window == None: + return + for p in self.pieces["white"] + self.pieces["black"]: + p.draw(window, grid_sz) + + # Draw the board in a pygame window + def display(self, window = None): + self.display_grid(window) + self.display_pieces(window) + + + + + def verify(self): + for x in range(w): + for y in range(h): + if self.grid[x][y] == None: + continue + if (self.grid[x][y].x != x or self.grid[x][y].y != y): + raise Exception(sys.argv[0] + ": MISMATCH " + str(self.grid[x][y]) + " should be at " + str(x) + "," + str(y)) + + # Select a piece on the board (colour is the colour of whoever is doing the selecting) + def select(self, x,y, colour=None): + if not self.on_board(x, y): # Get on board everyone! + raise Exception("BOUNDS") + + piece = self.grid[x][y] + if piece == None: + raise Exception("EMPTY") + + if colour != None and piece.colour != colour: + raise Exception("COLOUR") + + # I'm not quite sure why I made this return a string, but screw logical design + return str(x) + " " + str(y) + " " + str(piece.select()) + " " + str(piece.current_type) + + + # Update the board when a piece has been selected + # "type" is apparently reserved, so I'll use "state" + def update_select(self, x, y, type_index, state): + piece = self.grid[x][y] + if piece.types[type_index] == "unknown": + if not state in self.unrevealed_types[piece.colour].keys(): + raise Exception("SANITY: Too many " + piece.colour + " " + state + "s") + self.unrevealed_types[piece.colour][state] -= 1 + if self.unrevealed_types[piece.colour][state] <= 0: + del self.unrevealed_types[piece.colour][state] + + piece.types[type_index] = state + piece.types_revealed[type_index] = True + piece.current_type = state + + if len(self.possible_moves(piece)) <= 0: + piece.deselect() # Piece can't move; deselect it + + # Update the board when a piece has been moved + def update_move(self, x, y, x2, y2): + piece = self.grid[x][y] + self.grid[x][y] = None + taken = self.grid[x2][y2] + if taken != None: + if taken.current_type == "king": + self.king[taken.colour] = None + self.pieces[taken.colour].remove(taken) + self.grid[x2][y2] = piece + piece.x = x2 + piece.y = y2 + + # If the piece is a pawn, and it reaches the final row, it becomes a queen + # I know you are supposed to get a choice + # But that would be effort + if piece.current_type == "pawn" and ((piece.colour == "white" and piece.y == 0) or (piece.colour == "black" and piece.y == h-1)): + if self.style == "classical": + piece.types[0] = "queen" + piece.types[1] = "queen" + else: + piece.types[piece.choice] = "queen" + piece.current_type = "queen" + + piece.deselect() # Uncollapse (?) the wavefunction! + self.verify() + + # Update the board from a string + # Guesses what to do based on the format of the string + def update(self, result): + #print "Update called with \"" + str(result) + "\"" + # String always starts with 'x y' + try: + s = result.split(" ") + [x,y] = map(int, s[0:2]) + except: + raise Exception("GIBBERISH \""+ str(result) + "\"") # Raise expectations + + piece = self.grid[x][y] + if piece == None: + raise Exception("EMPTY") + + # If a piece is being moved, the third token is '->' + # We could get away with just using four integers, but that wouldn't look as cool + if "->" in s: + # Last two tokens are the destination + try: + [x2,y2] = map(int, s[3:]) + except: + raise Exception("GIBBERISH \"" + str(result) + "\"") # Raise the alarm + + # Move the piece (take opponent if possible) + self.update_move(x, y, x2, y2) + + else: + # Otherwise we will just assume a piece has been selected + try: + type_index = int(s[2]) # We need to know which of the two types the piece is in; that's the third token + state = s[3] # The last token is a string identifying the type + except: + raise Exception("GIBBERISH \"" + result + "\"") # Throw a hissy fit + + # Select the piece + self.update_select(x, y, type_index, state) + + return result + + # Gets each piece that could reach the given square and the probability that it could reach that square + # Will include allied pieces that defend the attacker + def coverage(self, x, y, colour = None, reject_allied = True): + result = {} + + if colour == None: + pieces = self.pieces["white"] + self.pieces["black"] + else: + pieces = self.pieces[colour] + + for p in pieces: + prob = self.probability_grid(p, reject_allied)[x][y] + if prob > 0: + result.update({p : prob}) + + self.verify() + return result + + + + + + # Associates each square with a probability that the piece could move into it + # Look, I'm doing all the hard work for you here... + def probability_grid(self, p, reject_allied = True): + + result = [[0.0] * w for _ in range(h)] + if not isinstance(p, Piece): + return result + + if p.current_type != "unknown": + #sys.stderr.write(sys.argv[0] + ": " + str(p) + " moves " + str(self.possible_moves(p, reject_allied)) + "\n") + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] = 1.0 + return result + + + for i in range(len(p.types)): + t = p.types[i] + prob = 0.5 + if t == "unknown" or p.types_revealed[i] == False: + total_types = 0 + for t2 in self.unrevealed_types[p.colour].keys(): + total_types += self.unrevealed_types[p.colour][t2] + + for t2 in self.unrevealed_types[p.colour].keys(): + prob2 = float(self.unrevealed_types[p.colour][t2]) / float(total_types) + p.current_type = t2 + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] += prob2 * prob + + else: + p.current_type = t + for point in self.possible_moves(p, reject_allied): + result[point[0]][point[1]] += prob + + self.verify() + p.current_type = "unknown" + return result + + def prob_is_type(self, p, state): + prob = 0.5 + result = 0 + for i in range(len(p.types)): + t = p.types[i] + if t == state: + result += prob + continue + if t == "unknown" or p.types_revealed[i] == False: + total_prob = 0 + for t2 in self.unrevealed_types[p.colour].keys(): + total_prob += self.unrevealed_types[p.colour][t2] + for t2 in self.unrevealed_types[p.colour].keys(): + if t2 == state: + result += prob * float(self.unrevealed_types[p.colour][t2]) / float(total_prob) + + + + # Get all squares that the piece could move into + # This is probably inefficient, but I looked at some sample chess games and they seem to actually do things this way + # reject_allied indicates whether squares occupied by allied pieces will be removed + # (set to false to check for defense) + def possible_moves(self, p, reject_allied = True): + result = [] + if p == None: + return result + + + if p.current_type == "unknown": + raise Exception("SANITY: Piece state unknown") + # The below commented out code causes things to break badly + #for t in p.types: + # if t == "unknown": + # continue + # p.current_type = t + # result += self.possible_moves(p) + #p.current_type = "unknown" + #return result + + if p.current_type == "king": + result = [[p.x-1,p.y],[p.x+1,p.y],[p.x,p.y-1],[p.x,p.y+1], [p.x-1,p.y-1],[p.x-1,p.y+1],[p.x+1,p.y-1],[p.x+1,p.y+1]] + elif p.current_type == "queen": + for d in [[-1,0],[1,0],[0,-1],[0,1],[-1,-1],[-1,1],[1,-1],[1,1]]: + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "bishop": + for d in [[-1,-1],[-1,1],[1,-1],[1,1]]: # There's a reason why bishops move diagonally + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "rook": + for d in [[-1,0],[1,0],[0,-1],[0,1]]: + result += self.scan(p.x, p.y, d[0], d[1]) + elif p.current_type == "knight": + # I would use two lines, but I'm not sure how python likes that + result = [[p.x-2, p.y-1], [p.x-2, p.y+1], [p.x+2, p.y-1], [p.x+2,p.y+1], [p.x-1,p.y-2], [p.x-1, p.y+2],[p.x+1,p.y-2],[p.x+1,p.y+2]] + elif p.current_type == "pawn": + if p.colour == "white": + + # Pawn can't move forward into occupied square + if self.on_board(p.x, p.y-1) and self.grid[p.x][p.y-1] == None: + result = [[p.x,p.y-1]] + for f in [[p.x-1,p.y-1],[p.x+1,p.y-1]]: + if not self.on_board(f[0], f[1]): + continue + if self.grid[f[0]][f[1]] != None: # Pawn can take diagonally + result.append(f) + if p.y == h-2: + # Slightly embarrassing if the pawn jumps over someone on its first move... + if self.grid[p.x][p.y-1] == None and self.grid[p.x][p.y-2] == None: + result.append([p.x, p.y-2]) + else: + # Vice versa for the black pawn + if self.on_board(p.x, p.y+1) and self.grid[p.x][p.y+1] == None: + result = [[p.x,p.y+1]] + + for f in [[p.x-1,p.y+1],[p.x+1,p.y+1]]: + if not self.on_board(f[0], f[1]): + continue + if self.grid[f[0]][f[1]] != None: + #sys.stderr.write(sys.argv[0] + " : "+str(p) + " can take " + str(self.grid[f[0]][f[1]]) + "\n") + result.append(f) + if p.y == 1: + if self.grid[p.x][p.y+1] == None and self.grid[p.x][p.y+2] == None: + result.append([p.x, p.y+2]) + + #sys.stderr.write(sys.argv[0] + " : possible_moves for " + str(p) + " " + str(result) + "\n") + + # Remove illegal moves + # Note: The result[:] creates a copy of result, so that the result.remove calls don't fuck things up + for point in result[:]: + + if (point[0] < 0 or point[0] >= w) or (point[1] < 0 or point[1] >= h): + result.remove(point) # Remove locations outside the board + continue + g = self.grid[point[0]][point[1]] + + if g != None and (g.colour == p.colour and reject_allied == True): + result.remove(point) # Remove allied pieces + + self.verify() + return result + + + # Scans in a direction until it hits a piece, returns all squares in the line + # (includes the final square (which contains a piece), but not the original square) + def scan(self, x, y, vx, vy): + p = [] + + xx = x + yy = y + while True: + xx += vx + yy += vy + if not self.on_board(xx, yy): + break + if not [xx,yy] in p: + p.append([xx, yy]) + g = self.grid[xx][yy] + if g != None: + return p + + return p + + + + # I typed the full statement about 30 times before writing this function... + def on_board(self, x, y): + return (x >= 0 and x < w) and (y >= 0 and y < h) +# --- board.py --- # +# +++ game.py +++ # + +# A thread that runs the game +class GameThread(StoppableThread): + def __init__(self, board, players): + StoppableThread.__init__(self) + self.board = board + self.players = players + self.state = {"turn" : None} # The game state + self.error = 0 # Whether the thread exits with an error + self.lock = threading.RLock() #lock for access of self.state + self.cond = threading.Condition() # conditional for some reason, I forgot + self.final_result = "" + + # Run the game (run in new thread with start(), run in current thread with run()) + def run(self): + result = "" + while not self.stopped(): + + for p in self.players: + with self.lock: + self.state["turn"] = p # "turn" contains the player who's turn it is + #try: + if True: + [x,y] = p.select() # Player selects a square + if self.stopped(): + break + + result = self.board.select(x, y, colour = p.colour) + for p2 in self.players: + p2.update(result) # Inform players of what happened + + + + target = self.board.grid[x][y] + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = self.board.possible_moves(target) + graphics.state["select"] = target + + time.sleep(turn_delay) + + + if len(self.board.possible_moves(target)) == 0: + #print "Piece cannot move" + target.deselect() + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = None + graphics.state["select"] = None + graphics.state["dest"] = None + continue + + try: + [x2,y2] = p.get_move() # Player selects a destination + except: + self.stop() + + if self.stopped(): + break + + result = self.board.update_move(x, y, x2, y2) + for p2 in self.players: + p2.update(str(x) + " " + str(y) + " -> " + str(x2) + " " + str(y2)) # Inform players of what happened + + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["moves"] = [[x2,y2]] + + time.sleep(turn_delay) + + if isinstance(graphics, GraphicsThread): + with graphics.lock: + graphics.state["select"] = None + graphics.state["dest"] = None + graphics.state["moves"] = None + + # Commented out exception stuff for now, because it makes it impossible to tell if I made an IndentationError somewhere + #except Exception,e: + #result = "ILLEGAL " + e.message + #sys.stderr.write(result + "\n") + + #self.stop() + #with self.lock: + # self.final_result = self.state["turn"].colour + " " + "ILLEGAL" + + if self.board.king["black"] == None: + if self.board.king["white"] == None: + with self.lock: + self.final_result = "DRAW" + else: + with self.lock: + self.final_result = "white" + self.stop() + elif self.board.king["white"] == None: + with self.lock: + self.final_result = "black" + self.stop() + + + if self.stopped(): + break + + + for p2 in self.players: + p2.quit(self.final_result) + + graphics.stop() + + + + +def opponent(colour): + if colour == "white": + return "black" + else: + return "white" +# --- game.py --- # +# +++ graphics.py +++ # +import pygame + +# Dictionary that stores the unicode character representations of the different pieces +# Chess was clearly the reason why unicode was invented +# For some reason none of the pygame chess implementations I found used them! +piece_char = {"white" : {"king" : u'\u2654', + "queen" : u'\u2655', + "rook" : u'\u2656', + "bishop" : u'\u2657', + "knight" : u'\u2658', + "pawn" : u'\u2659', + "unknown" : '?'}, + "black" : {"king" : u'\u265A', + "queen" : u'\u265B', + "rook" : u'\u265C', + "bishop" : u'\u265D', + "knight" : u'\u265E', + "pawn" : u'\u265F', + "unknown" : '?'}} + +images = {"white" : {}, "black" : {}} +small_images = {"white" : {}, "black" : {}} + +# A thread to make things pretty +class GraphicsThread(StoppableThread): + def __init__(self, board, title = "UCC::Progcomp 2013 - QChess", grid_sz = [80,80]): + StoppableThread.__init__(self) + + self.board = board + pygame.init() + self.window = pygame.display.set_mode((grid_sz[0] * w, grid_sz[1] * h)) + pygame.display.set_caption(title) + self.grid_sz = grid_sz[:] + self.state = {"select" : None, "dest" : None, "moves" : None, "overlay" : None, "coverage" : None} + self.error = 0 + self.lock = threading.RLock() + self.cond = threading.Condition() + + # Get the font sizes + l_size = 5*(self.grid_sz[0] / 8) + s_size = 3*(self.grid_sz[0] / 8) + for p in piece_types.keys(): + c = "black" + images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", l_size).render(piece_char[c][p], True,(0,0,0))}) + small_images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", s_size).render(piece_char[c][p],True,(0,0,0))}) + c = "white" + + images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", l_size+1).render(piece_char["black"][p], True,(255,255,255))}) + images[c][p].blit(pygame.font.Font("data/DejaVuSans.ttf", l_size).render(piece_char[c][p], True,(0,0,0)),(0,0)) + small_images[c].update({p : pygame.font.Font("data/DejaVuSans.ttf", s_size+1).render(piece_char["black"][p],True,(255,255,255))}) + small_images[c][p].blit(pygame.font.Font("data/DejaVuSans.ttf", s_size).render(piece_char[c][p],True,(0,0,0)),(0,0)) + + + + + + # On the run from the world + def run(self): + + while not self.stopped(): + + self.board.display_grid(window = self.window, grid_sz = self.grid_sz) # Draw the board + + self.overlay() + + self.board.display_pieces(window = self.window, grid_sz = self.grid_sz) # Draw the board + + pygame.display.flip() + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + if isinstance(game, GameThread): + with game.lock: + game.final_result = "terminated" + game.stop() + self.stop() + break + elif event.type == pygame.MOUSEBUTTONDOWN: + self.mouse_down(event) + elif event.type == pygame.MOUSEBUTTONUP: + self.mouse_up(event) + + + + + + + self.message("Game ends, result \""+str(game.final_result) + "\"") + time.sleep(1) + + # Wake up anyone who is sleeping + self.cond.acquire() + self.cond.notify() + self.cond.release() + + pygame.quit() # Time to say goodbye + + # Mouse release event handler + def mouse_up(self, event): + if event.button == 3: + with self.lock: + self.state["overlay"] = None + elif event.button == 2: + with self.lock: + self.state["coverage"] = None + + # Mouse click event handler + def mouse_down(self, event): + if event.button == 1: + m = [event.pos[i] / self.grid_sz[i] for i in range(2)] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + s = self.board.grid[m[0]][m[1]] + select = self.state["select"] + if select == None: + if s != None and s.colour != p.colour: + self.message("Wrong colour") # Look at all this user friendliness! + time.sleep(1) + return + # Notify human player of move + self.cond.acquire() + with self.lock: + self.state["select"] = s + self.state["dest"] = None + self.cond.notify() + self.cond.release() + return + + if select == None: + return + + + if self.state["moves"] == None: + return + + if not m in self.state["moves"]: + self.message("Illegal Move") # I still think last year's mouse interface was adequate + time.sleep(2) + return + + with self.lock: + if self.state["dest"] == None: + self.cond.acquire() + self.state["dest"] = m + self.state["select"] = None + self.state["moves"] = None + self.cond.notify() + self.cond.release() + elif event.button == 3: + m = [event.pos[i] / self.grid_sz[i] for i in range(len(event.pos))] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + self.state["overlay"] = self.board.probability_grid(self.board.grid[m[0]][m[1]]) + + elif event.button == 2: + m = [event.pos[i] / self.grid_sz[i] for i in range(len(event.pos))] + if isinstance(game, GameThread): + with game.lock: + p = game.state["turn"] + else: + p = None + + + if isinstance(p, HumanPlayer): + with self.lock: + self.state["coverage"] = self.board.coverage(m[0], m[1], None, self.state["select"]) + + # Draw the overlay + def overlay(self): + + square_img = pygame.Surface((self.grid_sz[0], self.grid_sz[1]),pygame.SRCALPHA) # A square image + # Draw square over the selected piece + with self.lock: + select = self.state["select"] + if select != None: + mp = [self.grid_sz[i] * [select.x, select.y][i] for i in range(len(self.grid_sz))] + square_img.fill(pygame.Color(0,255,0,64)) + self.window.blit(square_img, mp) + # If a piece is selected, draw all reachable squares + # (This quality user interface has been patented) + with self.lock: + m = self.state["moves"] + if m != None: + square_img.fill(pygame.Color(255,0,0,128)) # Draw them in blood red + for move in m: + mp = [self.grid_sz[i] * move[i] for i in range(2)] + self.window.blit(square_img, mp) + # If a piece is overlayed, show all squares that it has a probability to reach + with self.lock: + m = self.state["overlay"] + if m != None: + for x in range(w): + for y in range(h): + if m[x][y] > 0.0: + mp = [self.grid_sz[i] * [x,y][i] for i in range(2)] + square_img.fill(pygame.Color(255,0,255,int(m[x][y] * 128))) # Draw in purple + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[x][y],2)), 1, pygame.Color(0,0,0)) + self.window.blit(text, mp) + + # If a square is selected, highlight all pieces that have a probability to reach it + with self.lock: + m = self.state["coverage"] + if m != None: + for p in m: + mp = [self.grid_sz[i] * [p.x,p.y][i] for i in range(2)] + square_img.fill(pygame.Color(0,255,255, int(m[p] * 196))) # Draw in pale blue + self.window.blit(square_img, mp) + font = pygame.font.Font(None, 14) + text = font.render("{0:.2f}".format(round(m[p],2)), 1, pygame.Color(0,0,0)) + self.window.blit(text, mp) + # Draw a square where the mouse is + # This also serves to indicate who's turn it is + + if isinstance(game, GameThread): + with game.lock: + turn = game.state["turn"] + else: + turn = None + + if isinstance(turn, HumanPlayer): + mp = [self.grid_sz[i] * int(pygame.mouse.get_pos()[i] / self.grid_sz[i]) for i in range(2)] + square_img.fill(pygame.Color(0,0,255,128)) + if turn.colour == "white": + c = pygame.Color(255,255,255) + else: + c = pygame.Color(0,0,0) + pygame.draw.rect(square_img, c, (0,0,self.grid_sz[0], self.grid_sz[1]), self.grid_sz[0]/10) + self.window.blit(square_img, mp) + + # Message in a bottle + def message(self, string, pos = None, colour = None, font_size = 32): + font = pygame.font.Font(None, font_size) + if colour == None: + colour = pygame.Color(0,0,0) + + text = font.render(string, 1, colour) + + + s = pygame.Surface((text.get_width(), text.get_height()), pygame.SRCALPHA) + s.fill(pygame.Color(128,128,128)) + + tmp = self.window.get_size() + + if pos == None: + pos = (tmp[0] / 2 - text.get_width() / 2, tmp[1] / 3 - text.get_height()) + else: + pos = (pos[0]*text.get_width() + tmp[0] / 2 - text.get_width() / 2, pos[1]*text.get_height() + tmp[1] / 3 - text.get_height()) + + + rect = (pos[0], pos[1], text.get_width(), text.get_height()) + + pygame.draw.rect(self.window, pygame.Color(0,0,0), pygame.Rect(rect), 1) + self.window.blit(s, pos) + self.window.blit(text, pos) + + pygame.display.flip() + + def getstr(self, prompt = None): + result = "" + while True: + #print "LOOP" + if prompt != None: + self.message(prompt) + self.message(result, pos = (0, 1)) + + for event in pygame.event.get(): + if event.type == pygame.KEYDOWN: + if chr(event.key) == '\r': + return result + result += str(chr(event.key)) +# --- graphics.py --- # +# +++ main.py +++ # +#!/usr/bin/python -u + +# Do you know what the -u does? It unbuffers stdin and stdout +# I can't remember why, but last year things broke without that + +""" + UCC::Progcomp 2013 Quantum Chess game + @author Sam Moore [SZM] "matches" + @copyright The University Computer Club, Incorporated + (ie: You can copy it for not for profit purposes) +""" + +# system python modules or whatever they are called +import sys +import os +import time + +turn_delay = 0.5 +[game, graphics] = [None, None] + + +# The main function! It does the main stuff! +def main(argv): + + # Apparently python will silently treat things as local unless you do this + # But (here's the fun part), only if you actually modify the variable. + # For example, all those 'if graphics_enabled' conditions work in functions that never say it is global + # Anyone who says "You should never use a global variable" can die in a fire + global game + global graphics + + # Magical argument parsing goes here + if len(argv) == 1: + players = [HumanPlayer("saruman", "white"), AgentRandom("sabbath", "black")] + elif len(argv) == 2: + players = [AgentPlayer(argv[1], "white"), HumanPlayer("shadow", "black"), ] + elif len(argv) == 3: + players = [AgentPlayer(argv[1], "white"), AgentPlayer(argv[2], "black")] + + # Construct the board! + board = Board(style = "quantum") + game = GameThread(board, players) # Construct a GameThread! Make it global! Damn the consequences! + #try: + if True: + graphics = GraphicsThread(board, grid_sz = [64,64]) # Construct a GraphicsThread! I KNOW WHAT I'M DOING! BEAR WITH ME! + game.start() # This runs in a new thread + #except NameError: + # print "Run game in main thread" + # game.run() # Run game in the main thread (no need for joining) + # return game.error + #except Exception, e: + # raise e + #else: + # print "Normal" + graphics.run() + game.join() + return game.error + graphics.error + + +# This is how python does a main() function... +if __name__ == "__main__": + sys.exit(main(sys.argv)) +# --- main.py --- # +# +++ piece.py +++ # +import random + +# I know using non-abreviated strings is inefficient, but this is python, who cares? +# Oh, yeah, this stores the number of pieces of each type in a normal chess game +piece_types = {"pawn" : 8, "bishop" : 2, "knight" : 2, "rook" : 2, "queen" : 1, "king" : 1, "unknown" : 0} + +# Class to represent a quantum chess piece +class Piece(): + def __init__(self, colour, x, y, types): + self.colour = colour # Colour (string) either "white" or "black" + self.x = x # x coordinate (0 - 8), none of this fancy 'a', 'b' shit here + self.y = y # y coordinate (0 - 8) + self.types = types # List of possible types the piece can be (should just be two) + self.current_type = "unknown" # Current type + self.choice = -1 # Index of the current type in self.types (-1 = unknown type) + self.types_revealed = [True, False] # Whether the types are known (by default the first type is always known at game start) + + + # + self.last_state = None + self.move_pattern = None + + + + def init_from_copy(self, c): + self.colour = c.colour + self.x = c.x + self.y = c.y + self.types = c.types[:] + self.current_type = c.current_type + self.choice = c.choice + self.types_revealed = c.types_revealed[:] + + self.last_state = None + self.move_pattern = None + + + + # Make a string for the piece (used for debug) + def __str__(self): + return str(self.current_type) + " " + str(self.types) + " at " + str(self.x) + ","+str(self.y) + + # Draw the piece in a pygame surface + def draw(self, window, grid_sz = [80,80]): + + # First draw the image corresponding to self.current_type + img = images[self.colour][self.current_type] + rect = img.get_rect() + offset = [-rect.width/2,-3*rect.height/4] + window.blit(img, (self.x * grid_sz[0] + grid_sz[0]/2 + offset[0], self.y * grid_sz[1] + grid_sz[1]/2 + offset[1])) + + + # Draw the two possible types underneath the current_type image + for i in range(len(self.types)): + if self.types_revealed[i] == True: + img = small_images[self.colour][self.types[i]] + else: + img = small_images[self.colour]["unknown"] # If the type hasn't been revealed, show a placeholder + + + rect = img.get_rect() + offset = [-rect.width/2,-rect.height/2] + + if i == 0: + target = (self.x * grid_sz[0] + grid_sz[0]/5 + offset[0], self.y * grid_sz[1] + 3*grid_sz[1]/4 + offset[1]) + else: + target = (self.x * grid_sz[0] + 4*grid_sz[0]/5 + offset[0], self.y * grid_sz[1] + 3*grid_sz[1]/4 + offset[1]) + + window.blit(img, target) # Blit shit + + # Collapses the wave function! + def select(self): + if self.current_type == "unknown": + self.choice = random.randint(0,1) + self.current_type = self.types[self.choice] + self.types_revealed[self.choice] = True + return self.choice + + # Uncollapses (?) the wave function! + def deselect(self): + #print "Deselect called" + if (self.x + self.y) % 2 != 0: + if (self.types[0] != self.types[1]) or (self.types_revealed[0] == False or self.types_revealed[1] == False): + self.current_type = "unknown" + self.choice = -1 + else: + self.choice = 0 # Both the two types are the same + + # The sad moment when you realise that you do not understand anything about a subject you studied for 4 years... +# --- piece.py --- # +# +++ player.py +++ # +import subprocess + + + +# A player who can't play +class Player(): + def __init__(self, name, colour): + self.name = name + self.colour = colour + +# Player that runs from another process +class AgentPlayer(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + self.p = subprocess.Popen(name, stdin=subprocess.PIPE, stdout=subprocess.PIPE,stderr=sys.stderr) + try: + self.p.stdin.write(colour + "\n") + except: + raise Exception("UNRESPONSIVE") + + def select(self): + + #try: + self.p.stdin.write("SELECTION?\n") + line = self.p.stdout.readline().strip("\r\n ") + #except: + # raise Exception("UNRESPONSIVE") + try: + result = map(int, line.split(" ")) + except: + raise Exception("GIBBERISH \"" + str(line) + "\"") + return result + + def update(self, result): + #print "Update " + str(result) + " called for AgentPlayer" +# try: + self.p.stdin.write(result + "\n") +# except: +# raise Exception("UNRESPONSIVE") + + def get_move(self): + + try: + self.p.stdin.write("MOVE?\n") + line = self.p.stdout.readline().strip("\r\n ") + except: + raise Exception("UNRESPONSIVE") + try: + result = map(int, line.split(" ")) + except: + raise Exception("GIBBERISH \"" + str(line) + "\"") + return result + + def quit(self, final_result): + try: + self.p.stdin.write("QUIT " + final_result + "\n") + except: + self.p.kill() + +# So you want to be a player here? +class HumanPlayer(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + + # Select your preferred account + def select(self): + if isinstance(graphics, GraphicsThread): + # Basically, we let the graphics thread do some shit and then return that information to the game thread + graphics.cond.acquire() + # We wait for the graphics thread to select a piece + while graphics.stopped() == False and graphics.state["select"] == None: + graphics.cond.wait() # The difference between humans and machines is that humans sleep + select = graphics.state["select"] + + + graphics.cond.release() + if graphics.stopped(): + return [-1,-1] + return [select.x, select.y] + else: + # Since I don't display the board in this case, I'm not sure why I filled it in... + while True: + sys.stdout.write("SELECTION?\n") + try: + p = map(int, sys.stdin.readline().strip("\r\n ").split(" ")) + except: + sys.stderr.write("ILLEGAL GIBBERISH\n") + continue + # It's your move captain + def get_move(self): + if isinstance(graphics, GraphicsThread): + graphics.cond.acquire() + while graphics.stopped() == False and graphics.state["dest"] == None: + graphics.cond.wait() + graphics.cond.release() + + return graphics.state["dest"] + else: + + while True: + sys.stdout.write("MOVE?\n") + try: + p = map(int, sys.stdin.readline().strip("\r\n ").split(" ")) + except: + sys.stderr.write("ILLEGAL GIBBERISH\n") + continue + + # Are you sure you want to quit? + def quit(self, final_result): + sys.stdout.write("QUIT " + final_result + "\n") + + # Completely useless function + def update(self, result): + if isinstance(graphics, GraphicsThread): + pass + else: + sys.stdout.write(result + "\n") + + +# Player that makes random moves +class AgentRandom(Player): + def __init__(self, name, colour): + Player.__init__(self, name, colour) + self.choice = None + + self.board = Board(style = "agent") + + def select(self): + while True: + self.choice = self.board.pieces[self.colour][random.randint(0, len(self.board.pieces[self.colour])-1)] + all_moves = [] + # Check that the piece has some possibility to move + tmp = self.choice.current_type + if tmp == "unknown": # For unknown pieces, try both types + for t in self.choice.types: + if t == "unknown": + continue + self.choice.current_type = t + all_moves += self.board.possible_moves(self.choice) + else: + all_moves = self.board.possible_moves(self.choice) + self.choice.current_type = tmp + if len(all_moves) > 0: + break + return [self.choice.x, self.choice.y] + + def get_move(self): + moves = self.board.possible_moves(self.choice) + move = moves[random.randint(0, len(moves)-1)] + return move + + def update(self, result): + #sys.stderr.write(sys.argv[0] + " : Update board for AgentRandom\n") + self.board.update(result) + self.board.verify() + + def quit(self, final_result): + pass +# --- player.py --- # +# +++ thread_util.py +++ # +import threading + +# A thread that can be stopped! +# Except it can only be stopped if it checks self.stopped() periodically +# So it can sort of be stopped +class StoppableThread(threading.Thread): + def __init__(self): + threading.Thread.__init__(self) + self._stop = threading.Event() + + def stop(self): + self._stop.set() + + def stopped(self): + return self._stop.isSet() +# --- thread_util.py --- # diff --git a/qchess/thread_util.py b/qchess/thread_util.py new file mode 100644 index 0000000..2c79330 --- /dev/null +++ b/qchess/thread_util.py @@ -0,0 +1,15 @@ +import threading + +# A thread that can be stopped! +# Except it can only be stopped if it checks self.stopped() periodically +# So it can sort of be stopped +class StoppableThread(threading.Thread): + def __init__(self): + threading.Thread.__init__(self) + self._stop = threading.Event() + + def stop(self): + self._stop.set() + + def stopped(self): + return self._stop.isSet() diff --git a/qchess/update.sh b/qchess/update.sh new file mode 100755 index 0000000..0edb377 --- /dev/null +++ b/qchess/update.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# I still can't believe I am doing this + +target=qchess.py +components="piece.py board.py player.py thread_util.py game.py graphics.py main.py" +# The below seems nicer, but doesn't work because things need to be imported in the right order :( +#components=$(ls *.py | tr '\t' '\n' | grep -v $target) + +header="#!/usr/bin/python -u" +footer="# EOF - created from update.sh on $(date)" + + + +# If the target was modified more recently than any of the components, update the component file +target_mod=$(stat -c %Y $target) + +merge_required=false + +for f in $components; do + if [ $(stat -c %Y $f) -lt $target_mod ]; then + nawk "/+++ $f +++/, /--- $f ---/" $target | grep -v "+++ $f +++" | grep -v "\--- $f ---" > $f + else + merge_required=true +done + +if $merge_required; then + echo $header > $target + for f in $components; do + cat $components >> $target + done + + echo $footer > $target +fi -- 2.20.1

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