Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
lesson16_4
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7e7916f5
authored
Jun 05, 2021
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
efb0dcfd
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
144 additions
and
213 deletions
diy4.py
diy42.py
diy4.py
View file @
7e7916f5
import
random
bd1
=
0
class
Hero
(
object
):
def
__init__
(
self
,
hero_type
,
name
):
self
.
name
=
name
self
.
level
=
1
self
.
hp
=
260
self
.
attack
=
40
self
.
tili
=
5
self
.
max_tili
=
10
self
.
min_tili
=
0
self
.
max_hp
=
self
.
hp
self
.
hero_type
=
hero_type
print
(
"电脑角色"
+
self
.
name
+
"创建成功,英雄类型为:"
,
self
.
hero_type
)
...
...
@@ -13,28 +16,97 @@ class Hero(object):
def
cure
(
self
):
# 治疗
self
.
hp
=
self
.
hp
+
55
self
.
tili
=
self
.
tili
-
3
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
55
,
",目前的血量为:"
,
self
.
hp
)
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
55
,
",目前的血量为:"
,
self
.
hp
+
"体力减少3,目前的体力为:"
,
self
.
tili
)
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
def
combat
(
self
,
enemy
):
# 普通攻击
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起进攻,"
info2
=
"造成"
+
str
(
self
.
attack
)
+
"点伤害,"
enemy
.
hp
-=
self
.
attack
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
if
bd1
==
5
:
enemy
.
hp
-=
20
bd1
=
bd1
-
5
if
enemy
.
hp
>
0
:
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起用荣耀被动攻击,"
info2
=
"造成"
+
str
(
self
.
attack
+
10
)
+
"点伤害,"
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info4
=
"消耗被动值5点,目前的被动值为:0"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
elif
bd1
==
4
:
enemy
.
hp
-=
15
bd1
=
bd1
-
4
if
enemy
.
hp
>
0
:
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起超被动攻击,"
info2
=
"造成"
+
str
(
self
.
attack
+
10
)
+
"点伤害,"
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info4
=
"消耗被动值4点,目前的被动值为:0"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
elif
bd1
==
3
:
enemy
.
hp
-=
10
bd1
=
bd1
-
3
if
enemy
.
hp
>
0
:
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起强被动攻击,"
info2
=
"造成"
+
str
(
self
.
attack
+
10
)
+
"点伤害,"
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info4
=
"消耗被动值3点,目前的被动值为:0"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
elif
bd1
==
2
:
enemy
.
hp
-=
5
bd1
=
bd1
-
2
if
enemy
.
hp
>
0
:
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起被动攻击,"
info2
=
"造成"
+
str
(
self
.
attack
+
5
)
+
"点伤害,"
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info4
=
"消耗被动值2点,目前的被动值为:0"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
bd1
=
bd1
+
1
if
enemy
.
hp
>
0
:
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起攻击,"
info2
=
"造成"
+
str
(
self
.
attack
)
+
"点伤害,"
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info4
=
"被动值增加1点,目前的被动值为:"
,
bd1
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
def
jscombat
(
self
,
enemy
):
#绝杀
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起绝杀,"
info2
=
"绝杀造成"
+
str
(
self
.
attack
+
5
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
self
.
attack
-
5
def
dacombat
(
self
,
enemy
):
#大招:暴击
self
.
tili
=
self
.
tili
-
10
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起大招:暴击,"
info2
=
"暴击造成"
+
str
(
self
.
attack
*
2
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
(
self
.
attack
*
2
)
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
...
...
@@ -44,23 +116,52 @@ class Hero(object):
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
def
ftcombat
(
self
,
enemy
):
#反弹
ftaaa
=
random
.
randint
(
25
,
100
)
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"反弹伤害,"
info2
=
"反弹造成"
+
str
(
ftaaa
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
int
(
ftaaa
)
if
enemy
.
hp
>
0
:
def
zhongcombat
(
self
,
enemy
):
#中招:圣盾防御
self
.
tili
=
self
.
tili
-
7
sdfy
=
random
.
randint
(
1
,
3
)
if
sdfy
==
3
:
info1
=
self
.
name
+
"开启一级圣盾防御,体力减少7,目前的体力为:"
,
self
.
tili
print
(
info1
)
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
continue
elif
sdfy
==
2
:
enemy
.
hp
-=
ftsy
info1
=
self
.
name
+
"开启二级圣盾防御,"
info2
=
"圣盾反弹伤害造成"
+
str
(
ftsy
)
+
"点伤害,体力减少7,目前的体力为:"
,
self
.
tili
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
enemy
.
hp
-=
ftsy
info1
=
self
.
name
+
"开启三级圣盾防御,"
info2
=
"圣盾反弹伤害造成"
+
str
(
ftsy
)
+
"点伤害,体力减少7,目前的体力为:"
,
self
.
tili
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
continue
def
xiaocombat
(
self
,
enemy
):
#小招:强化
self
.
tili
=
self
.
tili
-
4
self
.
hp
=
self
.
hp
+
25
bd1
=
bd1
+
3
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
55
,
",目前的血量为:"
,
self
.
hp
+
"体力减少3,目前的体力为:"
,
self
.
tili
)
info1
=
self
.
name
+
"开启强化,血量增加:"
,
25
,
",目前的血量为:"
,
self
.
hp
+
"被动值增加1点,目前的被动值为:"
,
bd1
+
"体力减少4,目前的体力为:"
,
self
.
tili
print
(
info1
)
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
class
Player
(
object
):
def
__init__
(
self
,
hero_type
,
name
):
...
...
@@ -109,56 +210,13 @@ class Player(object):
print
(
info
)
exit
()
def
sj
(
self
,
enemy
):
# 升级
hjk
=
random
.
randint
(
1
,
7
)
if
hjk
==
1
:
info1
=
"升级未成,"
+
self
.
name
+
"对"
+
enemy
.
name
+
"发起进攻,"
info2
=
"造成"
+
str
(
self
.
attack
)
+
"点伤害,"
enemy
.
hp
-=
self
.
attack
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
elif
hjk
==
2
:
asd
=
random
.
randint
(
30
,
60
)
self
.
hp
=
self
.
hp
+
asd
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
"升级未成,"
+
self
.
name
+
"使用了治疗,血量增加:"
,
asd
,
",目前的血量为:"
,
self
.
hp
)
elif
hjk
==
3
:
qsaaa
=
random
.
randint
(
25
,
75
)
info1
=
"升级未成,"
+
self
.
name
+
"对"
+
enemy
.
name
+
"发起强杀,"
info2
=
"强杀造成"
+
str
(
qsaaa
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
self
.
attack
-
5
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
elif
hjk
==
4
and
hjk
==
5
:
self
.
level
=
self
.
level
+
1
self
.
attack
=
self
.
attack
*
2
print
(
self
.
name
+
"成功升级,当前等级、攻击力分别为:"
,
self
.
level
,
self
.
attack
)
else
:
print
(
"升级未成"
)
yase
=
Hero
(
"坦克"
,
"垭瑟"
)
houyi
=
Player
(
"射手"
,
"后羿"
)
print
(
30
*
"-"
)
print
(
" 战斗开始"
)
while
True
:
print
(
30
*
"-"
)
choice
=
input
(
"请选择释放英雄技能(q退出/1攻击/2治疗/3强杀
/4升级
):"
)
choice
=
input
(
"请选择释放英雄技能(q退出/1攻击/2治疗/3强杀):"
)
if
choice
==
"q"
:
print
(
"游戏结束"
)
break
...
...
@@ -168,17 +226,26 @@ while True:
houyi
.
cure
()
elif
choice
==
"3"
:
houyi
.
qscombat
(
yase
)
elif
choice
==
"4"
:
houyi
.
sj
(
yase
)
else
:
print
(
"请重新输入"
)
continue
mun
=
random
.
randint
(
1
,
16
)
if
mun
>
0
and
mun
<
5
:
yase
.
cure
()
elif
mun
>
4
and
mun
<
8
:
yase
.
jscombat
(
houyi
)
elif
mun
==
8
or
mun
==
9
:
yase
.
ftcombat
(
houyi
)
if
yase
.
tili
<
3
:
mun
=
1
elif
yase
.
tili
<
4
:
mun
=
random
.
randint
(
1
,
2
)
elif
yase
.
tili
<
7
:
mun
=
random
.
randint
(
1
,
3
)
elif
yase
.
tili
<
10
:
mun
=
random
.
randint
(
1
,
4
)
else
:
mun
=
random
.
randint
(
1
,
5
)
if
mun
==
1
:
yase
.
combat
(
houyi
)
elif
mun
==
2
:
yase
.
cure
()
elif
mun
==
3
:
yase
.
xiaocombat
(
houyi
)
elif
mun
==
4
:
yase
.
zhongcombat
(
houyi
)
else
:
yase
.
dacombat
(
houyi
)
diy42.py
deleted
100644 → 0
View file @
efb0dcfd
import
random
class
Hero
(
object
):
def
__init__
(
self
,
hero_type
,
name
):
self
.
name
=
name
self
.
level
=
1
self
.
hp
=
260
self
.
attack
=
40
self
.
max_hp
=
self
.
hp
self
.
hero_type
=
hero_type
print
(
"电脑角色"
+
self
.
name
+
"创建成功,英雄类型为:"
,
self
.
hero_type
)
print
(
"当前等级、血量、攻击力分别为:"
,
self
.
level
,
self
.
hp
,
self
.
attack
)
def
cure
(
self
):
# 治疗
self
.
hp
=
self
.
hp
+
55
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
55
,
",目前的血量为:"
,
self
.
hp
)
def
combat
(
self
,
enemy
):
# 普通攻击
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起进攻,"
info2
=
"造成"
+
str
(
self
.
attack
)
+
"点伤害,"
enemy
.
hp
-=
self
.
attack
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
def
jscombat
(
self
,
enemy
):
#绝杀
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起绝杀,"
info2
=
"绝杀造成"
+
str
(
self
.
attack
+
5
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
self
.
attack
-
5
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
def
ftcombat
(
self
,
enemy
):
#反弹
ftaaa
=
random
.
randint
(
25
,
100
)
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"反弹伤害,"
info2
=
"反弹造成"
+
str
(
ftaaa
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
int
(
ftaaa
)
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
class
Player
(
object
):
def
__init__
(
self
,
hero_type
,
name
):
self
.
name
=
name
self
.
level
=
1
self
.
hp
=
200
self
.
attack
=
50
self
.
max_hp
=
self
.
hp
self
.
hero_type
=
hero_type
print
(
"玩家角色"
+
self
.
name
+
"创建成功,英雄类型为:"
,
self
.
hero_type
)
print
(
"当前等级、血量、攻击力分别为:"
,
self
.
level
,
self
.
hp
,
self
.
attack
)
def
combat
(
self
,
enemy
):
# 普通攻击
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起进攻,"
info2
=
"造成"
+
str
(
self
.
attack
)
+
"点伤害,"
enemy
.
hp
-=
self
.
attack
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
def
cure
(
self
):
# 治疗
asd
=
random
.
randint
(
30
,
60
)
self
.
hp
=
self
.
hp
+
asd
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
asd
,
",目前的血量为:"
,
self
.
hp
)
def
qscombat
(
self
,
enemy
):
#强杀
qsaaa
=
random
.
randint
(
25
,
75
)
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"发起强杀,"
info2
=
"强杀造成"
+
str
(
qsaaa
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
self
.
attack
-
5
if
enemy
.
hp
>
0
:
info3
=
enemy
.
name
+
"还剩下"
+
str
(
enemy
.
hp
)
+
"血量"
info
=
info1
+
info2
+
info3
print
(
info
)
else
:
info3
=
enemy
.
name
+
"阵亡,游戏结束"
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
yase
=
Hero
(
"坦克"
,
"垭瑟"
)
houyi
=
Player
(
"射手"
,
"后羿"
)
print
(
30
*
"-"
)
print
(
" 战斗开始"
)
while
True
:
print
(
30
*
"-"
)
choice
=
input
(
"请选择释放英雄技能(q退出/1攻击/2治疗/3强杀):"
)
if
choice
==
"q"
:
print
(
"游戏结束"
)
break
elif
choice
==
"1"
:
houyi
.
combat
(
yase
)
elif
choice
==
"2"
:
houyi
.
cure
()
elif
choice
==
"3"
:
houyi
.
qscombat
(
yase
)
else
:
print
(
"请重新输入"
)
continue
mun
=
random
.
randint
(
1
,
16
)
if
mun
>
0
and
mun
<
5
:
yase
.
cure
()
elif
mun
>
4
and
mun
<
8
:
yase
.
jscombat
(
houyi
)
elif
mun
==
8
or
mun
==
9
:
yase
.
ftcombat
(
houyi
)
else
:
yase
.
combat
(
houyi
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment