コード例 #1
0
 def askPlayerLoot(self, Seat):
     print('请选择你抢夺谁的物资:')
     i = 1
     for r in Seat:
         if r.name == self.name or r.dead == 1:
             continue
         print('{}. {}'.format(i, r.name))
         i += 1
     num = Else.inputnum(1, i - 1)
     # 确认要抢夺的对象
     i = 1
     for r in Seat:
         if r.name == self.name:
             continue
         if num == i:
             target = r
             break
         i += 1
     if len(target.hand) != 0 or len(target.equip) != 0:
         if self.name == '小孩':
             # 抢夺物资
             self.playerLoot(target)
         elif target.dead == 0:
             if target.ai == 0:
                 res = target.askPlayer()
             else:
                 res = target.askAI()
             if res == 0:
                 res = self.fight(target, Seat)
             if res == 1:
                 # 抢夺物资
                 self.playerLoot(target)
         return 1
     else:
         return 0
コード例 #2
0
 def askPlayerSeat(self, Seat):
     print('请选择你要和谁交换座位:')
     i = 1
     for r in Seat:
         if r.name == self.name:
             continue
         print('{}. {}'.format(i, r.name), end='')
         if r.dead == 1:
             print('(死亡)', end='')
         print()
         i += 1
     num = Else.inputnum(1, i - 1)
     # 确认要交换座位的对象
     i = 1
     for r in Seat:
         if r.name == self.name:
             continue
         if num == i:
             target = r
             break
         i += 1
     if target.dead == 1:
         self.changeSeat(target, Seat)
     elif target.dead == 0:
         if target.ai == 0:
             res = target.askPlayer()
         else:
             res = target.askAI()
         if res == 0:
             res = self.fight(target, Seat)
         if res == 1:
             self.changeSeat(target, Seat)
コード例 #3
0
 def playerChooseGoods(self, preGoods):
     if len(preGoods) == 0:
         print('已经没有物资了。')
         return
     print('请从以下选择一份你需要的物资:')
     i = 1
     for good in preGoods:
         print('{}.'.format(i), end='')
         good.showInfo()
         i += 1
     number = Else.inputnum(1, i)
     self.hand.append(preGoods[number - 1])
     preGoods.pop(number - 1)
コード例 #4
0
 def askPlayerFight(self, atk, defc):
     while self.dead == 0:
         print('进攻方 {} ,防守方 {} ,是否参与战斗?(1.进攻方,2.防守方,3.不参与战斗)'.format(
             atk.name, defc.name))
         flag = Else.inputnum(1, 3)
         if flag == 1:
             return 1
         elif flag == 2:
             return 2
         elif flag == 3:
             return 3
         else:
             print('输入有误,请重新输入。')
コード例 #5
0
    def playerSail(self, preSail, Mew, Seat):
        i = 1
        print('请从以下航海决策中选择一个:')
        for sail in preSail:
            print('{}.'.format(i), end='')
            sail.showInfo()
            i += 1
        num = Else.inputnum(1, i - 1)
        print('{} 选择的航海决策是:'.format(self.name))
        time.sleep(1)
        Mew = preSail[num - 1].use(Mew, Seat)
        preSail.pop(num - 1)

        return Mew
コード例 #6
0
 def playerSpecial(self, SailStack, Mew):
     flag = 0
     pre = []
     for g in self.hand:
         if g.special == 1:
             flag = 1
             pre.append(g)
     for g in self.equip:
         if g.special == 1 and g.name != '阳伞':
             flag = 1
             pre.append(g)
     if flag == 0:
         return 0, Mew
     i = 1
     print('选择将要使用的物品:')
     for g in pre:
         print('{}. {},{}'.format(i, g.name, g.describe))
         i += 1
     num = Else.inputnum(1, i)
     Mew = pre[num - 1].use(self, SailStack, Mew)
     return 1, Mew
コード例 #7
0
 def playerBoat(self, preSail, SailStack):
     self.boathurt = 1
     count = 2
     for g in self.equip:
         if g.id == 5:
             count += 1
             break
     confirm = 1
     while confirm:
         print('请从以下航海决策中选择一个加入最终选择:')
         for i in range(count):
             print('{}.'.format(i + 1), end='')
             SailStack[i].showInfo()
         num = Else.inputnum(1, count)
         confirm = Else.confirm()
     # 从决策中选择一个加入最终决策
     preSail.append(SailStack[num - 1])
     SailStack.pop(num - 1)
     # 将剩余决策防止决策底部
     for i in range(count - 1):
         SailStack.append(SailStack[0])
         SailStack.pop(0)
