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
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
efb0dcfd
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
134 additions
and
203 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,16 +16,23 @@ 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
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
:
...
...
@@ -30,13 +40,14 @@ class Hero(object):
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
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
:
...
...
@@ -44,12 +55,58 @@ class Hero(object):
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
:
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
ftcombat
(
self
,
enemy
):
#反弹
ftaaa
=
random
.
randint
(
25
,
100
)
info1
=
self
.
name
+
"对"
+
enemy
.
name
+
"
反弹伤害
,"
info2
=
"
反弹造成"
+
str
(
ftaaa
)
+
"点伤害,"
enemy
.
hp
=
enemy
.
hp
-
int
(
ftaaa
)
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
...
...
@@ -59,6 +116,50 @@ class Hero(object):
info
=
info1
+
info2
+
info3
print
(
info
)
exit
()
self
.
tili
=
self
.
tili
+
2
print
(
"出招后,体力回复2点,目前的体力为:"
,
self
.
tili
)
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
:
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
)
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
)
...
...
@@ -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
)
This diff is collapsed.
Click to expand it.
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
)
This diff is collapsed.
Click to expand it.
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