先日発表された無料オンライン向けTRPG
エモクロアTRPGのキャラクターランダム生成プログラムをPythonで組んでみました
エモクロアTRPGのPC複雑なパラメータ持たないため下記の内容で組みました
今回のコードは全ステータスをD6(6面ダイス)で値を決める動きを想定していますが
パラメータをすべて振り切るものではありません
あくまですべての値をD6を振って出目合計が25以下のパターンを設定する想定です
やってることとしてはD6を8回ふって出目の合計が25以下のパターンを出力するというシンプルなもので
25点あるステータスポイントを全部振り切るプログラムではないというのがミソ
使用環境 Python3.9.1
コーディング環境 IDLE3.9
randomcharacter.py
import random
bol = True
while bol:
sintai = random.randint(1,6)
kiyou = random.randint(1,6)
seisin = random.randint(1,6)
gokan = random.randint(1,6)
tiryoku = random.randint(1,6)
miryoku = random.randint(1,6)
syakai = random.randint(1,6)
unsei = random.randint(1,6)
goukei = sintai +kiyou +seisin +gokan +tiryoku +miryoku +syakai +unsei
if goukei <= 25:
bol = False
print("身体"+str(sintai))
print("器用"+str(kiyou))
print("精神"+str(seisin))
print("五感"+str(gokan))
print("知力"+str(tiryoku))
print("魅力"+str(miryoku))
print("社会"+str(syakai))
print("運勢"+str(unsei))
print("HP"+str(sintai+10))
print("MP"+str(seisin+tiryoku))
(追記)プログラムを再利用しやすいように改良しました。
改良版では25点完全にふりきる形にしています(ループ抜ける条件変えただけですが)
randomcharacter.py
import random
def rnd_char():
dataheder = ('身体 : ','器用 : ','精神 : ','五感 : ','知力 : ','魅力 : ','社会 : ','運勢 : ','HP : ','MP : ')
bol = True
while bol:
data = list()
for i in range(8):
data.append(random.randint(1,6))
if sum(data) == 25:
bol = False
i = 0
for st in dataheder:
if i < 8:
print(st + str(data[i]))
if i == 8:
print(st+str(data[0]+10))
if i == 9:
print(st+str(data[2]+data[4]))
i += 1
rnd_char()