鱼C论坛

 找回密码
 立即注册
查看: 14165|回复: 123

[技术交流] 通向终点的路不止一条!python迷宫。

  [复制链接]
发表于 2014-11-17 20:09:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wei_Y 于 2014-11-24 19:53 编辑

2008121223547917.jpg


其实木有上面那么高端啦。。只是数字版。。

规则:


  1. 迷宫没有墙壁,但是每条边的路被坑包围。如果一个玩家掉在坑里的话,他们就丢失了。迷宫是用矩阵来表示(含有列表的列表): 1是坑,0的路径的一部分。 迷宫的大小是12×12,外界都是坑。玩家在点(1,1)开始。出口是在点(10,10)。 你需要找到通过迷宫的路径。 玩家只能通过四个方向移动 南(下 [1,0]),北(上 [-1,0]), 东(右[0,1]),西(左[0,-1])。这条路线被描述成由不同的字符组成的字符串:“S”=南,“N”=北,“E”=东,和“W”=西。
复制代码


迷宫:
One:
360截图20141117195541691.jpg


[
[1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,0,0,0,0,0,0,0,1],
[1,0,1,1,1,1,1,1,0,1,1,1],
[1,0,1,0,0,0,0,0,0,0,0,1],
[1,0,1,0,1,1,1,1,1,1,0,1],
[1,0,1,0,1,0,0,0,0,0,0,1],
[1,0,0,0,1,1,0,1,1,1,0,1],
[1,0,1,0,0,0,0,1,0,1,1,1],
[1,0,1,1,0,1,0,0,0,0,0,1],
[1,0,1,0,0,1,1,1,1,1,0,1],
[1,0,0,0,1,1,0,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1],
]











Two:

360截图20141117195840922.jpg
[

[1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,1,0,0,0,1,0,0,0,0,1],
[1,0,1,0,1,0,1,0,1,1,0,1],
[1,0,1,0,1,0,1,0,1,0,0,1],
[1,0,1,0,1,0,1,0,1,0,1,1],
[1,0,1,0,1,0,1,0,1,0,0,1],
[1,0,1,0,1,0,1,0,1,1,0,1],
[1,0,1,0,1,0,1,0,1,0,0,1],
[1,0,1,0,1,0,1,0,1,0,1,1],
[1,0,1,0,1,0,1,0,1,0,0,1],
[1,0,0,0,1,0,0,0,1,1,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1],
]

three:

360截图20141117200007714.jpg

[
[1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1],
]

Four:

360截图20141117200155873.jpg


[
[1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1],
]
Five:

360截图20141117200440791.jpg

[
[1,1,1,1,1,1,1,1,1,1,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,1,1],
[1,0,0,0,1,0,0,0,1,0,0,1],
[1,0,1,0,0,0,1,0,0,0,0,1],
[1,1,1,1,1,1,1,1,1,1,1,1],
]


测试代码:

  1. def check_route(func, labyrinth):
  2.         MOVE = {"S": (1, 0), "N": (-1, 0), "W": (0, -1), "E": (0, 1)}
  3.         #copy maze
  4.         route = func([row[:] for row in labyrinth])
  5.         pos = (1, 1)
  6.         goal = (10, 10)
  7.         for i, d in enumerate(route):
  8.             move = MOVE.get(d, None)
  9.             if not move:
  10.                 print("Wrong symbol in route")
  11.                 return False
  12.             pos = pos[0] + move[0], pos[1] + move[1]
  13.             if pos == goal:
  14.                 return True
  15.             if labyrinth[pos[0]][pos[1]] == 1:
  16.                 print("Player in the pit")
  17.                 return False
  18.         print("Player did not reach exit")
  19.         return False
复制代码

带上写的函数和迷宫列表:

360截图20141117200620783.jpg


嘻嘻,能不能写粗来呢,各位试试吧。

我写的太菜了不贴上来丢人了。


大神写的:


游客,如果您要查看本帖隐藏内容请回复







评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
bevin + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-24 15:29:44 From FishC Mobile | 显示全部楼层
懂了!!!!! 是这样的吧?
#迷宫算法
def checkio(data): #主函数
    result=[] #结果存放处
    dirs=[[0,1,'D'],[1,0,'R'],[0,-1,'U'],[-1,0,'L']] #方向定义
    def move(path,x,y,field): #移动函数
        field[y][x]=1 #把自己变成1, 防止无限递归
        if x==10 and y==10: #如果到终点了
            result.append(path) #将路径放入结果
        for d in dirs: #检查四个方向
            if field[y+d[1]][x+d[0]]==0: #如果某个方向为0
                move(path+d[2],x+d[0],y+d[1],field) #递归
    move('',1,1,data) #调用移动函数, 此时路径为空
    return result[0] #将结果路径返回, Done!

来自:鱼C论坛 iPhone客户端来自: iPhone客户端

评分

参与人数 1荣誉 +6 鱼币 +6 贡献 +2 收起 理由
wei_Y + 6 + 6 + 2 是这样的~。

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-17 20:37:19 | 显示全部楼层

回帖奖励 +3 鱼币

强烈支持哦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-19 11:27:47 | 显示全部楼层

回帖奖励 +3 鱼币

支持一下,我还不会写这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-19 23:10:45 | 显示全部楼层

回帖奖励 +3 鱼币

支持!我学Basic时也做过这个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 00:51:23 | 显示全部楼层

回帖奖励 +3 鱼币

支持楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 01:49:04 | 显示全部楼层

回帖奖励 +3 鱼币


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2014-11-20 07:44:43 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 08:34:53 | 显示全部楼层

回帖奖励 +3 鱼币

看看,学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 09:11:53 | 显示全部楼层

回帖奖励 +3 鱼币

学习学习,现在还不会弄这东西
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 09:30:01 | 显示全部楼层

回帖奖励 +3 鱼币

赞~!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-20 10:21:03 | 显示全部楼层

回帖奖励 +3 鱼币

不错嘛!学习一下,谢谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 10:33:09 | 显示全部楼层

回帖奖励 +3 鱼币

厉害
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-20 11:01:08 | 显示全部楼层

回帖奖励 +3 鱼币

sigoyi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-11-20 12:30:13 | 显示全部楼层

回帖奖励 +3 鱼币

提示: 该帖被管理员或版主屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 13:02:05 | 显示全部楼层

回帖奖励 +3 鱼币

支持LZ...............
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 13:02:56 | 显示全部楼层
支持LZ...............
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 14:36:43 | 显示全部楼层

回帖奖励 +3 鱼币

学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-11-20 17:33:51 | 显示全部楼层

回帖奖励 +3 鱼币

大神 求带啊  哦也
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 18:15:40 | 显示全部楼层

回帖奖励 +3 鱼币

支持楼主!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-20 20:17:38 | 显示全部楼层

回帖奖励 +3 鱼币

没有看懂啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 04:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表