鱼C论坛

 找回密码
 立即注册
楼主: jerryxjr1220

[技术交流] python小练习(064):探索法(广度优先搜索)不到40行代码求解拼图游戏的最优路径

[复制链接]
头像被屏蔽
发表于 2017-6-26 09:40:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2017-6-26 09:42:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-3 12:56:05 From FishC Mobile | 显示全部楼层
本帖最后由 qaz123765 于 2017-7-6 00:18 编辑

遍历了,但是算不出来,只能4*3算算了
  1. #red:0 blue:1 white:2.     4*3
  2. begin=(2,0,1,1,0,0,1,1,0,0,1,1)
  3. end=(2,1,0,1,1,0,1,0,0,1,0,1)
  4. move=[(0,-1),(0,1),(1,0),(-1,0)]
  5. step={}
  6. st=[end]
  7. s=st.pop()
  8. sss=[end]
  9. def check(x):
  10.     if tuple(x) not in sss:
  11.         st.append(tuple(x))
  12.         step[tuple(x)]=s
  13.         sss.append(tuple(x))
  14. def twol(y):
  15.     global i
  16.     for j in range(12):
  17.         if y[j]==2:
  18.             i=j
  19. while s!=begin:
  20.     a,b,c,d=list(s),list(s),list(s),list(s)
  21.     for mo in move:        
  22.         if mo==(0,-1):
  23.             twol(a)
  24.             if a[i] not in a[0:12:4]:
  25.                 a[i],a[i-1]=a[i-1],a[i]
  26.                 check(a)
  27.         elif mo==(0,1):
  28.             twol(b)
  29.             if b[i] not in b[3:12:4]:
  30.                 b[i],b[i+1]=b[i+1],b[i]
  31.                 check(b)
  32.         elif mo==(1,0):
  33.             twol(c)
  34.             if c[i] not in c[8:12]:
  35.                 c[i],c[i+3]=c[i+3],c[i]
  36.                 check(c)
  37.         elif mo==(-1,0):
  38.             twol(d)
  39.             if d[i] not in d[0:4]:
  40.                 d[i],d[i-3]=d[i-3],d[i]
  41.                 check(d)
  42.     s=st.pop(0)
  43.     if len(st)==0:
  44.         print("no solution!")
  45.         break
  46. else:
  47.     sa=begin
  48.     print("start!!")
  49.     print(sa)
  50.     while sa!=end:
  51.         sa=step[sa]
  52.         print(sa)
  53.             
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-3 22:48:08 From FishC Mobile | 显示全部楼层
楼主这个怎么收敛的,什么思路,全都加到列表里面貌似要很久
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-11 10:27:19 | 显示全部楼层
回复看代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-11 10:50:58 | 显示全部楼层
没学过算法,真是看不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 17:21:43 | 显示全部楼层
为什么字符串的处理速度这么快~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 21:15:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-17 16:18:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-19 11:04:52 From FishC Mobile | 显示全部楼层
已收藏,这个跟中国的华容道很相似,准备什么时候写一个解决华容道的程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-19 16:43:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-19 16:55:08 | 显示全部楼层
听说学习有鱼币。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-19 17:44:09 | 显示全部楼层
想看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-19 17:50:19 | 显示全部楼层
python实现的数据结构里图的广度优先遍历和深度优先遍历?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-19 19:59:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-22 17:41:39 From FishC Mobile | 显示全部楼层
gg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-20 11:15:59 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-6 10:43:00 | 显示全部楼层
大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-1-16 15:39:24 | 显示全部楼层
马克
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-9 17:31:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 02:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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