系列文章
https://blog.csdn.net/cpen_web/category_11089219.html
菜鸟教程:面向对象
https://www.runoob.com/python3/python3-class.html
● ①、回合制对战游戏
回合制对战游戏
●创建角色:名字、性别、血量、装备 ●战斗
●创建房间: ●装备-防弹衣
●角色可加入房间 ●血量默认100
●房间内的人可互打 ●正常被攻击-10滴血
●房间上限2人 ●有防弹衣-5滴血
class Role():
def __init__(self,name,sex,blood=100,body_armor=None):
self.name = name
self.sex = sex
self.blood = blood
self.body_armor = body_armor
self.room = None
def attack(self,other):
if self.room == other.room: # 注:同一房间
if self != other: # 注:不同的人
if self.blood > 0 and other.blood > 0:
reduce_blood = 5 if other.body_armor else 10
# 注:body_armor为假 返回10(没有设置防弹衣)
other.blood -= reduce_blood
print(f"{
self.name}攻击{
other.name} {
reduce_blood}点血量\t{
self.name}当前血量:{
self.blood}\t{
other.name}当前血量:{
other.blood}")
else:
print("其中一方已死亡,不能攻击")
exit()
else:
print("你不能攻击自己")
else:
print("攻击对象,不在同一个房间")
class Room():
def __init__(self,name):
self.member = []
self.name = name
def join(self,role):
if role.room == None:
# 注:在角色的类里定义的属性room
if len(self.member) < 2:
self.member.append(role)
# 注:member房间的属性,房间只能加2个人 所以<2
role.room = self.name
# 注:达到条件,定义角色加入到 某个房间
else:
print("此房间已满")
else:
print("此角色已经加入房间了")
role_dict = {
} # 存放初始化实例 # 注:存放名字和对象的关系
room_dict = {
} # 存放初始化实例
while True:
print("请选择:1.创建角色\t2.创建房间\t3.加入房间\t4.开始战斗\t5.退出")
enter_number = input("请输入你的选择\t")
if enter_number.isdigit():
enter_number = int(enter_number)
if 1 <= enter_number <=5:
if enter_number == 1:
name, sex = input("请输入角色的姓名与性别,空格隔开\n").split()
#注:split()是为了 分割 将字符 赋给2个变量
role_dict[name] = Role(name, sex)
def_blood = input("输入自定义血量\n")
if def_blood.isdigit():
role_dict[name].blood = int(def_blood)
print(f"自定义成功,用户{
name}当前血量{
role_dict[name].blood}")
else:
print(f"自定义失败,用户{
name}当前血量{
role_dict[name].blood}")
wear_body_armor = input("输入y装备防弹衣\n")
if wear_body_armor == "y":
role_dict[name].body_armor = 1
elif enter_number == 2:
name = input("请输入房间的名字\n")
room_dict[name] = Room(name)