我是靠谱客的博主 舒适夕阳,最近开发中收集的这篇文章主要介绍RPG角色生成器Python版,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.功能介绍

 几乎所有的 RPG 游戏(一种源自“龙与地下城”的游戏类型)在进入游戏时都会让用户自己来创建自己喜欢的角色。要求编写一个简化的创建游戏角色的程序。

(1)游戏角色应有的属性

本题目要求的游戏角色应有以下属性:名字,性别,种族,职业,力量,敏捷,体力,智力,智慧,生命值和魔法值。

名字:不超过 50 个字符。

性别:可以选择男性和女性。

种族:一共可选五个种族,人类,精灵,兽人,矮人和元素。

职业:可选六种职业,狂战士,圣骑士,刺客,猎手,祭司和巫师。

其余属性均为整数。

本题目要求首先用户输入角色姓名,然后由用户选择角色性别,然后由用户选择种族,然后选择职业,然后自动分配力量,敏捷,体力,智力和智慧属性,并计算生命值和魔法值。

生命值 = 体力* 20 。

获取人物基本信息(姓名和性别):

class Message:
# 获取玩家姓名
def getName(self):
while True:
self.user_name = input('请输入您游戏中的姓名:')
if len(self.user_name) > 50:
print("您输入的姓名太长!")
break
return self.user_name
# 获取玩家角色性别
def getSex(self):
n = int(input('请输入您游戏人物的性别(0男,1女):'))
if n == 0:
self.user_sex = '男'
elif n == 1:
self.user_sex = '女'
else:
print('请在0-1之间选择!')
return self.user_sex

获取人物的种族:

# 获取玩家角色种族
def getRace(self):
self.user_race = int(input('请输入您游戏人物的种族(0.人类、1.精灵、2.兽人、3.矮人、4.元素):'))
if self.user_race not in range(0, 5):
print('您的输入格式有误,请在0-4之间选择一个类型!')
# 建立种族字典
Race = {
0: '人类',
1: '精灵',
2: '兽人',
3: '矮人',
4: '元素'
}
self.user_race = Race[self.user_race]
# 将用户输入的序号在字典中查找赋值
return self.user_race

 ( 2)职业限制

很多职业会限制某些种族选择,例如兽人不能就职圣骑士等等,种族和职业的限制表如下:

职业/属性

力量

敏捷

体力

智力

智慧

狂战士

40

20

30

5

5

圣骑士

25

15

30

20

10

刺客

20

35

20

15

10

猎手

15

40

15

10

20

祭司

15

20

15

35

15

巫师

10

20

10

20

40

职业限制我做的比较简单,用if语句根据人物的种族来直接给用户选项,而且偷懒没有加异常处理,代码也比较简单,仅供参考。


def getJob(self):
if self.user_race == '人类':
self.user_job = int(input('请输入您游戏人物的职业(0狂战士、1圣骑士、2刺客、3猎手、4祭司、5巫师):'))
elif self.user_race == '精灵':
self.user_job = int(input('请输入您游戏人物的职业(2刺客、3猎手、4祭司、5巫师):'))
elif self.user_race == '兽人':
self.user_job = int(input('请输入您游戏人物的职业(0狂战士、3猎手、4祭司):'))
elif self.user_race == '矮人':
self.user_job = int(input('请输入您游戏人物的职业(0狂战士、1圣骑士、4祭司):'))
elif self.user_race == '元素':
self.user_job = int(input('请输入您游戏人物的职业(4祭司、5巫师):'))
self.user_job = self.Job[self.user_job]
return self.user_job


  (3)初始属性

所以在要求用户选择职业时,输出信息里面只能有用户所选择种族可以就职的职业。

本题目要求力量,敏捷,体力,智力和智慧要求是随机值,但是五项属性的总和应该是 100 ,并且应该和职业相关。例如狂战士的体力和力量就要比较高,而巫师需要较高的智力,而祭司则需要较高的智慧各职业初始属性的大致比例应遵从下表:

