[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kajongg/sid] src: Debug.delayChow
From:       Wolfgang Rohdewald <wolfgang () rohdewald ! de>
Date:       2013-10-31 21:21:05
Message-ID: E1Vbzft-0002lj-JO () scm ! kde ! org
[Download RAW message or body]

Git commit d2e04b2de87ec3fe3805fdbe78c807fa08262254 by Wolfgang Rohdewald.
Committed on 29/10/2013 at 14:21.
Pushed by wrohdewald into branch 'sid'.

Debug.delayChow

M  +16   -9    src/client.py
M  +1    -0    src/common.py
M  +5    -5    src/player.py

http://commits.kde.org/kajongg/d2e04b2de87ec3fe3805fdbe78c807fa08262254

diff --git a/src/client.py b/src/client.py
index be16c83..73406e8 100644
--- a/src/client.py
+++ b/src/client.py
@@ -319,16 +319,21 @@ class Client(object, pb.Referenceable):
             elif move.message == Message.NoClaim and move.notifying:
                 noClaimCount += 1
                 if noClaimCount == 2:
-                    # self.game.debug('everybody said "I am not interested", so %s \
                claims chow now' %
-                    #     self.game.myself.name)
+                    if Debug.delayChow:
+                        self.game.debug('everybody said "I am not interested", so {} \
claims chow now for {}'.format( +                            self.game.myself.name, \
self.game.lastDiscard.name()))  return result
             elif move.message in (Message.Pung, Message.Kong) and move.notifying:
-                # self.game.debug('somebody said Pung or Kong, so %s suppresses \
Chow' % self.game.myself.name) +                if Debug.delayChow:
+                    self.game.debug('{} said {} so {} suppresses Chow for \
{}'.format( +                        move.player, move.message, self.game.myself, \
self.game.lastDiscard.name()).replace('  ', ' '))  return Message.NoClaim
         if delay < self.game.ruleset.claimTimeout * 0.95:
             # one of those slow humans is still thinking
             return deferLater(reactor, delayStep, self.__delayAnswer, result, delay, \
                delayStep)
-        # self.game.debug('%s must chow now because timeout is over' % \
self.game.myself.name) +        if Debug.delayChow:
+            self.game.debug('{} must chow now for {} because timeout is \
over'.format( +                self.game.myself.name, self.game.lastDiscard.name()))
         return result
 
     def ask(self, move, answers):
@@ -340,8 +345,9 @@ class Client(object, pb.Referenceable):
         myself.computeSayable(move, answers)
         result = myself.intelligence.selectAnswer(answers)
         if result[0] == Message.Chow:
-            # self.game.debug('%s waits to see if somebody says Pung or Kong before \
                saying chow' %
-            #     self.game.myself.name)
+            if Debug.delayChow:
+                self.game.debug('{} waits to see if somebody says Pung or Kong \
before saying chow for {}'.format( +                    self.game.myself.name, \
                self.game.lastDiscard.name()))
             return deferLater(reactor, delayStep, self.__delayAnswer, result, delay, \
delayStep)  return succeed(result)
 
@@ -402,7 +408,7 @@ class Client(object, pb.Referenceable):
 # happens very early for easier reproduction. So set number of rounds to 1 in the \
ruleset before doing this.  # This example looks for a situation where the single \
human player may call Chow but one of the  # robot players calls Pung. See \
                https://bugs.kde.org/show_bug.cgi?id=318981
-#            if self.isHumanClient() and game.nextPlayer() == game.myself:
+#            if game.nextPlayer() == game.myself:
 #                # I am next
 #                if message == Message.Pung and move.notifying:
 #                    # somebody claimed a pung
@@ -410,9 +416,10 @@ class Client(object, pb.Referenceable):
 #                        # it was not me
 #                        if game.handctr == 0 and len(game.moves) < 30:
 #                            # early on in the game
-#                            if self.__maySayChow():
+#                            game.myself.computeSayable(move, [Message.Chow])
+#                            if game.myself.sayable[Message.Chow]:
 #                                # I may say Chow
-#                                print('FOUND EXAMPLE IN:', \
game.handId(withMoveCount=True)) +#                                logDebug('FOUND \
EXAMPLE FOR %s IN %s' % (game.myself, game.handId(withMoveCount=True)))  
         if message == Message.Discard:
             # do not block here, we want to get the clientDialog
diff --git a/src/common.py b/src/common.py
index 45b85c2..4534788 100644
--- a/src/common.py
+++ b/src/common.py
@@ -77,6 +77,7 @@ class Debug(object):
     events = ''
     table = False
     gc = False
+    delayChow = False
 
     def __init__(self):
         raise Exception('Debug is not meant to be instantiated')
diff --git a/src/player.py b/src/player.py
index 3deab5d..78037e2 100644
--- a/src/player.py
+++ b/src/player.py
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA \
02110-1301, USA.  import sys, weakref
 from collections import defaultdict
 
-from util import logException, logWarning, m18n, m18nc, m18nE
+from util import logException, logWarning, m18n, m18nc, m18nE, logDebug
 from common import WINDS, Internal, IntDict, Debug
 from query import Transaction, Query
 from tile import Tile, elements
@@ -486,7 +486,7 @@ class PlayingPlayer(Player):
         self._hand = None
         self.syncHandBoard()
 
-    def possibleChows(self):
+    def __possibleChows(self):
         """returns a unique list of lists with possible claimable chow \
combinations"""  if self.game.lastDiscard is None:
             return []
@@ -498,7 +498,7 @@ class PlayingPlayer(Player):
         within.append(tile)
         return hasChows(tile, within)
 
-    def possibleKongs(self):
+    def __possibleKongs(self):
         """returns a unique list of lists with possible kong combinations"""
         kongs = []
         if self == self.game.activePlayer:
@@ -522,7 +522,7 @@ class PlayingPlayer(Player):
         """returns answer arguments for the server if calling chow is possible.
         returns the meld to be completed"""
         if self == self.game.nextPlayer():
-            return self.possibleChows()
+            return self.__possibleChows()
 
     def __maySayPung(self):
         """returns answer arguments for the server if calling pung is possible.
@@ -536,7 +536,7 @@ class PlayingPlayer(Player):
     def __maySayKong(self):
         """returns answer arguments for the server if calling or declaring kong is \
possible.  returns the meld to be completed or to be declared"""
-        return self.possibleKongs()
+        return self.__possibleKongs()
 
     def __maySayMahjongg(self, move):
         """returns answer arguments for the server if calling or declaring Mah Jongg \
is possible"""


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic