• 技术文章 >Python技术 >Python基础教程

    怎么用python开发游戏?

    宋雪维宋雪维2020-11-25 17:46:22原创2211

    下载.jpg

    相信大家都玩过扑克牌,这个游戏休闲娱乐是很火爆的游戏了,一副扑克牌可以玩出多种花样,那你知道扑克游戏网站是怎么发牌的吗?想起小编刚开始打算学习python的时候,有很大一部分是想自己开发一些游戏,今天小编就带大家以发牌游戏为例,用python开发一款游戏。

    游戏介绍:四名牌手打牌,电脑随机將52张牌(不合大、小王)发给四名牌手,并在屏幕上显示每位牌手的牌。

    代码:

    class Card():
      """ A playing card. """
      RANKS=["A","2","3","4","5","6","7","8","9","10","J","Q","K"] #牌面数字1-13
      SUITS=["梅","方","红","黑"]
    #梅为梅花,方为方钻,红为红心,黑为黑桃
     
      def __init__(self,rank,suit,face_up=True):
        self.rank=rank       #指的是牌面数字1-13
        self.suit=suit       #suit指的是花色
        self.is_face_up=face_up  #是否显示牌正面,True为正面,False为牌背面
     
      def __str__(self): #print()
        if self.is_face_up:
          rep=self.suit+self.rank #+" "+str(self.pic_order())
        else:
          rep="XX"
        return rep
     
      def flip(self):        #翻牌方法
        self.is_face_up=not self.is_face_up
     
      def pic_order(self):      #牌的顺序号
        if self.rank=="A":
          FaceNum=1
        elif self.rank=="J":
          FaceNum=11
        elif self.rank=="Q":
          FaceNum=12
        elif self.rank=="K":
          FaceNum=13
        else:
          FaceNum=int(self.rank)
        if self.suit=="梅":
          Suit=1
        elif self.suit=="方":
          Suit=2
        elif self.suit=="红":
          Suit=3
        else:
          Suit=4
        return (Suit-1)*13+FaceNum
    class Hand( ):
      """ A hand of playing cards. """
      def __init__(self):
        self.cards=[]
      def __str__(self):
        if self.cards:
          rep=""
          for card in self.cards:
            rep+=str(card)+"\t"
        else:
          rep="无牌"
        return rep
      def clear(self):
        self.cards=[]
      def add(self,card):
        self.cards.append(card)
      def give(self,card,other_hand):
        self.cards.remove(card)
        other_hand.add(card)
    class Poke(Hand):
      """ A deck of playing cards. """
      def populate(self):     #生成一副牌
        for suit in Card.SUITS:
          for rank in Card.RANKS:
            self.add(Card(rank,suit))
      def shuffle(self):      #洗牌
        import random
        random.shuffle(self.cards) #打乱牌的顺序
      def deal(self,hands,per_hand=13):
        for rounds in range(per_hand):
          for hand in hands:
     
            top_card=self.cards[0]
            self.cards.remove(top_card)
            hand.add(top_card)
    if __name__=="__main__":
      print("This is a module with classed for playing cards.")
      #四个玩家
      players=[Hand(),Hand(),Hand(),Hand()]
      poke1=Poke()
      poke1.populate()      #生成一副牌
      poke1.shuffle()       #洗牌
      poke1.deal(players,13)   #发给玩家每人13张
      #显示四位牌手的牌
      n=1
      for hand in players:
        print("牌手",n,end=":")
        print(hand)
        n=n+1
      input("\nPress the enter key to exit.")

    到了这一步,一款发牌游戏基本就算完成了,其实还是可以添加一点游戏背景音乐的,感兴趣的小伙伴们可以尝试下哦~更多python学习推荐:python学习网。





    专题推荐:python游戏
    上一篇:python返回函数和返回值的区别分析 下一篇:python中的format 函数是什么?如何使用?

    相关文章推荐

    • python游戏编程讲解之凯撒密码• python Helium库怎么实现Web自动化?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网