01 #! coding=gbk
02 result=[]
03 class froglist():
04 def __init__(self,froglist=[]):
05 self.froglist=froglist
06 self.iswin=False
07 self.findout=False
08
09 def canmove(self,list,frognum):
10 rule={'green':[1,2],'red':[-1,-2]}
11 if list[frognum] in rule.keys():
12 moveto=[frognum+i for i in rule[list[frognum]]]
13 for i in moveto:
14 if i>=0 and i<=6 and list[i]==None:
15 return i+1 #当i为0时,返回是False
16
17 return False
18
19 def movefrog(self,list,frognum):
20 temp=self.canmove(list,frognum)
21 if temp:
22 list[temp-1]=list[frognum]
23 list[frognum]=None
24
25 def startgame(self,list):
26 for i in range(7):
27 self.findout=False
28 if self.iswin==True:
29 self.findout=True
30 break
31 startgamelist=[]
32 startgamelist[:]=list
33 if self.canmove(startgamelist,i):
34 self.movefrog(startgamelist,i)
35 if startgamelist==['red','red','red',None,'green','green','green']:
36 self.iswin=True
37 print 'the result is ',startgamelist
38 self.run(startgamelist)
39
40 def run(self,list):
41 mylist=[]
42 mylist[:]=list
43 self.startgame(mylist)
44 if self.findout==True:
45 result.append(mylist)
46
47 def main():
48 mylist=['green','green','green',None,'red','red','red']
49 c=froglist(mylist)
50 c.run(mylist)
51 for i in result:
52 print i
53
54 if __name__=='__main__':
55 main()