精华内容
下载资源
问答
  • python能开发游戏吗

    千次阅读 2020-06-18 18:38:24
    python能开发游戏吗更多python视频教程请到菜鸟教程https://www.piaodoo.com/ python可以写游戏,但不适合。下面我们来分析一下具体原因。 用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,...

    python能开发游戏吗

    更多python视频教程请到菜鸟教程https://www.piaodoo.com/

    python可以写游戏,但不适合。下面我们来分析一下具体原因。

    用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?

    比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。
    一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。

    Python理论上,不仅不适合做游戏,而是只要大型的程序,都不适合。只适合写比较小型的东西,比如一个计算器,一个爬虫等。

    主要有2个方面,一是速度慢,二是语法缺陷。

    也许你一定觉得,Python的语法又干净,又优雅,怎么还有缺陷?但仔细想想,为什么别的语言没有这么干净?没有这么优雅?明明可以直接a=123 干嘛非要写成 int a=123;呢?难道是其他语言的设计者,都有强迫症吗?道理很简单,有得必有失。
    如果数据类型,只有字符串和数字,省略掉声明变量的过程,当然不是问题。但只要逻辑一复杂,情况就完全不同了。。。游戏中,你用C#或C++写起来,大概会是这样。

    技能 a=xxxx;
    武器 b=xxxx;
    角色 c=xxxx;
    药水 d=xxxx;
    音乐 e=xxxx;

    而Python呢?大概是这个样子

    a=xxxx
    b=xxxx
    c=xxxx
    d=xxxx

    如果你的代码很少,显然是Python比较方便。但如果你创建几百个对象,代码超过1万行。。。写到几千行的时候,遇到一个叫x的对象,你还知道它到底是个啥吗?是一把武器?还是一瓶药水?还是一张图片?一段音频?一盏灯光?一座房子?
    不要以为1万行代码很多。。。。1万行连个《斗地主》都写不完。。

    用Python写大程序的感觉就是,当你第一天,只写了50行代码,创建了3个类,5个对象。你会觉得太爽了,这绝对是世界上最好的语言。。。第二天,你又创建了2个类,5个对象的时候,就觉得有点晕晕的了。第三天,又创建了2个类之后,你会发现自己必须非常仔细的看一遍注释,否则就不会写了。第四天,你一整天都在看注释。。。。

    这就是动态语言的劣根性。一开始代码量少,看不出任何缺点,各种省事,各种爽。代码量越多,脑子越乱。一般500行以上,效率就会被JAVA,C#之类的语言反超。。1000行,就必须要各种加注释才能看懂了。。2000行,注释就比代码多了。。5000行,注释已经完全不管用了,自己根本看不懂自己的代码,需要准备弃坑了。

    总结一下,python不是不能开发游戏,只是并不合适。每种语言都有各自的优缺点,开发游戏这一块或许就是python的缺点吧。

    python游戏实例补充:

    发牌游戏

    1. 游戏介绍

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

    2. 面向对象程序设计

    3. 程序设计步骤

    设计类,发牌程序设计出三个类: Card类、Hand类和Poke类。

    Card类:Card类代表一张牌,其中,FaceNum字段指的是牌面数字1~13,Suit字段指的是花色,”梅”为梅花,”方”为方块,”红”为红桃,”黑”为黑桃。

    Hand类:Hand类代表手牌(一个玩家手里拿的牌),可以认为是一位牌手手里的牌,其中,cards列表变量存储牌手手中的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手等操作。

    Poke类:Poke类代表一副牌,我们可以将一副牌看作是有52张牌的牌手,所以继承Hand类。由于其中cards列表变量要存储52张牌,而且要进行发牌、洗牌操作,所以增加如下的方法。

    主程序:主程序比较简单,因为有四个牌手,所以生成players列表存储初始化的四位牌手。生成一副牌的对象实例poke1,调用populate()方法生成有52张牌的一副牌,调用huffle()方法洗牌打乱顺序,调用deal(players,13)方法分别给每位玩家发13张牌,最后示四位牌手所有的牌。

    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能写游戏吗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多

    茂名论坛https://www.hnthzk.com/

    化州橘红http://www.sfkyty.com/

    茂名论坛http://www.nrso.net/

    源码搜藏网http://www.cntkd.net/

    展开全文
  • python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子造汽车吗? 谁也没法说不吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?比较大型的,使用Python...

    python可以写游戏,但不适合。下面我们来分析一下具体原因。

    用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?

    比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。

    一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。

    Python理论上,不仅不适合做游戏,而是只要大型的程序,都不适合。只适合写比较小型的东西,比如一个计算器,一个爬虫等。

    主要有2个方面,一是速度慢,二是语法缺陷。

    也许你一定觉得,Python的语法又干净,又优雅,怎么还有缺陷?但仔细想想,为什么别的语言没有这么干净?没有这么优雅?明明可以直接a=123 干嘛非要写成 int a=123;呢?难道是其他语言的设计者,都有强迫症吗?道理很简单,有得必有失。

    如果数据类型,只有字符串和数字,省略掉声明变量的过程,当然不是问题。但只要逻辑一复杂,情况就完全不同了。。。游戏中,你用C#或C++写起来,大概会是这样。

    技能 a=xxxx;

    武器 b=xxxx;

    角色 c=xxxx;

    药水 d=xxxx;

    音乐 e=xxxx;

    而Python呢?大概是这个样子

    a=xxxx

    b=xxxx

    c=xxxx

    d=xxxx

    如果你的代码很少,显然是Python比较方便。但如果你创建几百个对象,代码超过1万行。。。写到几千行的时候,遇到一个叫x的对象,你还知道它到底是个啥吗?是一把武器?还是一瓶药水?还是一张图片?一段音频?一盏灯光?一座房子?

    不要以为1万行代码很多。。。。1万行连个《斗地主》都写不完。。

    用Python写大程序的感觉就是,当你第一天,只写了50行代码,创建了3个类,5个对象。你会觉得太爽了,这绝对是世界上最好的语言。。。第二天,你又创建了2个类,5个对象的时候,就觉得有点晕晕的了。第三天,又创建了2个类之后,你会发现自己必须非常仔细的看一遍注释,否则就不会写了。第四天,你一整天都在看注释。。。。

    这就是动态语言的劣根性。一开始代码量少,看不出任何缺点,各种省事,各种爽。代码量越多,脑子越乱。一般500行以上,效率就会被JAVA,C#之类的语言反超。。1000行,就必须要各种加注释才能看懂了。。2000行,注释就比代码多了。。5000行,注释已经完全不管用了,自己根本看不懂自己的代码,需要准备弃坑了。

    总结一下,python不是不能开发游戏,只是并不合适。每种语言都有各自的优缺点,开发游戏这一块或许就是python的缺点吧。

    python游戏实例补充:

    发牌游戏

    1. 游戏介绍

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

    2. 面向对象程序设计

    3. 程序设计步骤

    设计类,发牌程序设计出三个类: Card类、Hand类和Poke类。

    Card类:Card类代表一张牌,其中,FaceNum字段指的是牌面数字1~13,Suit字段指的是花色,”梅”为梅花,”方”为方块,”红”为红桃,”黑”为黑桃。

    Hand类:Hand类代表手牌(一个玩家手里拿的牌),可以认为是一位牌手手里的牌,其中,cards列表变量存储牌手手中的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手等操作。

    Poke类:Poke类代表一副牌,我们可以将一副牌看作是有52张牌的牌手,所以继承Hand类。由于其中cards列表变量要存储52张牌,而且要进行发牌、洗牌操作,所以增加如下的方法。

    主程序:主程序比较简单,因为有四个牌手,所以生成players列表存储初始化的四位牌手。生成一副牌的对象实例poke1,调用populate()方法生成有52张牌的一副牌,调用huffle()方法洗牌打乱顺序,调用deal(players,13)方法分别给每位玩家发13张牌,最后示四位牌手所有的牌。

    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)+" "

    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(" Press the enter key to exit.")

    到此这篇关于python能开发游戏吗的文章就介绍到这了,更多相关python能写游戏吗内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    本文标题: python能开发游戏吗

    本文地址: http://www.cppcns.com/jiaoben/python/318735.html

    展开全文
  • python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子造汽车吗? 谁也没法说不吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?比较大型的,使用Python...

    python可以写游戏,但不适合。下面我们来分析一下具体原因。

    用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?

    比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。

    一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。

    Python理论上,不仅不适合做游戏,而是只要大型的程序,都不适合。只适合写比较小型的东西,比如一个计算器,一个爬虫等。

    主要有2个方面,一是速度慢,二是语法缺陷。

    也许你一定觉得,Python的语法又干净,又优雅,怎么还有缺陷?但仔细想想,为什么别的语言没有这么干净?没有这么优雅?明明可以直接a=123 干嘛非要写成 int a=123;呢?难道是其他语言的设计者,都有强迫症吗?道理很简单,有得必有失。

    如果数据类型,只有字符串和数字,省略掉声明变量的过程,当然不是问题。但只要逻辑一复杂,情况就完全不同了。。。游戏中,你用C#或C++写起来,大概会是这样。

    技能 a=xxxx;

    武器 b=xxxx;

    角色 c=xxxx;

    药水 d=xxxx;

    音乐 e=xxxx;

    而Python呢?大概是这个样子

    a=xxxx

    b=xxxx

    c=xxxx

    d=xxxx

    如果你的代码很少,显然是Python比较方便。但如果你创建几百个对象,代码超过1万行。。。写到几千行的时候,遇到一个叫x的对象,你还知道它到底是个啥吗?是一把武器?还是一瓶药水?还是一张图片?一段音频?一盏灯光?一座房子?

    不要以为1万行代码很多。。。。1万行连个《斗地主》都写不完。。

    用Python写大程序的感觉就是,当你第一天,只写了50行代码,创建了3个类,5个对象。你会觉得太爽了,这绝对是世界上最好的语言。。。第二天,你又创建了2个类,5个对象的时候,就觉得有点晕晕的了。第三天,又创建了2个类之后,你会发现自己必须非常仔细的看一遍注释,否则就不会写了。第四天,你一整天都在看注释。。。。

    这就是动态语言的劣根性。一开始代码量少,看不出任何缺点,各种省事,各种爽。代码量越多,脑子越乱。一般500行以上,效率就会被JAVA,C#之类的语言反超。。1000行,就必须要各种加注释才能看懂了。。2000行,注释就比代码多了。。5000行,注释已经完全不管用了,自己根本看不懂自己的代码,需要准备弃坑了。

    总结一下,python不是不能开发游戏,只是并不合适。每种语言都有各自的优缺点,开发游戏这一块或许就是python的缺点吧。

    python游戏实例补充:

    发牌游戏

    1. 游戏介绍

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

    2. 面向对象程序设计

    3. 程序设计步骤

    设计类,发牌程序设计出三个类: Card类、Hand类和Poke类。

    Card类:Card类代表一张牌,其中,FaceNum字段指的是牌面数字1~13,Suit字段指的是花色,”梅”为梅花,”方”为方块,”红”为红桃,”黑”为黑桃。

    Hand类:Hand类代表手牌(一个玩家手里拿的牌),可以认为是一位牌手手里的牌,其中,cards列表变量存储牌手手中的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手等操作。

    Poke类:Poke类代表一副牌,我们可以将一副牌看作是有52张牌的牌手,所以继承Hand类。由于其中cards列表变量要存储52张牌,而且要进行发牌、洗牌操作,所以增加如下的方法。

    主程序:主程序比较简单,因为有四个牌手,所以生成players列表存储初始化的四位牌手。生成一副牌的对象实例poke1,调用populate()方法生成有52张牌的一副牌,调用huffle()方法洗牌打乱顺序,调用deal(players,13)方法分别给每位玩家发13张牌,最后示四位牌手所有的牌。

    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)+" "

    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(" Press the enter key to exit.")

    到此这篇关于python能开发游戏吗的文章就介绍到这了,更多相关python能写游戏吗内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    本文标题: python能开发游戏吗

    本文地址: http://www.cppcns.com/jiaoben/python/318735.html

    展开全文
  • python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子造汽车吗? 谁也没法说不吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?比较大型的,使用Python...

    python可以写游戏,但不适合。下面我们来分析一下具体原因。

    用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?

    比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。

    一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。

    Python理论上,不仅不适合做游戏,而是只要大型的程序,都不适合。只适合写比较小型的东西,比如一个计算器,一个爬虫等。

    主要有2个方面,一是速度慢,二是语法缺陷。

    也许你一定觉得,Python的语法又干净,又优雅,怎么还有缺陷?但仔细想想,为什么别的语言没有这么干净?没有这么优雅?明明可以直接a=123 干嘛非要写成 int a=123;呢?难道是其他语言的设计者,都有强迫症吗?道理很简单,有得必有失。

    如果数据类型,只有字符串和数字,省略掉声明变量的过程,当然不是问题。但只要逻辑一复杂,情况就完全不同了。。。游戏中,你用C#或C++写起来,大概会是这样。

    技能 a=xxxx;

    武器 b=xxxx;

    角色 c=xxxx;

    药水 d=xxxx;

    音乐 e=xxxx;

    而Python呢?大概是这个样子

    a=xxxx

    b=xxxx

    c=xxxx

    d=xxxx

    如果你的代码很少,显然是Python比较方便。但如果你创建几百个对象,代码超过1万行。。。写到几千行的时候,遇到一个叫x的对象,你还知道它到底是个啥吗?是一把武器?还是一瓶药水?还是一张图片?一段音频?一盏灯光?一座房子?

    不要以为1万行代码很多。。。。1万行连个《斗地主》都写不完。。

    用Python写大程序的感觉就是,当你第一天,只写了50行代码,创建了3个类,5个对象。你会觉得太爽了,这绝对是世界上最好的语言。。。第二天,你又创建了2个类,5个对象的时候,就觉得有点晕晕的了。第三天,又创建了2个类之后,你会发现自己必须非常仔细的看一遍注释,否则就不会写了。第四天,你一整天都在看注释。。。。

    这就是动态语言的劣根性。一开始代码量少,看不出任何缺点,各种省事,各种爽。代码量越多,脑子越乱。一般500行以上,效率就会被JAVA,C#之类的语言反超。。1000行,就必须要各种加注释才能看懂了。。2000行,注释就比代码多了。。5000行,注释已经完全不管用了,自己根本看不懂自己的代码,需要准备弃坑了。

    总结一下,python不是不能开发游戏,只是并不合适。每种语言都有各自的优缺点,开发游戏这一块或许就是python的缺点吧。

    python游戏实例补充:

    发牌游戏

    1. 游戏介绍

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

    2. 面向对象程序设计

    3. 程序设计步骤

    设计类,发牌程序设计出三个类: Card类、Hand类和Poke类。

    Card类:Card类代表一张牌,其中,FaceNum字段指的是牌面数字1~13,Suit字段指的是花色,”梅”为梅花,”方”为方块,”红”为红桃,”黑”为黑桃。

    Hand类:Hand类代表手牌(一个玩家手里拿的牌),可以认为是一位牌手手里的牌,其中,cards列表变量存储牌手手中的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手等操作。

    Poke类:Poke类代表一副牌,我们可以将一副牌看作是有52张牌的牌手,所以继承Hand类。由于其中cards列表变量要存储52张牌,而且要进行发牌、洗牌操作,所以增加如下的方法。

    主程序:主程序比较简单,因为有四个牌手,所以生成players列表存储初始化的四位牌手。生成一副牌的对象实例poke1,调用populate()方法生成有52张牌的一副牌,调用huffle()方法洗牌打乱顺序,调用deal(players,13)方法分别给每位玩家发13张牌,最后示四位牌手所有的牌。

    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)+" "

    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(" Press the enter key to exit.")

    到此这篇关于python能开发游戏吗的文章就介绍到这了,更多相关python能写游戏吗内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    本文标题: python能开发游戏吗

    本文地址: http://www.cppcns.com/jiaoben/python/318735.html

    展开全文
  • 下载W3Cschool手机App,0基础随时随地学编程导语这又将是一个不定期更新的系列~~~本系列主要将使用到python的pygame模块来教大家制作一些小游戏,每期制作一个。最后都会打包成.exe文件分享给大家~~~So,对于只想玩...
  • 学习Python开发培训有用吗?这是目前很多人都比较...在我们的日常工作生活中,Python能用做网站,比如国内的知乎、豆瓣,国外的YouTube等;可以开发网络游戏的后台,比如《文明》系列、《阴阳师》;可以做日常工作,像是
  • 如果你就是铁了心非要走游戏开发或脚本制作这条路,那小会先建议你多学几门编程语言,至少要掌握Python/C++(为什么这么说,往下看就知道),那怎么实现呢? 首先要了解【脚本】的定义:通俗点说,脚本就是利
  • 还记得这款火遍全球的像素小鸟游戏吗?没有精细的动画,极简的游戏机制。却成为苹果商店下载量最多的免费 app,并为游戏制作人带来了数百万美元的收益。当姜文说"站着把钱挣了”的时候,有的人"玩着就把钱...
  • python开发

    2018-10-23 14:30:41
    可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。 Python当然也有不干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Swift/Objective-C(针对iPhone)和...
  • 点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤真者,精诚之至也,不精不诚,不动人。成语接龙今天难得下班早,不用做公司...
  • 如果你就是铁了心非要走游戏开发或脚本制作这条路,那小会先建议你多学几门编程语言,至少要掌握Python/C++(为什么这么说,往下看就知道),那怎么实现呢?如果是编程小白,在此推荐一个无需安装编译环境,在
  • Python语言可以用来做全栈开发,用于大数据的挖掘和处理,用来开发游戏,用来开发WEB,应用在系统运维,云计算,金融理财分析,人工智能,图形程序开发等涉及各行各业的多个领域。 但是大多数普通上班族最主要的应用...
  • 自学Python可以找到工作吗?自学Python找工作主要看自己的学习能力,自学能力很强学完并精通当然可以工作,...做网络游戏的后台,很多在线游戏的后台都是Python开发的。如果你自学到可以轻松开发编写这些项目那么找...
  • 用pygame开发python游戏,也就是py文件, (在线游戏) 怎么放到html的网页上运行。 我是想什么用django的框架的。 是需要将每个画面传给网页吗,还是django里有直接用的接口。  ...
  • Pythonista是在iPad和iPhone上编写Python脚本的一个完整的开发环境。它包含了许多示例:绘画游戏动画、图像处理、自定义用户界面和自动化脚本。 除了强大的标准库之外,Pythonista还提供了与本地iOS...
  • 你想使用Python编写一个炫酷的游戏吗? 那么今天这篇文章就带着你从零开始编写一个Python小游戏。希望你喜欢。 话不多说,我们先来看一副动图 ​ 号:923414804 群里有志同道合的小伙伴,互帮互助, 群里有...
  • 如:Gmail、Youtube、知乎、豆瓣2)自动化运维:自动化处理大量的运维任务3)数据分析师:快速开发快速验证,分析数据得到结果4)游戏开发者:一般是作为游戏脚本内嵌在游戏中5)自动化测试:编写为简单的实现脚本,...
  • 开发工具 Python版本:3.6.4 相关模块: pygame模块; 以及一些python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。 原理介绍 因为时间有点赶,所以这里我只简单介绍一下游戏的...
  • 随着人工智能发展,学习python语言的人员有更多的岗位机会,python从事的职业广泛,从游戏到AI人工智能都可以用Python实现。除了编程,各种岗位的人都应该学python编程,python编程会大大的提高工作效率。 一、学...
  • Python是人工智能首选语言,相信对Python有一定了解的朋友们都知道这个问题,但是...目前已经被广泛的引用在诸多领域,包括Web开发、操作系统管理、服务器运维的自动化脚本、科学计算、桌面软件、服务器软件、游戏等...
  • 下面讲一下开发Python游戏炸弹超人的大致步骤**(在底部直接拿详细教程和所有源码)** 首先是开发工具 Python版本:3.6.4 相关模块:Pygame,以及自带的模块 然后开始搭建相应所需的环境,安装python并添加到环境...
  • Python很难学吗?今天就给大家推荐一本不一样的python入门书籍,它用8个...《python编程初学者指南》作者前身是一个资深的游戏开发者,在编写这本书的时候,python能不能像我学游戏开发那样,在游戏中就能学会呢?作...
  • python"王者地位"Python 三大主要槽点Python “非常缓慢”全局解释器锁对移动应用开发贡献不足为什么 Python 在下一个十年依然如此重要最适合初学者学习的编程语言人气和社区支持在人工智能 / 数据科学领域占主导...
  • Python 在很多人口中无所不能,比如说编写一些自动化程序、黑别人网站、做游戏外挂之类那么,Python 真的那么神奇吗? 首先,两种语言都做胶水语言的工作没有疑问 嗨喽:小编是一名python开发工程师,这里有我自己...
  • 如果你有那么一点点自律的话,你完全可以通过网络上免费的资源自学Python并找到工作。何况花钱买课程也需要自己去学习,而且大部分课程贼贵,质量还...为什么打游戏能上瘾,因为你的目标非常清晰,拿赛车来说,你的...
  • 但是如果我们用Python开发一个小游戏或者一个GUI桌面应用小程序,想在手机上面运行试玩那应该怎么做呢? 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 ...

空空如也

空空如也

1 2 3
收藏数 55
精华内容 22
关键字:

python能开发游戏吗

python 订阅