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