为类似数字代码的系统实现队列
Implementing a queue for a digicode-like system
我有一个带有 QPushButtons
的系统,可以像数字密码门一样工作。每个按钮都有一个 ID(整数)。当您按下的最后一个按钮对应于给定的密码时,事情就会发生(比如门打开)。
我正在考虑使用队列来实现它,并带有指向最后添加的值的指针。但是如何测试密码是否正确?
这是我的代码:
class MyQueue():
def __init__(self, size, defaultValue=None):
self.size = size
self.content = [defaultValue]*size
self.end = self.size-1
def addItem(self, value):
self.end = (self.end+1)%self.size
self.content[self.end] = value
def checkCorrect(self, password):
pass #???
我可以填队列,size
是保存的项目数。但是不知道怎么查看密码是否正确
关键是从最后一个加值开始往后读密码。检查密码中的每个 character/number 是否正确。如果你能读到密码直到最后,那你就很好了。这是我要搭配的东西:
def checkCorrect(self, password):
pw = list(reversed(password))
i = 0
j = self.end
if len(pw) > self.size:
return False
while True:
if pw[i] <> self.content[j]:
return False
else:
i += 1
j = (j-1)%self.size
if i == len(pw):
return True
我有一个带有 QPushButtons
的系统,可以像数字密码门一样工作。每个按钮都有一个 ID(整数)。当您按下的最后一个按钮对应于给定的密码时,事情就会发生(比如门打开)。
我正在考虑使用队列来实现它,并带有指向最后添加的值的指针。但是如何测试密码是否正确?
这是我的代码:
class MyQueue():
def __init__(self, size, defaultValue=None):
self.size = size
self.content = [defaultValue]*size
self.end = self.size-1
def addItem(self, value):
self.end = (self.end+1)%self.size
self.content[self.end] = value
def checkCorrect(self, password):
pass #???
我可以填队列,size
是保存的项目数。但是不知道怎么查看密码是否正确
关键是从最后一个加值开始往后读密码。检查密码中的每个 character/number 是否正确。如果你能读到密码直到最后,那你就很好了。这是我要搭配的东西:
def checkCorrect(self, password):
pw = list(reversed(password))
i = 0
j = self.end
if len(pw) > self.size:
return False
while True:
if pw[i] <> self.content[j]:
return False
else:
i += 1
j = (j-1)%self.size
if i == len(pw):
return True