2016-07-08 13 views
2

私はQPushButtonsのシステムを持っており、デジコードのドアのように動作します。各ボタンにはID(整数)があります。最後に押されたボタンが特定のパスワードに対応すると、ドアが開いたようなことが起こります。デジコードのようなシステムのキューを実装する

これを実装するためにキューを使用し、最後に追加された値へのポインタを使用することを考えています。パスワードが正しいかどうかはどのようにテストできますか? sizeが保存されている項目の数である、私はキューを埋めることができ

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 #??? 

:ここ

は、私はまだ持っているコードです。パスワードが正しいかどうかを確認する方法はわかりません。

答えて

2

キーは、最後に追加された値から始まり、パスワードを逆方向に読み取ることです。正しい場合は、パスワード内の各文字/数字を確認してください。あなたが最後までパスワードを読むことができるなら、あなたは良いです。ここで私は一緒に行くだろう:

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 
関連する問題