益智游戏,用一条线全部连起来,不重叠,不能画斜的,黑点不能连。

如题所述

1-思路分析
倘若问题有解,即能够一条线连接所有点
那一条线必然有两个端点,由于左上角的1只有一个相邻点可以连接,必然为一个端点(非端点必须是起码有两个可以连接的相邻点的)
不妨以左上角的1为起点去探索,如果递归尝试所有方向后均不能一条线连接所有点,则说明该问题无解

2-递归实现代码(回溯法)
这里的代码思路和我之前递归三部曲(基于turtle实现可视化)-三、迷宫探索基本是一样的
感兴趣的话,也可以对比着看看
一条线连的探索过程为:
从起点(左上角的1)出发,分别按顺序往上下左右四个方向去探索(即连接上下左右的可以连接的相邻点),
在这一过程中递归地对连接后的相邻点进行进一步四周的探索(即将该相邻点当做新的起点去执行上一步骤,直至探索完成或失败,才开始下一个方向的探索)
探索的具体过程可以分下面几种情况:

该点不可连接(黑点或已经连接过的点)或超出边界,告诉上一步这一步探索失败
没有可以连接的点了,但a) 连完了所有点,探索完成,告诉上一步这一步探索成功 ,b)没连完所有点,探索失败,然后告诉上一步这一步探索是失败的
向某个方向的探索得出的结论是成功的,那么探索完成,不在探索,并且告诉上一步探索这一方向是能够探索成功的
向某个方向的探索得出的结论是失败的,那么换一个方向进行探索
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-29

追问

错了,只有五圆圈,你画了六个

追答

没有6个啊,这不是五个?

追问

你数一下,有六竖

那都画出来了

追答

没说不能连到圈外吧?

追问

额,好吧,我没说清楚,不能画外面,只能在圈圈里

追答

不能的话就是不行的,原来问题应该没说只能画圈内吧?

第2个回答  2014-05-29
我会追问

你帮我连咯

追答

好的

等下

给个好评先

追问

你先帮我画先

追答

追问

快点!!!

追答

好难的。。

追问

我画了一个小时也没弄出来,总是漏了一个

追答

等下

这个问题有错

追问

额,哪里错了

追答

谁给你的题

追问

书上有的

IQ测试

追答

那应该对。。

我在研究研究

追问

是的咯

追答

给个好评白

追问

你又不帮我穿起来

你穿好,我在给好评

追答

好。