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

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個球的解答就要搜索近半個小時?,F在想把它改寫成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 胡雨田 閱讀(439) 評論(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>
            中国成人黄色视屏| 国产精品国产福利国产秒拍| 日韩一区二区久久| 亚洲激情视频在线观看| 亚洲第一色中文字幕| 最新国产の精品合集bt伙计| 99视频超级精品| 亚洲一区二区三区色| 欧美一区二区三区免费观看| 久久久久成人精品| 欧美激情麻豆| 国产精品久久午夜| 尤物精品在线| 一区二区三区高清在线观看| 欧美影院成人| 最新国产の精品合集bt伙计| 午夜激情亚洲| 欧美精品一区在线播放| 国产欧美在线| 一本不卡影院| 欧美成人亚洲| 午夜久久久久| 欧美激情视频在线播放| 国产精品一区二区久久国产| 亚洲观看高清完整版在线观看| 亚洲视频二区| 亚洲国产一区二区三区在线播| 在线一区二区三区四区| 欧美超级免费视 在线| 国产亚洲一区在线| 亚洲资源av| 99视频热这里只有精品免费| 欧美大片一区二区| 伊人色综合久久天天| 午夜精品久久久99热福利| 亚洲国产精品悠悠久久琪琪| 久久久av毛片精品| 国产日韩亚洲欧美综合| 亚洲一区二区三区免费观看| 亚洲区在线播放| 浪潮色综合久久天堂| 国产精品一香蕉国产线看观看| 一本色道久久综合亚洲二区三区| 欧美成人一区二区三区在线观看| 欧美一级视频一区二区| 国产精品视频不卡| 小黄鸭精品aⅴ导航网站入口| 亚洲日韩中文字幕在线播放| 欧美成人精品激情在线观看| 在线观看视频一区| 久久欧美中文字幕| 免费观看欧美在线视频的网站| 亚洲黄一区二区三区| 亚洲免费成人av电影| 久久深夜福利免费观看| 国产精品一区二区久久精品| 亚洲女优在线| 亚洲性人人天天夜夜摸| 国产精品久久久久国产a级| 99视频热这里只有精品免费| 亚洲第一网站| 免费国产自线拍一欧美视频| 在线看片成人| 欧美激情亚洲国产| 欧美电影在线观看| 一区二区欧美在线| 一二美女精品欧洲| 国产精品家庭影院| 欧美亚洲综合网| 欧美亚洲在线| 亚洲电影毛片| 日韩一区二区久久| 国产日韩欧美电影在线观看| 久久久水蜜桃av免费网站| 久久亚裔精品欧美| 亚洲高清三级视频| 日韩天天综合| 国产欧美精品一区二区三区介绍 | 日韩一二三在线视频播| 欧美日韩一区自拍| 久久精品理论片| 久久综合中文色婷婷| 99国产精品视频免费观看一公开 | 欧美激情成人在线| 欧美日韩国产麻豆| 久久精品国产亚洲a| 欧美99在线视频观看| 亚洲性感激情| 久久精品1区| 亚洲一区二区三区精品在线观看| 午夜亚洲影视| 日韩亚洲欧美在线观看| 亚欧美中日韩视频| 日韩视频在线你懂得| 午夜在线精品| 亚洲视频欧洲视频| 久久精品亚洲| 午夜亚洲视频| 欧美国产日韩免费| 久久久久久久国产| 欧美日韩综合在线免费观看| 久久综合免费视频影院| 国产精品国色综合久久| 亚洲国产精品激情在线观看| 国产伦精品一区二区| 91久久极品少妇xxxxⅹ软件| 国产亚洲精品bt天堂精选| 欧美视频免费看| 99国产精品久久久久久久| 欧美一区二区三区在线观看视频| 亚洲裸体俱乐部裸体舞表演av| 亚洲欧美日韩一区二区在线| 日韩午夜精品视频| 久久久噜噜噜久久人人看| 香蕉久久夜色精品国产| 欧美日韩午夜精品| 亚洲狠狠婷婷| 亚洲电影av在线| 久久久蜜臀国产一区二区| 久久福利精品| 国产精品久久| 亚洲视频图片小说| 亚洲一区二区三区免费视频| 欧美久久影院| 亚洲国产精品传媒在线观看| 亚洲黄页一区| 蜜桃久久精品乱码一区二区| 噜噜噜91成人网| 韩日在线一区| 久久精品欧美日韩精品| 久久亚洲二区| 136国产福利精品导航网址应用| 欧美一级视频| 久久婷婷蜜乳一本欲蜜臀| 国产一区999| 久久久久国产免费免费| 女女同性精品视频| 亚洲激情一区二区| 欧美精品一区二区三区蜜臀| 欧美激情一区在线| 亚洲狠狠丁香婷婷综合久久久| 欧美v日韩v国产v| 日韩亚洲欧美高清| 欧美中文在线观看国产| 狠狠综合久久| 欧美韩日一区二区三区| 亚洲精品一区二区在线观看| 亚洲图片欧美午夜| 国产精品嫩草99av在线| 欧美一区二区视频在线观看2020 | 欧美福利视频一区| 亚洲全黄一级网站| 午夜日韩福利| 在线观看一区二区视频| 欧美精品久久久久a| 一区二区欧美在线| 久久国产成人| 亚洲欧洲综合另类| 国产精品女人毛片| 久久久久久久999精品视频| 欧美激情精品久久久久久久变态| 一本色道久久88精品综合| 国产老女人精品毛片久久| 欧美伊人久久久久久久久影院| 欧美大片第1页| 亚洲女ⅴideoshd黑人| 精品动漫3d一区二区三区免费版 | 老司机免费视频一区二区| 亚洲精品在线电影| 久久香蕉精品| 亚洲一区二区三区在线看| 国产一区在线播放| 欧美一区成人| 欧美日本免费| 亚洲欧美激情诱惑| 欧美激情国产日韩精品一区18| 亚洲一区二区少妇| 1024欧美极品| 国产一区在线播放| 国产精品美女主播在线观看纯欲| 久久精品主播| 亚洲综合色网站| 亚洲精品一级| 亚洲国产成人不卡| 久久久99精品免费观看不卡| 亚洲一区二区久久| 亚洲精品久久久久久久久久久久| 国产精品嫩草99av在线| 欧美经典一区二区三区| 久久久久久网站| 亚洲影音先锋| 亚洲一区二区三区四区在线观看 | 久久深夜福利| 性欧美暴力猛交69hd| 99国产麻豆精品| 亚洲日产国产精品| 亚洲国产午夜| 亚洲激情网站| 亚洲大片在线| 亚洲国产欧美精品|