我已经为您编写了一个相当简单的类,稍后将详细介绍其用法from random import random
from math import floor
class FairDice():
def __init__(self, sides = 6):
self.sides = sides
self.history = []
self.last = None
def roll(self):
number = random()
roll = int(floor(number * self.sides)) + 1
return roll
def statefull_roll(self, remember = None):
while True:
roll = self.roll()
remember = self.sides if remember is None else remember
if len(self.history) >= remember:
return None
if roll not in self.history:
self.history.append(roll)
return roll
def forget_history(self):
self.history = []
def forget_one(self):
self.history = self.history[1:]
我已经创建了这个FairDice类。{cd2>你可以通过调用函数{cd2}来完成。或者,您也可以通过调用statefull_roll()方法来执行滚动,以记住滚动的内容。如果没有剩余的数字,则不返回任何数字。您也可以调用forget_history()函数来忘记历史。在
下面是一个用法示例:
^{pr2}$
让我们假设在5卷之后重复字母是可以的。我添加了none。在roll = dice.statefull_roll(remember = 5)
这将不会返回5轮后,所有你要做的是。。。在if roll is None:
dice.forget_one()
roll = dice.statefull_roll(remember = 5)
forget_one忘了你最老的一卷。在
我写的不多,但工作和灵活的使用你的游戏。在