Får en skitkonstig bugg som jag suttit och försökt felsöka ett bra tag, tycker jag lyckats isolera felet rätt bra men hittar fortfarande inte någon åtgärd som hjälper.
Koden ska printa en 'kortlek' (talen 1-13) i en särskild ordning som ett slags trolleritrick. De läggs in i en särskild blandning och printas i rätt ordning.
Problemet är att det sista kortet (talet) som printas blir 'None' eller 'Bugg' som jag satt det till nu. Se metoden dequeue i klassen LinkedQ.
Tacksam för hjälp!
Koden är följande:
Koden ska printa en 'kortlek' (talen 1-13) i en särskild ordning som ett slags trolleritrick. De läggs in i en särskild blandning och printas i rätt ordning.
Problemet är att det sista kortet (talet) som printas blir 'None' eller 'Bugg' som jag satt det till nu. Se metoden dequeue i klassen LinkedQ.
Tacksam för hjälp!
Koden är följande:
Kod:
class Node:
def __init__(self, init_data):
self.data = init_data
self.next = None
def __str__(self):
return str(self.data)
def get_data(self):
return self.data
def get_next(self):
return self.next
def set_data(self, new_data):
self.data = newdata
def set_next(self,new_next):
self.next = new_next
class LinkedQ:
def __init__(self):
self.last= None
self.first= None
def is_empty(self):
if self.first == None:
return True
else:
return False
def enqueue(self, item):
temp = Node(item)
if self.last == None:
self.first = temp
self.last = temp
else:
self.last.set_next(temp)
self.last = temp
def dequeue(self):
if self.first != None:
temp = self.first.get_data()
self.first = self.first.get_next()
return temp
else:
return 'Bugg'
def get_first(self):
return self.first
def get_last(self):
return self.last
def sort_cards():
cards = '7 1 12 2 8 3 11 4 9 5 13 6 10'
cards = cards.split()
cards = list(map(int, cards))
return cards
q = LinkedQ()
def queue_cards(cards):
for i in cards:
q.enqueue(i)
def wizard():
ret = []
while q.is_empty() == False:
try:
x = q.dequeue()
q.enqueue(x)
y = q.dequeue()
ret.append(y)
except IndexError:
return None
return ret
def main():
q = LinkedQ()
cards = sort_cards()
queue_cards(cards)
result = wizard()
print(result)
main()