职业/属性

力量

敏捷

体力

智力

智慧

狂战士

40

20

30

5

5

圣骑士

25

15

30

20

10

刺客

20

35

20

15

10

猎手

15

40

15

10

20

祭司

15

20

15

35

15

巫师

10

20

10

20

40

例如,前面示意图中的祭司的初始属性,大致满足该比例,但是应该是随机的。

然后利用属性值计算生命值和魔法值。

初始属性是最难也是最重要的一部分!

首先,生成一个小随机数,100减去这个随机数的余数按照每个属性所占比例分配到各个属性上。然后将这个小随机数加在任意一个属性上。我是通过自定义两个列表来实现的,一个是职业列表,另一个是属性列表,属性列表就是每个职业的属性数组,例如‘狂战士’的属性数组就是[4,2,3,0.5,0.5]。最后将每个属性生成的数字四舍五入。

class Attribute:
power = 0
agile = 0
spirit = 2
intelligence = 0
wisdom = 0
life = 0
def getAttribute(self, career):
kuang_list = [8, 4, 6, 1, 1]
sheng_list = [5, 3, 6, 4, 2]
ci_list = [4, 7, 4, 3, 2]
lie_list = [3, 8, 3, 2, 4]
ji_list = [3, 4, 3, 7, 3]
wu_list = [2, 4, 2, 4, 8]
attribute_list = [kuang_list, sheng_list, ci_list, lie_list, ji_list, wu_list]
job_list = ['狂战士', '圣骑士', '刺客', '猎手', '祭司', '巫师'].index(career)
range_number = random.randint(10, 20)
average_number = (100 - range_number) / 20
self.power = average_number * attribute_list[job_list][0]
self.agile = average_number * attribute_list[job_list][1]
self.spirit = average_number * attribute_list[job_list][2]
self.intelligence = average_number * attribute_list[job_list][3]
self.wisdom = average_number * attribute_list[job_list][4]
if job_list == 0:
self.power += range_number
elif job_list == 1:
self.spirit += range_number
elif job_list == 2 or 3:
self.agile += range_number
elif job_list == 4:
self.intelligence += range_number
elif job_list == 5:
self.wisdom += range_number
self.power = round(self.power)
self.agile = round(self.agile)
self.spirit = round(self.spirit)
self.intelligence = round(self.intelligence)
self.wisdom = round(self.wisdom)
self.life = round(self.spirit) * 20

( 4 )显示信息

最后向用户显示该角色的所有信息,然后询问用户是否满意,如用户不满意则重新创建,若用户满意则程序结束,并将用户创建角色的相关信息写入文件保存。

显示部分就很简单,各位有什么不懂得记得留言!

# 显示输出
class Show:
def show(self):
print('==' * 20)
print('姓名:'+' ' * 6 + ' ', p.user_name)
print('==' * 20)
print('性别:' + ' ' * 6 + ' ', p.user_sex)
print('==' * 20)
print('种族:' + ' ' * 6 + ' ', q.user_race)
print('==' * 20)
print('职业:' + ' ' * 6 + ' ', q.user_job)
print('==' * 20)
print('力量:' + ' ' * 6 + ' ', attribute.power)
print('==' * 20)
print('敏捷:' + ' ' * 6 + ' ', attribute.agile)
print('==' * 20)
print('体力:' + ' ' * 6 + ' ', attribute.spirit)
print('==' * 20)
print('智力:' + ' ' * 6 + ' ', attribute.intelligence)
print('==' * 20)
print('智慧:' + ' ' * 6 + ' ', attribute.wisdom)
print('==' * 20)
print('生命值:' + ' ' * 6 + ' ', attribute.life)

 

最后

以上就是舒适夕阳为你收集整理的RPG角色生成器Python版的全部内容,希望文章能够帮你解决RPG角色生成器Python版所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部