weixin_74785224 2023-10-25 11:19 采纳率: 57.1%
浏览 7
已结题

python程序是否有错误

题目: 设计一个Game类,类属性topScore来记录游戏的最高分;
实例属性name记录游戏名称,player记录玩家名称;
方法menu()用来显示游戏菜单,该方法和类对象以及实例对象都没有关系,可以设计为静态方法;
类方法showTopScore()用来显示当前游戏的最高分;
实例方法startGame()、pauseGame()和exitGame()分别用来开始游戏、暂停游戏和结束游戏;
init()方法用来初始化实例属性。

img


判断一下该程序是否有错误,正确的话,怎么运行。错误,怎么改正。

  • 写回答

2条回答 默认 最新

  • 梦幻精灵_cq 2023-10-25 12:06
    关注
    • 代码太多,不想手打。您能贴代码片就更好了。
      在python的IDE中查看和修改代码会比截图更方便😜😜

    -OCR您的截图,字体太小,识别率不到九成😂😂
    调整格式和修改识别差池,费了不少时间,比直接手打没快多少😄😄
    暧昧散尽

    #!/sur/bin/nve python
    # coding: utf-8
    import random
    
    
    class Game:
       topScore = 0
    
       @staticmethod # 静态方法
       def menu():
           print("="*40)
           print("1:游戏开始")
           print("2:游戏暂停")
           print("3:游戏结束")
    
       def __init__(self, name, player):
           self.name = name
           self.player = player
           self.score = 0
    
       def startGame(self):
           print(self.player+"开始打"+self.name+"游戏!")
           #print(f"\n{self.name}开始打{self.name}游戏。") # 可以这样子写。
           self.score=random.randint(0, 100) # 随机给出游戏分数
           print(self.player+"当前得分是:", self.score)
           print(f"\n当前得分是:{self.score}") # 可以这样子写。
    
           if self.score > Game.topScore:
               Game.topScore = self.score # 更新记录游戏的最高分
    
       def pauseGame(self):
           print(self.player+ "的"+ self.name+ "游戏暂停")
          # print(f"\n{self.player}的{self.name}游戏暂停。") # 可以这样子写。
    
       def exitGame(self):
           print(self.name+" is over!")
           #print(f"\n{self.name} is Over!") # 可以这样子写。
    
    
       @classmethod # 类方法输出当前游戏的最高分
       def showTopScore(cls):
           print("游戏当前最高分是", cls.topScore)
    
    
    #测试代码
    game1 = Game("扫雷", "小苏") # 创建了第一个游戏对象
    game2=Game("扫雷", "小帅") # 创建了第二个游戏对象
    
    while True:
       Game.menu()
       choice = int(input("请输入选择"))
    
       if choice == 1:
           game1.startGame()
           game2.startGame()
       elif choice == 2:
           game1.pauseGame()
           game2.pauseGame()
       elif choice == 3:
           game1.exitGame()
           game2.exitGame()
           Game.showTopScore()
           break
    
    

    • 您最后两行放错位置了,这才是正确的样子。

      img


      您这段代码没啥实义,就是练习写“文本界面”而已。😜😜
    • 代码已调试好,

      img


      我下班后给您调整下打印屏幕终端显示再给贴上来,您的显示不太好看。用字符串插值格式化最您的字符串+运算更易读易写。

      优化后的显示

    优化后的python代码

    
    
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日

悬赏问题

  • ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
  • ¥15 webots有问题,无响应
  • ¥15 数据量少可以用MK趋势分析吗
  • ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
  • ¥15 大智慧怎么编写一个选股程序
  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上