`

连连看一种算法的实现、分析与思考(下)

阅读更多

 

问题扩展

下面我们来讨论这样一个问题:

如果游戏规则允许如图中紫红色连线的方式,那么我们改如何实现它呢?

 

我的想法是:

1.       p2周围4个方向任意一个空格checkP2,

2.       进行第三种连线方法中的判断,triLine(p1, checkP2)看结果的真假值

如图所示,途中p1checkP2进行triLine(p1,checkP2)的值为真,所以,p1,p2可以联通。

 

总结:通过上述分析,可以看出这个连连看算法的实现过程:

lineCheck()-àsecondLine()=lineCheck()*4à triLine(Point p1, Point p2)=【移位+secondLine()

可见,复杂的联通判定可有先前稍简单的算法复合使用后实现,即将大问题细分成原子问题来解决,这样的好处,不仅可以降低初期的分析难度,又可避免陷入编码时的混乱。另外这样,使得逻辑合理,结构清晰,便于理解。

 

分享到:
评论

相关推荐

    连连看一种算法的实现、分析与思考(上)

    《连连看游戏算法实现、分析与思考》 连连看,这款经典的休闲益智游戏,以其简单易懂的规则和挑战性的玩法深受玩家喜爱。在本文中,我们将深入探讨连连看的算法实现,对其进行分析,并引发一些思考。我们将不涉及...

    连连看MFC版源代码

    在本例中,开发者采用了一种独特的消去策略,不同于常见的枚举或深度优先搜索等方法。尽管只有60行代码,但其效率却非常高,这显示了开发者在算法设计上的精妙之处。这种高效的算法可能基于某种特定的数据结构,如...

    连连看mfc源代码

    "连连看"是一款广受欢迎的休闲游戏,而"MFC"(Microsoft Foundation Classes)是微软提供的一种C++类库,用于构建Windows应用程序。本压缩包中的"连连看mfc源代码"是一个基于MFC开发的游戏程序,它为学习者提供了一...

    java版水果蔬菜连连看

    Java是一种广泛使用的面向对象的编程语言,具有跨平台性、安全性、稳定性和高效性等特点。在游戏开发领域,Java通常用于创建桌面应用或网页游戏,因其丰富的库支持和良好的性能而受到青睐。 在"Java版水果蔬菜...

    JAVA 连连看Myclipse开发

    在IT领域,编程语言是构建软件的基础,而Java作为其中的一种重要语言,广泛应用于各种项目开发。本项目“JAVA 连连看Myclipse开发”是一个基于Java语言开发的游戏,旨在提供一个轻松愉快的休闲娱乐体验。连连看,又...

    C#连连看

    C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的软件开发,尤其在游戏开发领域有着显著的应用。本项目“C#连连看”是一个利用C#语言实现的经典休闲游戏——连连看。下面我们将深入探讨C#在...

    java连连看小游戏(含设计书).zip

    Java是一种广泛应用于各种领域的面向对象编程语言,以其跨平台性、安全性、稳定性和强大的类库支持而著名。在这个连连看游戏中,可能会用到Java的基础语法、面向对象编程概念(如类、对象、继承、多态)、图形用户...

    c#魔兽图片连连看小游戏

    连连看游戏是一种广受欢迎的休闲益智游戏,通过匹配相同的图片来消除它们,直到游戏盘面上的所有图片都被消除为止。接下来,我们将详细介绍C#实现这个小游戏所需的关键技术和步骤。 首先,我们需要理解连连看游戏的...

    三套非常值得学习的C#连连看游戏源码

    C#是一种广泛应用于游戏开发的编程语言,尤其在桌面应用和独立游戏中表现出色。连连看作为一款简单而受欢迎的小游戏,其源码是初学者学习游戏逻辑和C#编程的优秀资源。以下将详细解析“三套非常值得学习的C#连连看...

    java版连连看

    《Java版连连看》是一款基于Java编程语言开发的小游戏,旨在提供给玩家一种轻松愉快的娱乐体验。游戏设计了五种不同的变化关卡,每种关卡都有其独特的游戏机制,增强了游戏的趣味性和挑战性。 1. **无变化关卡**:...

    wince版连连看

    1. **Windows CE**: Windows CE,简称Wince,是由微软公司开发的一种嵌入式操作系统,主要应用于掌上设备和工业控制设备。它具有小巧、高效的特点,支持多种硬件平台,是微软在移动设备领域的早期尝试。 2. **...

    彭娟本科毕业设计连连看局域网对战

    - "分支限界":这是优化问题求解的一种算法,可能会被用来设计游戏的智能AI或者解决游戏中的决策问题。 - "面向对象":这表明设计者采用了OOP思想来组织代码,使得程序结构更加模块化,易于扩展和维护。 - "连连看...

    连连看源码

    本文将深入探讨"连连看"的源码,旨在帮助初学者理解游戏背后的算法和实现原理。 连连看的核心算法主要包括两大部分:匹配检测和消除操作。首先,我们来分析匹配检测算法。在连连看中,玩家需要找出两个可以连接并且...

    C++课程设计-连连看游戏1.doc

    本文档详细介绍了C++课程设计的报告,包括游戏的需求分析、总体设计、详细设计和算法设计等方面,旨在帮助读者更好地理解游戏设计的整个过程。 知识点: * 游戏设计的基本概念和要求 * 游戏娱乐性的提高方法 * ...

    gdh.rar_FlashMX 游戏_flash连连看制作教程_游戏 flash_连连看源码

    “连连看”是一种基于图像配对的休闲游戏,玩家需找出并消除屏幕上两个相同的图案,直至所有图案都被消除。这种游戏模式简单易懂,但随着关卡的推进,难度逐渐增加,对玩家的观察力和策略思考有一定挑战。 三、源码...

    麻将移移看类似连连看

    在“麻将移移看”中,麻将牌不再按照常规的四人对局模式摆放,而是被设计成了一种消除类游戏。玩家需要通过观察和思考,找到可以相互配对的麻将牌并进行消除,直至所有牌都被清除,从而完成关卡。 这款游戏采用了...

    visual c++ GDI开发的游戏 连连看 源代码

    在计算机编程领域,游戏开发是一种极具挑战性和创造性的实践。本篇文章将深入探讨利用Microsoft的Visual C++和GDI(Graphics Device Interface)技术开发的一款经典游戏——连连看。GDI是Windows操作系统中的一个...

    Android应用源码之三组图标可调连连看.zip

    首先,我们需要理解连连看游戏的基本规则,这是一种通过匹配两个相同图标来消除的游戏,需要玩家具备一定的策略思考和反应速度。 在Android应用开发中,此项目首先涉及到的是UI(用户界面)的设计。从提供的文件名...

    一个“连连看”游戏的java源代码

    - 通常采用深度优先搜索(DFS)或广度优先搜索(BFS)算法来实现这一功能。 4. **得分计算** - 每当成功匹配并消除一对按钮时,玩家得分增加。 - 得分变化实时更新在顶部得分面板上。 #### 四、代码实现细节 - **...

    连连看游戏

    在实现过程中,我们需要设计一个算法来生成随机且可解的棋盘布局。 接下来,我们将讨论游戏的核心功能实现: 1. **棋盘生成**:使用编程语言生成棋盘布局,可以采用二维数组表示棋盘。每个元素存储对应的图案或...

Global site tag (gtag.js) - Google Analytics