1.Game 案例完成
定义一个游戏类 Game, 包含 属性 玩家名字
1)要求记录游戏的最高分(top_score 类属性)和获得最高分的玩家名字(top_score_player)
2)定义方法: show_help 显示游戏的帮助信息 输出这是游戏的帮助信息
3)定义方法: show_top_score, 打印输出游戏的最高分
4)定义方法: start_game, 开始游戏, 规则如下
1. 使用随机数获取本次游戏得分 范围 (10 - 100 )之间
2. 判断本次得分和最高分之间的关系
- 如果本次得分比最高分高,
- 修改最高分和获得最高分的玩家名字
- 如果分数小于等于最高分,则不操作
3. 输出本次游戏得分
5)主程序步骤
1. 查看游戏的帮助信息
2. 查看当前的最高分
3. 创建一个玩家小王,玩一局游戏, 输出当前最高分和玩家名字
4. 创建一个玩家小李,玩一局游戏, 输出当前最高分和玩家名字
5. 创建一个玩家小张,玩一局游戏, 输出当前最高分和玩家名字
方法1:游戏系统【整体系统】
import random
#1.创建一个Game类
class Game:
# 2.定义两个类属性(记录最高分和记录最高分玩家)并赋默认值
top_score = 0
top_score_player = '暂时无人上榜'
#3.定义方法: __init__;实例属性:player_name
def __init__(self, player_name):
self.player_name = player_name
# 4.定义静态show_help帮助方法
@staticmethod
def show_help():
print("这是游戏的帮助信息!")
#5.定义类方法show_top_score(用于打印记录最高分和玩家信息)
@classmethod
def show_top_score(cls):
print(f'最高分:{cls.top_score},玩家:{cls.top_score_player}')
#6.定义start_game开始游戏方法动作
def start_game(self):
print(f"玩家:{self.player_name}开始游戏")
#6.1获取随机值10到100赋予分数玩家本次得分
player_score = random.randint(10, 100)
print(f'玩家:{self.player_name}本次游戏得分:{player_score}分。')
#6.2如果随机值分>记录最高分
#那么随机值分赋值给记录最高分
# 并将此玩家姓名赋值给记录最高分玩家
if player_score > self.top_score:
Game.top_score = player_score
Game.top_score_player = self.player_name
#7.while无限循环打印0.1.2.3.游戏项目
while True:
print('******************************************')
print('******欢迎来到Game系统首页******')
print(f'0.退出游戏n1.查看帮助信息n2.查看历史最高分n3.创建游戏对象,开始游戏')
print('-----------------------------------------')
#8.输入值赋值给变量名select选择
select = input('请输入选择:')
print('******************************************')
#8.1如果变量名select等于0就break退出循环
if select == '0':
break
# 8.1如果select等于1就类名.show_help()调用4.帮助方法
elif select == '1':
Game.show_help()
# 8.2如果select等于2就类名.show_top_score()调用5.记录方法
elif select == '2':
Game.show_top_score()
# 8.2如果select等于3就提示请输入游戏玩家姓名
elif select == '3':
player_name = input('请输入游戏玩家姓名:')
#8.4创建对象:game||对象=类(属性值)||将input的值当属性值
#8.5调用方法||对象.方法||调用6.开始游戏动作方法
game = Game(player_name)
game.start_game()
else:
print('输入指令不正确')
如果注释能耐心看完,应该就能懂了
注释很多:密集恐惧症不建议围观
可以一小段一小段的看
最后的个人见解:
小系统目录就是一个while无限循环
循环中赋一些if条件
关于变量名select:见名知意:选择
1.其中select是变量名可以变的
可以将select单词改成sel,a,b,cd等都行
2.if==后的比较值也可以改变(自定义)
可以==0变为=='退出',=='退退'
主要input赋的值==自定义的值当if条件
3.if条件==满足然后执行哪些代码
最后共勉+n
方法2:这个更简洁
import random
class Game:#1.创建一个Game类定义两个类属性
topScore = 0
topScoreName = "暂无上榜"
def __init__(self, name):#3.定义方法和实例属性
self.player_name = name
@staticmethod# 4.定义帮助方法
def showHelp():
print("这是游戏帮助信息!")
@classmethod#5.定义类方法show
def show_top_score(cls):#打印最高记录
print(f"最高分:{Game.topScore}tt玩家 :{Game.topScoreName}")
def startGame(self):#6.定义开始游戏动作随机值赋予score
score = random.randint(10, 100)#打印玩家本次得分
print(f"玩家{self.player_name},本次游戏得分{score}")
if score > self.topScore:#6.2如果随机值分>记录最高分
Game.topScore = score #那么随机值分赋值给记录最高分
Game.topScoreName = self.player_name # 并将此玩家姓名赋值给记录最高分玩家
print("打破记录啦")
Game.show_top_score()#显示最高分记录
print('-------------------------------------')
Game.showHelp()#1调用帮助方法
Game.show_top_score()#2调用最高记录方法
game1 = Game("小王")#3玩家赋值
game1.startGame()#4调用开始游戏方法
game1 = Game("小李")
game1.startGame()
game1 = Game("小张")
game1.startGame()
game1.show_top_score()#5显示最高记录方法
2.按如下要求完成代码的编写:
1). 定义一个Person类,包含姓名和年龄属性,要求姓名是公有属性,年龄是私有属性
2). 提供获取私有属性的公有方法 get_age方法
3). 提供可以设置私有属性的set_age方法,
要求如果输入的年龄在 0--120 之间,设置年龄,否则提示输入不正确
4). 重写 __str__ 要求打印对象时,把姓名和年龄都打印出来
class Person:
def __init__(self,name,age):
self.name = name
# 1.定义age为私有属性__age
self.__age = age
#2)私有属性的公有方法 get_age方法:return获取__age的返回值
def get_age(self):
return self.__age
#3)定义set_age方法:用于设置修改__age私有属性的值
def set_age(self,age):
if 0 <= age <= 120:
self.__age = age
else:
print("年龄输入不正确!")
# 重写__str__
def __str__(self):
return f"姓名:{self.name},年龄:{self.__age}"
#创建对象person并打印get_age方法
person = Person("at",24)
print(person.get_age())
# 调用set_age方法设置__age并打印对象
person.set_age(122)
print(person)



