• <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>
            posts - 101,  comments - 57,  trackbacks - 0
                昨天,玩推箱子游戲玩到第四關(guān)實在過不去了,用C++寫了一個BFS+DP的算法求解。結(jié)果是170步。

                 其實我一開始是想用python來寫的,但是覺得二位矩陣這個東西很難用python來描述,于是作罷。寫完后看看自己的代碼,覺得惡心的不行。于是在網(wǎng)上搜索了一下,發(fā)現(xiàn)大牛居然可以把python寫得如此之簡潔,又一次拜服了!

            用python求解迷宮問題
            http://v.youku.com/v_show/id_XMTcwMzc5MTAw.html

            下面是我按照視頻里面敲的python代碼,我的實在垃圾就不拿出來了。

            這段代碼最然我感到驚嘆的是他對迷宮模型的表示方式,二位矩陣就如此輕描淡寫的表示出來!

            ps,網(wǎng)頁代碼的對齊有點問題。
             1ASCII_MAZE = '''
             2+----------------+
             3|      |     |   |
             4| | +--+ ----+ | |
             5| | |          | |
             6| |    +---- | | |
             7|   |  |     | | E
             8+---+  |  |  | | |
             9S      |  |  |   |
            10+------+--+--+---+
            11'''
            12PATH,START,EXIT,VISITED, SOLUTION = " SE.o"
            13
            14class Maze():
            15    def __init__(self, ascii_maze):
            16    self.maze = [list(row) for row in ascii_maze.splitlines()]
            17    self.start_x = [row.count(START) for row in self.maze].index(1)
            18    self.start_y = self.maze[self.start_x].index(START)
            19
            20    def __repr__(self):
            21    return "\n".join("".join(row) for row in self.maze)
            22
            23    def solve(self, x = None, y = None):
            24    if x == None:
            25        x = self.start_x
            26        y = self.start_y
            27
            28    if self.maze[x][y] in (PATH, START):
            29        self.maze[x][y] = VISITED
            30        if self.solve(x + 1, y) or self.solve(x - 1, y)\
            31           or self.solve(x, y +1or self.solve(x, y -1):
            32        self.maze[x][y] = SOLUTION
            33        return True
            34    elif self.maze[x][y] == EXIT:
            35        return True
            36    return False
            37        
            38
            39if __name__ == "__main__":
            40    import sys
            41    sys.setrecursionlimit(10000)
            42    m = Maze(ASCII_MAZE)
            43    if m.solve():
            44    print m
            45
            46
            posted on 2010-07-18 17:20 margin 閱讀(1531) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            收藏夾

            常去的壇子

            • CVC電腦病毒論壇
            • 很多人說我是AV,我告訴他們:別瞧不起人,我們也能創(chuàng)造價值
            • 安全焦點
            • 黑客聚集的地方,一般是好酒最多的地方...
            • 看雪論壇
            • 國內(nèi)最強的加密解密論壇,成醉其中經(jīng)常夜不歸宿
            • 驅(qū)動開發(fā)論壇
            • 厭倦了啤的朋友們,來我們來整點白的...痛痛快快的BSOD也好過隔鞋瘙癢!

            我的朋友

            • Sen的blog
            • IDE方面資深的受害者...經(jīng)常為一個變量的定義找不著北的痛苦程序員(深表同情)
            • 老羅的blog
            • 良師益友,千年水牛,引擎猛男,分析怪獸,墨鏡酷哥,臺球高手....

            搜索

            •  

            最新評論

            久久久久久极精品久久久| 亚洲中文字幕伊人久久无码| 久久久久久久综合日本亚洲| 国产精品毛片久久久久久久| 免费一级欧美大片久久网| 亚洲AV无码久久精品狠狠爱浪潮| 青青热久久综合网伊人| 人妻无码αv中文字幕久久琪琪布| 国产午夜福利精品久久2021| 性欧美大战久久久久久久| 国产亚洲美女精品久久久久狼| 亚洲日本久久久午夜精品| 国产精品欧美久久久久天天影视 | 亚洲第一永久AV网站久久精品男人的天堂AV| 国产成人综合久久精品红| 色综合合久久天天综合绕视看| 久久精品无码一区二区WWW| 久久久无码精品亚洲日韩软件| .精品久久久麻豆国产精品| 国产A三级久久精品| 久久久久国色AV免费看图片| 久久青青草原国产精品免费| 久久久久高潮毛片免费全部播放| 久久精品aⅴ无码中文字字幕不卡| 国产精品内射久久久久欢欢| 久久96国产精品久久久| 国产精品一久久香蕉国产线看观看| 国产精品久久久久a影院| 久久综合给合综合久久| 久久艹国产| 日韩中文久久| 欧美精品九九99久久在观看| 无码八A片人妻少妇久久| 久久这里都是精品| 一级a性色生活片久久无| 国产精品久久久香蕉| 国产精品亚洲综合久久| 欧洲人妻丰满av无码久久不卡 | 狠狠色噜噜狠狠狠狠狠色综合久久| 中文字幕日本人妻久久久免费| 久久午夜无码鲁丝片秋霞|