我正在创建一个Python应用程序来玩Perudo游戏(或Liar's dice)。
我正在尝试创建一个函数,计算玩家(或AI)允许进行的所有可能移动,并返回它们的列表,以便可以拒绝非法移动。
回合被存储为2个数字的列表,例如[10,6]表示十个六。 如果起始变量currentbid是[19,3](十九个三),并且有20个骰子在游戏中,则唯一可能的移动是19个四,19个五,19个六,20个二,20个三,20个四,20个五和20个六。不允许叫做“一”。 程序应该输出上述内容:
但是它会将其输出为:
我正在尝试创建一个函数,计算玩家(或AI)允许进行的所有可能移动,并返回它们的列表,以便可以拒绝非法移动。
回合被存储为2个数字的列表,例如[10,6]表示十个六。 如果起始变量currentbid是[19,3](十九个三),并且有20个骰子在游戏中,则唯一可能的移动是19个四,19个五,19个六,20个二,20个三,20个四,20个五和20个六。不允许叫做“一”。 程序应该输出上述内容:
[[19,4],[19,5],[19,6],[20,2],[20,3],[20,4],[20,5],[20,6]]
但是它会将其输出为:
[[20,6],[20,6],[20,6],[20,6],[20,6],[20,6],[20,6],[20,6]]
我做错了什么?
def calcpossiblemoves(self, currentbid, totalnoofdice):
self.possiblemoves = [] # Create a list of possible moves that will be added too
self.bid = currentbid
while self.bid[0] <= totalnoofdice:
while self.bid[1] < 6:
self.bid[1] += 1
self.possiblemoves.append(self.bid) # <- I think the problem is something to do with this line
print(self.possiblemoves) #For tracking the process
# Increase 1st number, reset 2nd number to 1
self.bid[0] += 1
self.bid[1] = 1 # Which will get increased to 2
#print("Reached 6")
return self.possiblemoves