队列+栈实现小游戏

#-*- coding:utf-8 -*-
#纸牌拖拉机游戏 #定义队列 class Queue: def __init__(self): self.list=[] #进队 def queue_in(self,num): self.list.append(num) return #出队 def queue_out(self): num=self.list[0] self.list=self.list[1:] return num #定义栈 class Stack: def __init__(self): self.list=[] #进栈 def stack_in(self,num): self.list.append(num) return #出栈 def stack_out(self): num=self.list.pop() return num queue_heng=Queue() queue_heng.list=[2,4,1,2,5,6] queue_ha=Queue() queue_ha.list=[3,1,3,5,6,4] #桌面的牌 stack=Stack() #小哼先出牌 stack.stack_in(queue_heng.queue_out()) # print stack.list,queue_ha.list,queue_heng.list #有一个牌出完游戏结束 while (len(queue_ha.list)>0 and len(queue_heng.list)>0): num=queue_ha.queue_out() if num in stack.list: queue_ha.queue_in(num) #获取两张牌之间的牌 while True: num1=stack.stack_out() if num==num1: queue_ha.queue_in(num1) break else: queue_ha.queue_in(num1) else: #桌面的牌进栈 stack.stack_in(num) # print stack.list, queue_ha.list, queue_heng.list num=queue_heng.queue_out() if num in stack.list: queue_heng.queue_in(num) while True: num1=stack.stack_out() if num==num1: queue_heng.queue_in(num1) break else: queue_heng.queue_in(num1) else: stack.stack_in(num) # print stack.list, queue_ha.list, queue_heng.list print stack.list,queue_ha.list,queue_heng.list

  

posted @ 2017-11-27 22:55  ybf&yyj  阅读(225)  评论(0)    收藏  举报