青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

huyutian

他強由他強,清風拂山崗;他橫由他橫,明月照大江。他自狠來他自惡,我自一口真氣足

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  20 隨筆 :: 47 文章 :: 22 評論 :: 0 Trackbacks
寫完這篇blog,卻忘發了,呵呵
python向往很久了,國慶得閑終于決定開始學習這門語言。我的計劃是以實用為目的,邊用邊學。首先當然先看看入門書,了解了解語法和大致結構,安裝編程環境,這個花了差不多一天時間。
下載python請到官網http://www.python.org/getit/,目前最新版為3.3.2。建議直接下載最新版學習,從python2.7到3.3.2有較大改變,很多網站的教材都是針對2.x版本的,對3.x都不再適用了。比如:print “hello!"語句在2.x版中是可以的,但3.x版中必須改為print("hello")。最好是直接用官網的教程和說明文檔,更新及時,不會存在版本差異造成的問題。

第一目標:寫一個搜索Fling!毛毛球碰撞游戲的答案的程序
Fling!是蘋果iphone系統的一個小游戲,后來也被移植到安卓系統中。游戲玩法就是通過碰撞棋盤上的小球,使最后只剩下一個球。
itune網址https://itunes.apple.com/us/app/fling!/id325815008?mt=8
android網址https://play.google.com/store/apps/details?id=com.mbgames.fling
超喜歡這個游戲,前面20多關難度都不算大,但是27關以后就沒那么容易解決了。我先用excel的vba宏寫了一個程序,可惜vba運行太慢,25個球的解答就要搜索近半個小時。現在想把它改寫成python版本。excel版的毛球解決程序我已經放在這里了http://club.excelhome.net/thread-1061267-1-1.html

最后實現的代碼如下,用到了class,數據存儲使用了list[].
  1 import copy
  2 class Fling:
  3     def __init__(self, parent=0, balls=[[0]*7 for x in range(8)]):
  4         self.balls = copy.deepcopy(balls)
  5         self.code = 0                               #balls's hash code
  6         self.scan = False
  7         self.parent = parent
  8         self.x = 0
  9         self.y = 0
 10         self.direct = 0
 11 
 12     def setCode(self):
 13         self.code = 0
 14         for y in range(0,8):
 15             for x in range(0,7):
 16                 if self.balls[y][x] != 0:
 17                     self.code = self.code * 131 + x
 18                     self.code = self.code % 16393001 #防止溢出
 19                     self.code = self.code * 131 + y
 20                     self.code = self.code % 16393001
 21         
 22     def reset(self):
 23         self.balls = [[0]*7 for x in range(8)]
 24         self.scan = False
 25         self.code = 0
 26         self.parent = 0
 27         self.x = 0
 28         self.y = 0
 29         self.direct = 0
 30         
 31     def collision(self, x, y, direct):
 32         flag = False
 33         # 向上拋球
 34         if direct == 0:
 35             i = y - 1
 36             while i >= 0:
 37                 if self.balls[i][x] != 0:           #遇到球
 38                     if flag == False:               #遇到第一個球
 39                         if i == y - 1:
 40                             break                   #exit while
 41                         self.balls[y][x] = 0
 42                         self.balls[i + 1][x] = 1    #母球移動到此
 43                         flag = True                 #碰撞成立
 44                     elif i != y - 1:
 45                        self.balls[y][x] = 0
 46                        self.balls[i + 1][x] = 1     #母球移動到此
 47                     y = i
 48                 i = i - 1
 49             
 50         # 向右拋球
 51         elif direct == 1:
 52             i = x + 1
 53             while i < 7:
 54                 if self.balls[y][i] != 0:           #遇到球
 55                     if flag == False:               #遇到第一個球
 56                         if i == x + 1:
 57                             break                   #相鄰球不能碰撞
 58                         self.balls[y][x] = 0
 59                         self.balls[y][i - 1] = 1    #母球移動到此
 60                         flag = True                 #碰撞成立
 61                     elif i != x + 1:                #非相鄰球
 62                         self.balls[y][x] = 0
 63                         self.balls[y][i - 1] = 1    #母球移動到此
 64                     x = i                           #被撞球成為新的母球
 65                 i = i + 1
 66             
 67         # 向下拋球
 68         elif direct == 2:
 69             i = y + 1
 70             while i < 8:
 71                 if self.balls[i][x] != 0:           #遇到球
 72                     if flag == False:               #遇到第一個球
 73                         if i == y + 1:
 74                             break                   #exit while
 75                         self.balls[y][x] = 0
 76                         self.balls[i - 1][x] = 1    #母球移動到此
 77                         flag = True                 #碰撞成立
 78                     elif i != y + 1:
 79                        self.balls[y][x] = 0
 80                        self.balls[i - 1][x] = 1     #母球移動到此
 81                     y = i
 82                 i = i + 1
 83 
 84         # 向左拋球
 85         elif direct == 3:
 86             i = x - 1
 87             while i >= 0:
 88                 if self.balls[y][i] != 0:           #遇到球
 89                     if flag == False:               #遇到第一個球
 90                         if i == x - 1:
 91                             break                   #相鄰球不能碰撞
 92                         self.balls[y][x] = 0
 93                         self.balls[y][i + 1] = 1    #母球移動到此
 94                         flag = True                 #碰撞成立
 95                     elif i != x - 1:                #非相鄰球
 96                         self.balls[y][x] = 0
 97                         self.balls[y][i + 1] = 1    #母球移動到此
 98                     x = i                           #被撞球成為新的母球
 99                 i = i - 1
