File indexing completed on 2024-04-21 04:01:55

0001 # -*- coding: utf-8 -*-
0002 
0003 """
0004  Copyright (C) 2008-2016 Wolfgang Rohdewald <wolfgang@rohdewald.de>
0005 
0006 SPDX-License-Identifier: GPL-2.0
0007 
0008 """
0009 
0010 class TileSource:
0011     """
0012     some constants
0013     """
0014 
0015     byChar = dict()
0016 
0017     def __str__(self):
0018         return self.char
0019 
0020     def __repr__(self):
0021         return 'TileSource.{}'.format(self.__class__.__name__)
0022 
0023     class SourceClass:
0024         """Defines defaults"""
0025         isDiscarded = False
0026 
0027     class LivingWallDiscard(SourceClass):
0028         """Last Tile was discarded"""
0029         char = 'd'
0030         isDiscarded = True
0031 
0032     class LivingWall(SourceClass):
0033         """Last tile comes from wall"""
0034         char = 'w'
0035 
0036     class East14th(SourceClass):
0037         """This is the 14th tile for East"""
0038         char = '1'
0039 
0040     class RobbedKong(SourceClass):
0041         """Last tile comes from robbing a kong"""
0042         char = 'k'
0043 
0044     class DeadWall(SourceClass):
0045         """Last tile comes from dead wall"""
0046         char = 'e'
0047 
0048     class LivingWallEnd(SourceClass):
0049         """Last tile comes from living wall and is the last living wall tile"""
0050         char = 'z'
0051 
0052     class LivingWallEndDiscard(SourceClass):
0053         """like LivingWallEnd but discarded"""
0054         char = 'Z'
0055         isDiscarded = True
0056 
0057     class Unknown(SourceClass):
0058         """Unknown source"""
0059         char = '.'
0060 
0061 TileSource.byChar['w'] = TileSource.LivingWall
0062 TileSource.byChar['d'] = TileSource.LivingWallDiscard
0063 TileSource.byChar['z'] = TileSource.LivingWallEnd
0064 TileSource.byChar['e'] = TileSource.DeadWall
0065 TileSource.byChar['Z'] = TileSource.LivingWallEndDiscard
0066 TileSource.byChar['1'] = TileSource.East14th
0067 TileSource.byChar['k'] = TileSource.RobbedKong
0068 TileSource.byChar['.'] = TileSource.Unknown