annotate frontends/src/quick_frontend/quick_card_game.py @ 1197:69ffe61240eb

wix: Avoid setting a bad icon From 6fb18309a1d971235c0c3d568704fd91809d2d6e Mon Sep 17 00:00:00 2001 The code tries to load an icon from 'icons/crystal/32/tray_icon.xpm' (relative to self.media_dir), which is part of sat_media, released independently by upstream and not yet part of Debian. It then tries to set this invalid icon. With wxPython 2.8 these issues get quietly ignored, but wxPython 3.0 reports them. As a simple workaround I've just added a check that the icon is valid before setting it, so now you get a messagebox about the icon file not being found and then the app starts. Obviously it would be better to package sat_media so that the icon is available on the system.
author Olly Betts <olly@survex.com>
date Tue, 09 Sep 2014 18:51:35 -0400
parents 75025461141f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/python
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
3
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
4 # helper class for making a SAT frontend
811
1fe00f0c9a91 dates update
Goffi <goffi@goffi.org>
parents: 680
diff changeset
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Jérôme Poisson (goffi@goffi.org)
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
6
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
7 # This program is free software: you can redistribute it and/or modify
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
10 # (at your option) any later version.
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
11
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
12 # This program is distributed in the hope that it will be useful,
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
15 # GNU Affero General Public License for more details.
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
16
609
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
84a6e83157c2 fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents: 588
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
19
1009
d1084f7e56a5 quick_frontend: use of new logging system
Goffi <goffi@goffi.org>
parents: 811
diff changeset
20 from sat.core.log import getLogger
d1084f7e56a5 quick_frontend: use of new logging system
Goffi <goffi@goffi.org>
parents: 811
diff changeset
21 log = getLogger(__name__)
1139
75025461141f move sat.tools.jid to sat_frontends.tools.jid
souliane <souliane@mailoo.org>
parents: 1009
diff changeset
22 from sat_frontends.tools.jid import JID
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
23
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
24
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
25
588
beaf6bec2fcd Remove every old-style class.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 587
diff changeset
26 class QuickCardGame(object):
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
27
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
28 def __init__(self, parent, referee, players, player_nick):
329
be9f682c53a5 QuickApp: autoplay deactivated in Tarot game
Goffi <goffi@goffi.org>
parents: 328
diff changeset
29 self._autoplay = None #XXX: use 0 to activate fake play, None else
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
30 self.parent = parent
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
31 self.referee = referee
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
32 self.players = players
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
33 self.played = {}
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
34 for player in players:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
35 self.played[player] = None
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
36 self.player_nick = player_nick
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
37 self.bottom_nick = unicode(self.player_nick)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
38 idx = self.players.index(self.player_nick)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
39 idx = (idx + 1) % len(self.players)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
40 self.right_nick = unicode(self.players[idx])
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
41 idx = (idx + 1) % len(self.players)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
42 self.top_nick = unicode(self.players[idx])
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
43 idx = (idx + 1) % len(self.players)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
44 self.left_nick = unicode(self.players[idx])
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
45 self.bottom_nick = unicode(player_nick)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
46 self.selected = [] #Card choosed by the player (e.g. during ecart)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
47 self.hand_size = 13 #number of cards in a hand
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
48 self.hand = []
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
49 self.to_show = []
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
50 self.state = None
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
51
328
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
52 def resetRound(self):
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
53 """Reset the game's variables to be reatty to start the next round"""
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
54 del self.selected[:]
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
55 del self.hand[:]
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
56 del self.to_show[:]
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
57 self.state = None
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
58 for pl in self.played:
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
59 self.played[pl] = None
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
60
148
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
61 def getPlayerLocation(self, nick):
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
62 """return player location (top,bottom,left or right)"""
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
63 for location in ['top','left','bottom','right']:
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
64 if getattr(self,'%s_nick' % location) == nick:
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
65 return location
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
66 assert(False)
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
67
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
68 def loadCards(self):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
69 """Load all the cards in memory
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
70 @param dir: directory where the PNG files are"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
71 self.cards={}
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
72 self.deck=[]
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
73 self.cards["atout"]={} #As Tarot is a french game, it's more handy & logical to keep french names
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
74 self.cards["pique"]={} #spade
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
75 self.cards["coeur"]={} #heart
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
76 self.cards["carreau"]={} #diamond
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
77 self.cards["trefle"]={} #club
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
78
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
79 def newGame(self, hand):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
80 """Start a new game, with given hand"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
81 assert (len(self.hand) == 0)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
82 for suit, value in hand:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
83 self.hand.append(self.cards[suit, value])
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
84 self.hand.sort()
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
85 self.state = "init"
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
86
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
87 def contratSelected(self, contrat):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
88 """Called when the contrat has been choosed
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
89 @param data: form result"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
90 self.parent.host.bridge.tarotGameContratChoosed(self.player_nick, self.referee, contrat or 'Passe', self.parent.host.profile)
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
91
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
92 def chooseContrat(self, xml_data):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
93 """Called when the player as to select his contrat
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
94 @param xml_data: SàT xml representation of the form"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
95 raise NotImplementedError
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
96
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
97 def showCards(self, game_stage, cards, data):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
98 """Display cards in the middle of the game (to show for e.g. chien ou poignée)"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
99 self.to_show = []
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
100 for suit, value in cards:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
101 self.to_show.append(self.cards[suit, value])
328
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
102 if game_stage == "chien" and data['attaquant'] == self.player_nick:
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
103 self.state = "wait_for_ecart"
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
104 else:
809733b8d9be Tarot game:
Goffi <goffi@goffi.org>
parents: 228
diff changeset
105 self.state = "chien"
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
106
148
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
107 def myTurn(self):
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
108 """Called when we have to play :)"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
109 if self.state == "chien":
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
110 self.to_show = []
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
111 self.state = "play"
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
112 self.__fakePlay()
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
113
148
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
114 def __fakePlay(self):
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
115 """Convenience method for stupid autoplay
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
116 /!\ don't forgot to comment any interactive dialog for invalid card"""
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
117 if self._autoplay == None:
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
118 return
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
119 if self._autoplay >= len(self.hand):
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
120 self._autoplay = 0
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
121 card = self.hand[self._autoplay]
680
8281587eb528 primitivus, wix: fixed bridge methods calls for plugins radiocol and card game
souliane <souliane@mailoo.org>
parents: 609
diff changeset
122 self.parent.host.bridge.tarotGamePlayCards(self.player_nick, self.referee, [(card.suit, card.value)], self.parent.host.profile)
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
123 del self.hand[self._autoplay]
148
1d74c59a36a9 Quick Frontend: quick card game: added convenience method getPlayerLocation & __fakePlay
Goffi <goffi@goffi.org>
parents: 144
diff changeset
124 self.state = "wait"
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
125 self._autoplay+=1
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
126
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
127 def showScores(self, xml_data, winners, loosers):
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
128 """Called at the end of a game
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
129 @param xml_data: SàT xml representation of the scores
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
130 @param winners: list of winners' nicks
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
131 @param loosers: list of loosers' nicks"""
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
132 raise NotImplementedError
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
133
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
134 def cardsPlayed(self, player, cards):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
135 """A card has been played by player"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
136 if self.to_show:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
137 self.to_show = []
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
138 pl_cards = []
185
fd2db62ea5eb minor deletions
Goffi <goffi@goffi.org>
parents: 162
diff changeset
139 if self.played[player] != None: #FIXME
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
140 for pl in self.played:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
141 self.played[pl] = None
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
142 for suit, value in cards:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
143 pl_cards.append(self.cards[suit, value])
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
144 self.played[player] = pl_cards[0]
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
145
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
146 def invalidCards(self, phase, played_cards, invalid_cards):
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
147 """Invalid cards have been played
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
148 @param phase: phase of the game
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
149 @param played_cards: all the cards played
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
150 @param invalid_cards: cards which are invalid"""
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
151
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
152 if phase == "play":
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
153 self.state = "play"
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
154 elif phase == "ecart":
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
155 self.state = "ecart"
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
156 else:
1009
d1084f7e56a5 quick_frontend: use of new logging system
Goffi <goffi@goffi.org>
parents: 811
diff changeset
157 log.error ('INTERNAL ERROR: unmanaged game phase')
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
158
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
159 for suit, value in played_cards:
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
160 self.hand.append(self.cards[suit, value])
587
952322b1d490 Remove trailing whitespaces.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 572
diff changeset
161
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
162 self.hand.sort()
162
ae50b53ff868 misc Tarot fixes
Goffi <goffi@goffi.org>
parents: 158
diff changeset
163 self.__fakePlay()
144
80661755ea8d Primitivus: Tarot card game implementation
Goffi <goffi@goffi.org>
parents:
diff changeset
164