Ejemplo n.º 1
0
    def jiesuan(self, _pai):
        # TODO: dedian like 8000,12000 etc are readable.
        self.user.zimo = 1
        self.fu, self.yi, self.fan = self.user.rong(_pai, self.quan, self.oya)
        if len(self.yama) == MIN_TILES_IN_YAMA:
            if self.user.zimo == 1:
                if u'岭上开花' not in self.fan[0]:
                    self.yi[0] += 1
                    self.fan[0] += [u'海底捞月']
            else:
                self.yi[0] += 1
                self.fan[0] += [u'河底捞鱼']
        if self.yi != [0, 0]:
            if self.yi[1] != 0:
                if self.user.position == self.oya:
                    self.dedian = 48000 * self.yi[1]
                else:
                    self.dedian = 32000 * self.yi[1]
            else:
                tmp = self.user.hand.in_hand + [self.user.rongpai]
                for gang in self.user.agang:
                    tmp = tmp + gang
                for gang in self.user.mgang:
                    tmp = tmp + gang

                if self.xun - self.user.riichi == 1 and self.user.riichi > 0:
                    self.yi[0] += 1
                    self.fan[0] += [u'一發']
                tmpk = 0
                numdora = 0
                for dora in self.dora:
                    numdora += tmp.count(Util.nextpai(self.yama[dora]))
                    self.ura.append(dora - 1)
                    tmpk += 2
                self.yi[0] += numdora
                if numdora != 0: self.fan[0] += ['Dora ' + str(numdora)]
                if self.user.riichi > 0:
                    numura = 0
                    for ura in self.ura:
                        numura += tmp.count(Util.nextpai(self.yama[ura]))
                    self.yi[0] += numura
                    if numura != 0: self.fan[0] += ['Ura ' + str(numura)]
                if self.fu[0] != 25:
                    self.fu[0] = int(math.ceil(self.fu[0] / 10.) * 10)
                self.dedian = 0
                self.jbd = self.fu[0] * 4 * pow(2, self.yi[0])
                if self.yi[0] == 0:
                    self.dedian = -8000
                elif self.jbd < 2000:
                    if self.user.position == self.oya:
                        self.dedian = math.ceil(self.jbd * 6 / 100) * 100
                    else:
                        self.dedian = math.ceil(self.jbd * 4 / 100) * 100
                else:
                    if self.yi[0] <= 5:
                        self.dedian = 8000
                    elif self.yi[0] <= 7:
                        self.dedian = 12000
                    elif self.yi[0] <= 10:
                        self.dedian = 16000
                    elif self.yi[0] <= 12:
                        self.dedian = 24000
                    elif self.yi[0] >= 13:
                        self.dedian = 32000
                    if self.user.position == self.oya: self.dedian = self.dedian * 1.5
            self.user.money += int(self.dedian) + self.lizhibang * 1000
            self.lizhibang = 0