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
e430fcfe
authored
2 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
f19096ae
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
0 deletions
diy1.py
diy1.py
0 → 100644
View file @
e430fcfe
import
random
class
Hero
(
object
):
def
__init__
(
self
,
name
):
self
.
name
=
name
self
.
level
=
1
self
.
hp
=
250
self
.
attack
=
40
self
.
max_hp
=
self
.
hp
self
.
skill_name
=
"冲刺"
self
.
skill
=
100
self
.
degree
=
1
def
cure
(
self
):
# 治疗
self
.
hp
=
self
.
hp
+
60
+
(
self
.
level
-
1
)
*
20
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
str
(
60
+
(
self
.
level
-
1
)
*
20
),
",目前的血量为:"
,
self
.
hp
)
def
up_level
(
self
):
self
.
level
+=
1
self
.
attack
+=
20
self
.
hp
+=
50
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
()
class
Player
(
Hero
):
def
__init__
(
self
,
hero_type
,
name
):
super
()
.
__init__
(
name
)
self
.
hp
=
200
self
.
attack
=
50
self
.
max_hp
=
self
.
hp
self
.
hero_type
=
hero_type
self
.
skill_name
=
"万箭齐发"
self
.
skill
=
100
self
.
degree
=
1
print
(
"角色"
+
self
.
name
+
"创建成功,英雄类型为:"
,
self
.
hero_type
)
print
(
"当前等级、血量、攻击力分别为:"
,
self
.
level
,
self
.
hp
,
self
.
attack
)
def
cure
(
self
):
# 治疗
blood
=
random
.
randint
(
30
,
50
)
self
.
hp
=
self
.
hp
+
blood
+
(
self
.
level
-
1
)
*
20
if
self
.
hp
>
self
.
max_hp
:
self
.
hp
=
self
.
max_hp
print
(
self
.
name
+
"使用了治疗,血量增加:"
,
str
(
blood
+
(
self
.
level
-
1
)
*
20
),
",目前的血量为:"
,
self
.
hp
)
houyi
=
Player
(
"射手"
,
"后羿"
)
yase
=
Hero
(
"垭瑟"
)
print
(
"-"
*
30
)
print
(
" 战斗开始"
)
while
True
:
print
(
"-"
*
30
)
c
=
input
(
"请选择释放英雄技能(1攻击/2治疗/3放弃攻击/4技能(每局只有一次,使用后再使用视为普通攻击)/q退出游戏):"
)
if
c
==
"1"
:
houyi
.
combat
(
yase
)
elif
c
==
"2"
:
houyi
.
cure
()
elif
c
==
"q"
:
print
(
"欢迎再次进入"
)
exit
()
elif
c
==
"3"
:
print
(
"玩家放弃攻击"
)
elif
c
==
"4"
:
if
houyi
.
degree
>
0
:
houyi
.
degree
-=
1
yase
.
hp
=
yase
.
hp
-
houyi
.
skill
print
(
"后羿使用了技能“"
+
str
(
houyi
.
skill_name
)
+
"”,对垭瑟造成了"
+
str
(
houyi
.
skill
)
+
"点伤害,垭瑟还剩"
+
str
(
yase
.
hp
)
+
"点血量"
)
else
:
houyi
.
combat
(
yase
)
else
:
print
(
"请重新输入"
)
continue
num
=
random
.
randint
(
1
,
5
)
if
num
==
1
:
yase
.
combat
(
houyi
)
elif
num
==
2
:
yase
.
cure
()
elif
num
==
3
:
if
yase
.
degree
>
0
:
yase
.
degree
-=
1
houyi
.
hp
=
houyi
.
hp
-
yase
.
skill
print
(
"垭瑟使用了技能“"
+
str
(
yase
.
skill_name
)
+
"”,对后羿造成了"
+
str
(
yase
.
skill
)
+
"点伤害,后羿还剩"
+
str
(
houyi
.
hp
)
+
"点血量"
)
else
:
yase
.
combat
(
houyi
)
elif
num
==
5
:
yase
.
combat
(
houyi
)
else
:
print
(
"垭瑟放弃攻击"
)
\ No newline at end of file
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