def do_cards(player): """Turn in all of a player's cards""" for a, b, c in itertools.combinations(player.cards, 3): if riskengine.CardSet([a, b, c]).value() is not None: riskengine.logai("turning in cards") riskengine.turnincards(player, [a, b, c]) return False return True
def do_cards(player): card_function = getattr(player.ai, "TurnInCards", None) print 'Trying to do cards. The card function is: ', card_function if callable(card_function): c1, c2, c3 = card_function(player) if c1 is not None: riskengine.logai("turning in cards") riskengine.turnincards(player, [c1, c2, c3]) if len(player.cards) >= 5: do_auto_cards(player)
def do_auto_cards(player): """Turn in all of a player's cards""" if len(player.cards) >= 5: for a in range(len(player.cards) - 2): for b in range(a + 1, len(player.cards) - 1): for c in range(b + 1, len(player.cards)): if riskengine.cardset( [player.cards[a], player.cards[b], player.cards[c]]): riskengine.logai("turning in cards") riskengine.turnincards(player, [ player.cards[a], player.cards[b], player.cards[c] ]) return
def showcards(): """Show a player's cards""" if riskengine.phase == "Pregame": return if riskengine.currentplayer and \ hasattr(riskengine.currentplayer, "connection"): return #even server shouldn't be able to see another client's cards cdialog = CardsDialog(root, "Cards:") if hasattr(cdialog, "selectcards"): cards = cdialog.selectcards if len(cards) != 3: return givecards = [] for card in cards: givecards.append(riskengine.currentplayer.cards[int(card)]) riskengine.turnincards(riskengine.currentplayer, givecards)
def showcards(): """Show a player's cards""" if riskengine.phase == "Pregame": return if riskengine.currentplayer and \ hasattr(riskengine.currentplayer, "connection"): return #even server shouldn't be able to see another client's cards cdialog = CardsDialog(root, "Cards:") if hasattr(cdialog, "selectcards"): cards = cdialog.selectcards if len(cards) != 3: return givecards = [] for card in cards: givecards.append(riskengine.currentplayer.cards[int(card)]) riskengine.turnincards(riskengine.currentplayer, givecards)
def server_receive_message(mess, sock): """Run when the server receives a message""" print >>riskengine.verbosefile, mess, "server received" parts = splitparms(mess) if parts[0] == "newplayer": riskgui.net_newplayer(parts[1]) riskengine.players[parts[1]].connection = sock for sck in sockets: if sck != sock: sendparts(sck, "newplayer", parts[1]) if parts[0] == "handle_selection": if hasattr(riskengine.currentplayer, "connection") and riskengine.currentplayer.connection == sock: riskengine.handleselection(riskengine.territories[parts[1]], int(parts[2])) if parts[0] == "start_fortifying": riskengine.startfortifying() if parts[0] == "next_turn": riskengine.nextturn() if parts[0] == "turnincards": if hasattr(riskengine.currentplayer, "connection") and riskengine.currentplayer.connection == sock: cd = [] for c in riskengine.currentplayer.cards: if c.territory in parts[1:]: cd.append(c) riskengine.turnincards(riskengine.currentplayer, cd) if parts[0] == "message": pla = sockettoplayer(sock) if pla: plname = pla.name else: plname = "Someone" riskgui.set_status(plname + " sent message: " + parts[1]) if parts[0] == "leaving": sockets.remove(sock) sock.close() pla = sockettoplayer(sock) if pla: plname = pla.name else: plname = "Someone" riskgui.set_status(plname + " has left")
def server_receive_message(mess, sock): """Run when the server receives a message""" print >>riskengine.verbosefile, mess, "server received" parts = splitparms(mess) if parts[0] == "newplayer": riskgui.net_newplayer(parts[1]) riskengine.players[parts[1]].connection = sock for sck in sockets: if sck != sock: sendparts(sck, "newplayer", parts[1]) if parts[0] == "handle_selection": if hasattr(riskengine.currentplayer, "connection") and riskengine.currentplayer.connection == sock: riskengine.handleselection(riskengine.territories[parts[1]], int(parts[2])) if parts[0] == "start_fortifying": riskengine.startfortifying() if parts[0] == "next_turn": riskengine.nextturn() if parts[0] == "turnincards": if hasattr(riskengine.currentplayer, "connection") and riskengine.currentplayer.connection == sock: cd = [] for c in riskengine.currentplayer.cards: if c.territory in parts[1:]: cd.append(c) riskengine.turnincards(riskengine.currentplayer, cd) if parts[0] == "message": pla = sockettoplayer(sock) if pla: plname = pla.name else: plname = "Someone" riskgui.set_status(plname + " sent message: " + parts[1]) if parts[0] == "leaving": sockets.remove(sock) sock.close() pla = sockettoplayer(sock) if pla: plname = pla.name else: plname = "Someone" riskgui.set_status(plname + " has left")