blob: bf87aa3fcb06535a138242800538dfe72a620ae1 (
plain)
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
|
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
@File : roll.py
@Time : 2020/11/07 15:56:02
@Author : Kyomotoi
@Contact : [email protected]
@Github : https://github.com/Kyomotoi
@License : Copyright © 2018-2020 Kyomotoi, All Rights Reserved.
'''
__author__ = 'kyomotoi'
import re
from random import randint
def roll_dice(par: str) -> str:
"""掷骰子"""
result = 0
proc = ''
proc_list = []
p = par.split('+')
# 计算每个单独的roll
for i in p:
args = re.findall(r"(\d{0,10})(?:(d)(\d{1,10}))", i)
args = list(args[0])
if not args[0]:
args[0] = 1
if int(args[0]) >= 5000 or int(args[2]) >= 5000:
return '阿..好大...'
for a in range(1, int(args[0]) + 1):
rd = randint(1, int(args[2]))
result = result + rd
if len(proc_list) <= 10:
proc_list.append(rd)
if len(proc_list) == 10:
temp_list = []
for i in proc_list:
if len(temp_list) == 9:
proc += str(i)
else:
proc += str(i) + '+'
temp_list.append(i)
elif len(proc_list) >= 10:
proc += '太长了不展示了'
else:
proc += str(result)
result = f"{par}=({proc})={result}"
return str(result)
|