100             
101         if flag == True:                            #碰撞成立,最后一個球移出屏幕
102             self.balls[y][x] = 0
103             self.setCode()
104 
105         return flag
106 
107 # import pdb
108 # pdb.set_trace() # opens up pdb prompt
109 
110 question = [[1,0,0,1,0,1,0], \
111             [0,1,0,0,0,0,0], \
112             [0,0,0,0,0,0,1], \
113             [0,0,0,1,1,0,0], \
114             [0,0,0,1,0,0,0], \
115             [0,0,1,1,1,0,0], \
116             [0,0,1,0,0,0,0], \
117             [0,0,1,0,0,0,0]]
118 myTree = []
119 myTree.append(Fling(0, question))
120 myHash = []
121 myHash.append(myTree[0].code)
122 
123 i = 0
124 while i < len(myTree):
125     if myTree[i].scan != True:
126         for x in range(0,7):
127             for y in range(0,8):
128                 if myTree[i].balls[y][x] == 0:
129                     continue
130                 
131                 snap = Fling(i, myTree[i].balls)
132                 if snap.collision(x,y,0):
133                     if snap.code not in myHash:
134                         snap.x = x
135                         snap.y = y
136                         snap.direct = 0
137                         myTree.append(snap)
138                         myHash.append(snap.code)
139                 
140                 snap = Fling(i, myTree[i].balls)
141                 if snap.collision(x,y,1):
142                     if snap.code not in myHash:
143                         snap.x = x
144                         snap.y = y
145                         snap.direct = 1
146                         myTree.append(snap)
147                         myHash.append(snap.code)
148 
149                 snap = Fling(i, myTree[i].balls)
150                 if snap.collision(x,y,2):
151                     if snap.code not in myHash:
152                         snap.x = x
153                         snap.y = y
154                         snap.direct = 2
155                         myTree.append(snap)
156                         myHash.append(snap.code)
157 
158                 snap = Fling(i, myTree[i].balls)
159                 if snap.collision(x,y,3):
160                     if snap.code not in myHash:
161                         snap.x = x
162                         snap.y = y
163                         snap.direct = 3
164                         myTree.append(snap)
165                         myHash.append(snap.code)
166 
167         myTree[i].scan = True
168     i = i + 1
169 
170 #查找所有彈球動作
171 i = len(myTree) - 1
172 actions = []
173 while myTree[i].parent != 0:
174     actions.append([myTree[i].x, myTree[i].y, myTree[i].direct])
175     i = myTree[i].parent
176 else:
177     actions.append([myTree[i].x, myTree[i].y, myTree[i].direct])
178 
179 print("Answer:\nx y direct(0:up,1:right,2:down,3:left)")
180 for element in reversed(actions):
181     print(element[0], element[1], element[2])
182 
183 
posted on 2014-02-04 08:37 胡雨田 閱讀(445) 評論(0)  編輯 收藏 引用 所屬分類: 編程技巧
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            麻豆av一区二区三区久久| 女人色偷偷aa久久天堂| 欧美视频一区二区三区四区| 一区二区三区日韩欧美| 亚洲精品少妇| 国产精品v欧美精品v日本精品动漫 | 午夜精品久久久久久久久久久久久| 91久久精品国产91性色| 欧美激情精品久久久久久蜜臀| 日韩一二在线观看| 日韩香蕉视频| 国产精自产拍久久久久久蜜| 久久在线视频在线| 欧美成ee人免费视频| 亚洲一区二区免费视频| 午夜精品久久久久久久久| 在线日韩中文字幕| 亚洲免费观看| 国产三级欧美三级日产三级99| 乱码第一页成人| 欧美日韩成人综合| 久久精品国产免费观看| 欧美成人亚洲成人日韩成人| 亚洲在线国产日韩欧美| 久久久久久伊人| 亚洲视频在线播放| 久久久久久久综合色一本| 一区二区久久久久| 欧美在线视频一区二区三区| 日韩视频三区| 久久精品视频va| 亚洲一级影院| 免费观看在线综合色| 欧美资源在线| 欧美区在线播放| 免费日韩av片| 国产日本欧美一区二区三区在线| 亚洲国产精品久久| 国模私拍视频一区| 亚洲一级片在线观看| 亚洲伦理中文字幕| 久久久噜噜噜久久中文字幕色伊伊| 亚洲调教视频在线观看| 老司机一区二区| 久久久久成人精品| 国产精品嫩草影院av蜜臀| 亚洲韩国日本中文字幕| 今天的高清视频免费播放成人 | 亚洲影视在线| 99精品国产热久久91蜜凸| 久久精品在线观看| 欧美在线影院| 国产精品欧美久久| 亚洲欧洲一区二区在线观看| 亚洲大片一区二区三区| 午夜视频在线观看一区二区三区| 亚洲网友自拍| 欧美日韩国产系列| 亚洲人成在线播放| 亚洲精品1234| 免费在线成人av| 欧美不卡激情三级在线观看| 一区二区亚洲精品| 久久国产精品一区二区| 久久精品二区三区| 国产一区观看| 久久精品二区| 久久亚洲影音av资源网| 伊人成人开心激情综合网| 欧美中文在线视频| 裸体女人亚洲精品一区| 亚洲成色777777在线观看影院| 久久精品国产欧美激情| 毛片一区二区三区| 亚洲人体1000| 欧美日韩另类综合| 中国女人久久久| 欧美一级网站| 国内精品伊人久久久久av影院| 久久精品国产99精品国产亚洲性色| 久久国产88| 亚洲国产精品久久精品怡红院| 老司机一区二区| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品美女诱惑| 欧美一级网站| 模特精品在线| 一本一本大道香蕉久在线精品| 欧美视频二区| 欧美一区二区三区的| 欧美69视频| 一区二区av在线| 国产日韩精品一区二区三区在线| 欧美在线影院| 亚洲国产一区二区视频| 亚洲欧美日韩国产中文在线| 国产婷婷色一区二区三区| 蜜臀91精品一区二区三区| 亚洲乱码国产乱码精品精可以看 | 狂野欧美一区| 日韩一区二区精品| 国产日韩精品一区二区三区在线| 久久免费少妇高潮久久精品99| 亚洲精品欧美在线| 久久精品视频免费| 99国产精品国产精品毛片| 国产精品日韩精品欧美精品| 久久天堂精品| 亚洲欧美www| 亚洲精品韩国| 狂野欧美激情性xxxx欧美| 亚洲图片在区色| 在线观看欧美一区| 国产精品网曝门| 欧美激情第一页xxx| 欧美一区二区三区免费在线看 | 你懂的视频欧美| 欧美亚洲免费高清在线观看| 亚洲精品一区二区三区在线观看| 国产精品亚发布| 欧美日韩高清在线播放| 另类图片国产| 久久精品日韩| 欧美一区二粉嫩精品国产一线天| 日韩一二在线观看| 欧美激情视频一区二区三区在线播放 | 在线中文字幕不卡| 一区视频在线| 国产一区免费视频| 国产精品一国产精品k频道56| 欧美激情一区在线| 免费成人高清在线视频| 久久久久久久精| 午夜视黄欧洲亚洲| 亚洲一区免费在线观看| 亚洲欧洲在线一区| 亚洲国产片色| 亚洲人成网站在线播| 亚洲电影第1页| 欧美高清视频在线| 欧美成人在线影院| 欧美成人一区二区三区| 欧美成人精品不卡视频在线观看| 久久久久久久一区二区三区| 欧美在线资源| 久久男人av资源网站| 久久精品综合网| 久久久久久午夜| 久热精品视频在线免费观看| 鲁大师影院一区二区三区| 久久夜色精品国产| 欧美jizz19性欧美| 亚洲国产成人高清精品| 亚洲日韩视频| 在线视频日韩精品| 午夜国产精品视频| 久久久久免费观看| 欧美成人黑人xx视频免费观看| 麻豆av福利av久久av| 欧美精品高清视频| 国产精品丝袜91| 国内精品免费午夜毛片| 亚洲国产成人不卡| 夜夜嗨av一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 亚洲精品久久久久久久久久久久 | 久久综合九色综合欧美就去吻| 久久综合五月天婷婷伊人| 欧美激情视频网站| 国产精品sss| 国内外成人免费激情在线视频网站| **性色生活片久久毛片| 999在线观看精品免费不卡网站| 亚洲一区不卡| 久久久综合激的五月天| 亚洲国产日日夜夜| 亚洲自拍都市欧美小说| 久久综合一区二区| 欧美性感一类影片在线播放| 国产伪娘ts一区| 最新热久久免费视频| 亚洲欧美在线aaa| 欧美va亚洲va香蕉在线| aⅴ色国产欧美| 久久久精品免费视频| 欧美日韩在线三级| 在线看片日韩| 午夜欧美大片免费观看| 欧美高清自拍一区| 亚洲影院免费观看| 欧美成人在线网站| 国产欧美一区二区三区另类精品 | 国产精品视频一二| 亚洲日韩成人| 久久人体大胆视频| 中文欧美日韩| 欧美伦理a级免费电影| 在线观看日韩专区| 欧美一二区视频| 99国内精品久久|