鱼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算算了
#red:0 blue:1 white:2.     4*3
begin=(2,0,1,1,0,0,1,1,0,0,1,1)
end=(2,1,0,1,1,0,1,0,0,1,0,1)
move=[(0,-1),(0,1),(1,0),(-1,0)]
step={}
st=[end]
s=st.pop()
sss=[end]
def check(x):
    if tuple(x) not in sss:
        st.append(tuple(x))
        step[tuple(x)]=s
        sss.append(tuple(x))
def twol(y):
    global i
    for j in range(12):
        if y[j]==2:
            i=j
while s!=begin:
    a,b,c,d=list(s),list(s),list(s),list(s)
    for mo in move:        
        if mo==(0,-1):
            twol(a)
            if a[i] not in a[0:12:4]:
                a[i],a[i-1]=a[i-1],a[i]
                check(a)
        elif mo==(0,1):
            twol(b)
            if b[i] not in b[3:12:4]:
                b[i],b[i+1]=b[i+1],b[i]
                check(b)
        elif mo==(1,0):
            twol(c)
            if c[i] not in c[8:12]:
                c[i],c[i+3]=c[i+3],c[i]
                check(c)
        elif mo==(-1,0):
            twol(d)
            if d[i] not in d[0:4]:
                d[i],d[i-3]=d[i-3],d[i]
                check(d)
    s=st.pop(0)
    if len(st)==0:
        print("no solution!")
        break
else:
    sa=begin
    print("start!!")
    print(sa)
    while sa!=end:
        sa=step[sa]
        print(sa)
            
想知道小甲鱼最近在做啥?请访问 -> 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, 2025-1-16 11:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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