-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_1.0.py
160 lines (131 loc) · 5.14 KB
/
main_1.0.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/usr/bin/python
# encoding:utf8
import math
import random
import heapq
import sqlalchemy
import sqlite3
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, insert, create_engine
from sqlalchemy import Column, Integer, String, Date
from sqlalchemy.orm import sessionmaker
# 创建对象基类
Base = declarative_base()
# class 居民(Base):
# __tabname__ = '居民'
# id = Column(Integer, primary_key=True)
# 阵营 = Column(String)
# 姓名 = Column(String)
# 性别 = Column(String)
# 种族 = Column(String)
# 职业 = Column(String)
# 魅力 = Column(Integer)
# 感知 = Column(Integer)
# 智力 = Column(Integer)
# 体质 = Column(Integer)
# 敏捷 = Column(Integer)
# 力量 = Column(Integer)
# 说服 = Column(Integer)
# 表演 = Column(Integer)
# 威吓 = Column(Integer)
# 欺诈 = Column(Integer)
# 生存 = Column(Integer)
# 观察 = Column(Integer)
# 医学 = Column(Integer)
# 洞悉 = Column(Integer)
# 驯养 = Column(Integer)
# 调查 = Column(Integer)
# 宗教 = Column(Integer)
# 自然 = Column(Integer)
# 历史 = Column(Integer)
# 奥秘 = Column(Integer)
# 隐匿 = Column(Integer)
# 手法 = Column(Integer)
# 特技 = Column(Integer)
# 运动 = Column(Integer)
# 生活方式 = Column(String)
class 居民(object):
def __init__(self, 编号=None, 种族=None, 性别=None, 姓名=None, 阵营=None, 力量=None, 敏捷=None, 体质=None, 智力=None, 感知=None,
魅力=None,
运动=None, 特技=None, 手法=None, 隐匿=None, 奥秘=None, 历史=None, 自然=None, 宗教=None, 调查=None, 驯养=None, 洞悉=None,
医学=None, 观察=None, 生存=None,
欺诈=None, 威吓=None, 表演=None, 说服=None, 生活方式=None, 职业=None
):
self.编号 = 编号
self.职业 = 职业
self.说服 = 说服
self.表演 = 表演
self.威吓 = 威吓
self.欺诈 = 欺诈
self.生存 = 生存
self.观察 = 观察
self.医学 = 医学
self.洞悉 = 洞悉
self.驯养 = 驯养
self.调查 = 调查
self.宗教 = 宗教
self.自然 = 自然
self.历史 = 历史
self.奥秘 = 奥秘
self.隐匿 = 隐匿
self.手法 = 手法
self.特技 = 特技
self.运动 = 运动
self.魅力 = 魅力
self.感知 = 感知
self.智力 = 智力
self.体质 = 体质
self.生活方式 = 生活方式
self.敏捷 = 敏捷
self.阵营 = 阵营
self.姓名 = 姓名
self.性别 = 性别
self.种族 = 种族
self.力量 = 力量
种族列表 = ['矮人', '精灵', '半身人', '人类', '龙裔', '侏儒', '半精灵', '半兽人', '提夫林']
伊陆斯坎人类姓 = ['布莱特伍德', '赫尔德', '霍尔雷文', '拉克曼', '斯托维恩', '文德瑞瓦']
伊陆斯坎人类男名 = ['安德', '布拉特', '布兰', '夫拉夫', '盖斯', '兰德', '鲁特', '马尔瑟',
'斯托尔',
'塔曼', '厄斯']
伊陆斯坎人类女名 = ['阿玛芙丽', '贝塔', '瑟菲莉', '凯芙拉', '玛拉', '奥尔加', '斯莉芙里',
'维丝特拉']
def 种族生成器(种族):
return random.choice(种族)
def 性别生成器(性别):
return random.choice(性别)
def 职业生成器(职业):
return random.choice(职业)
def 属性生成器(STR=1, DEX=1, CON=1, INT=1, WIS=1, CHA=1):
Roll_list = {'STR': 0, 'DEX': 0, 'CON': 0, 'INT': 0, 'WIS': 0, 'CHA': 0}
for x in Roll_list:
Roll_number = 1
Roll_result = []
while Roll_number <= 4:
Roll_result.append(random.randrange(1, 6))
Roll_number = Roll_number + 1
Roll_list[x] = sum(heapq.nlargest(3, Roll_result))
return Roll_list
def 属性加值计算器(STR, DEX, CON, INT, WIS, CHA):
Ability_Scores = dict(STR=int(STR), DEX=int(DEX), CON=int(CON), INT=int(INT), WIS=int(WIS), CHA=int(CHA))
Ability_Scores_Modifiers = {'STR': 0, 'DEX': 0, 'CON': 0, 'INT': 0, 'WIS': 0, 'CHA': 0}
for x in Ability_Scores:
Ability_Scores_Modifiers[x] = math.floor(Ability_Scores[x] / 2 - 5) # floor函数向下取整
return Ability_Scores_Modifiers
def 种族属性加值计算器(种族):
case 0:
def 姓名生成器(性别):
if 性别 == '男':
姓名 = random.choice(伊陆斯坎人类男名) + '.' + random.choice(伊陆斯坎人类姓)
return 姓名
姓名 = random.choice(伊陆斯坎人类女名) + '.' + random.choice(伊陆斯坎人类姓)
return 姓名
姓名统计表 = []
for x in range(10000):
a = random.choice(['男', '女'])
姓名统计表.append([姓名生成器(a), a])
for x in 姓名统计表:
print(x)
# a1 = 居民(姓名=姓名生成器(种族='人类', 性别='男'), 性别='男')
# a2 = 居民(姓名=姓名生成器(种族='人类', 性别='女'), 性别='女')
# print('姓名:%s ,性别:%s' % (a1.姓名, a1.性别))
# print('姓名:%s ,性别:%s' % (a2.姓名, a2.性别))