コード例 #8
0
 def playerChooseAct(self, preSail, SailStack, Seat, Mew):
     num = 0
     self.act = 1
     while num < 1 or num > 5:
         if self.dead == 1:
             print('-------------------------------')
             print('您已死亡,即将跳过行动阶段')
             time.sleep(0.5)
             break
         confirm = 1
         while confirm:
             print('-------------------------------')
             print(
                 '请从以下行动中选择一个:\n1.划船\n2.换座位\n3.抢夺物资\n4.特殊行动\n5.什么都不做\n6.查看我的装备和物资'
             )
             num = Else.inputnum(1, 6)
             confirm = Else.confirm()
             if confirm:
                 continue
             if num == 1:
                 print('我 选择了 划船')
                 time.sleep(0.5)
                 self.playerBoat(preSail, SailStack)
                 break
             elif num == 2:
                 print('我 选择了 换座位')
                 time.sleep(0.5)
                 self.askPlayerSeat(Seat)
                 break
             elif num == 3:
                 print('我 选择了 抢夺物资')
                 time.sleep(0.5)
                 f = self.askPlayerLoot(Seat)
                 if f == 0:
                     print('该玩家没有可以抢夺的物资')
                     confirm = 1
                 elif f == 1:
                     break
             elif num == 4:
                 print('我 选择了 特殊行动')
                 time.sleep(0.5)
                 f, Mew = self.playerSpecial(SailStack, Mew)
                 if f == 0:
                     print('没有可以进行特殊行动的物资')
                     confirm = 1
                 elif f == 1:
                     break
             elif num == 5:
                 print('我 选择了 什么都不做')
                 time.sleep(0.5)
                 break
             elif num == 6:
                 print('物资:', end='')
                 if len(self.hand) == 0:
                     print('-', end='')
                 else:
                     for g in self.hand:
                         print(g.name, end=' ')
                 print()
                 print('装备:', end='')
                 if len(self.equip) == 0:
                     print('-', end='')
                 else:
                     for g in self.equip:
                         print(g.name, end=' ')
                 print()
                 time.sleep(0.5)
                 confirm = 1
     return Mew
コード例 #9
0
 def playerLoot(self, target):
     #
     i = 1
     if len(target.equip) != 0:
         print('对方有以下装备:')
         for g in target.equip:
             print('{}. {},{}'.format(i, g.name, g.describe))
             i += 1
     if len(target.hand) == 0:
         print('从对方装备中掠夺物资')
         print('选择哪件装备?(输入装备序号)')
         n = Else.inputnum(1, i - 1)
         j = 1
         for g in target.equip:
             if n == j:
                 self.hand.append(g)
                 target.equip.pop(j - 1)
                 print('{} 抢到了 {} 的 {}'.format(self.name, target.name,
                                               g.name))
                 if g.name == '阳伞':
                     g.open = 0
             j += 1
     elif len(target.equip) == 0:
         print('从对方手中随机掠夺物资')
         j = len(target.hand)
         k = random.randint(1, j)
         l = 1
         for g in target.hand:
             if l == k:
                 self.hand.append(g)
                 target.hand.pop(l - 1)
                 print('{} 抢到了 {} 的 {}'.format(self.name, target.name,
                                               g.name))
                 if g.name == '阳伞':
                     g.open = 0
             l += 1
     else:
         print('要从哪里掠夺物资?(1.装备,2.手中随机抢夺)')
         num = Else.inputnum(1, 2)
         if num == 1:
             print('选择哪件装备?(输入装备序号)')
             n = Else.inputnum(1, i - 1)
             j = 1
             for g in target.equip:
                 if n == j:
                     self.hand.append(g)
                     target.equip.pop(j - 1)
                     print('{} 抢到了 {} 的 {}'.format(self.name, target.name,
                                                   g.name))
                     if g.name == '阳伞':
                         g.open = 0
                 j += 1
         elif num == 2:
             j = len(target.hand)
             k = random.randint(1, j)
             l = 1
             for g in target.hand:
                 if l == k:
                     self.hand.append(g)
                     target.hand.pop(l - 1)
                     print('{} 抢到了 {} 的 {}'.format(self.name, target.name,
                                                   g.name))
                     if g.name == '阳伞':
                         g.open = 0
                 l += 1
コード例 #10
0
playernum = Else.playernum()
print('当前游戏人数为 {} 人'.format(playernum))

# 确认标识
confirm = 1
# 选择角色
while confirm:
    print('=======请选择你的角色========')
    i = 1
    for role in Roles:
        # Else.showNameSkill('{}.'.format(i), role)
        print('{}.'.format(i), end='')
        role.showInfo()
        i += 1
    print('==========================')
    number = Else.inputnum(1, i)

    for role in Roles:
        if (role.seat == number):
            print('已选择 {} '.format(role.name))
            confirm = Else.confirm()
            break
# 获取身份
Me = role
# 角色中去掉玩家获取身份,防止出现身份重复的情况
Roles.pop(number - 1)
# 打乱角色集合
random.shuffle(Roles)

# 游戏AI获取身份
for i in range(playernum - 1):