[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