连连看原理

忽然来了性质,给自己做一个小游戏玩玩,限于水平有限,最终把目标定位在一款经典游戏上--连连看

游戏本身很简单,两个一个的图片点击相连后被消除,根据难度不同,消除的规则不同,消除后的效果也有所不同,这个先不谈,不是重点

我们先看一张图

好吧,有点密集。。。那个恐惧。。。这其实不算什么,作为一个程序猿,实际上你看到的应该是一串数字的随机排列组合

嗯,类似这样:

8 9 8 7 1 5 4 ...

4 5 8 7 1 4 9 ...

8 6 6 2 3 3 2 ...

...

透过那个表象看那个本质,就酱紫,虽然有些无聊,但这却是一个合格程序猿眼中的世界

很明显,这是一个矩阵,或者说是二维数组。想到这里,剩下的就理所当然了。

/ *******************************  一点都不华丽的分割线  ***********************************************/

首先,我们要做的就是初始化一个二维数组。

三个关键参数:行x、列y、个数n(也就是元素个数);

两个关键要求:元素随机排列、元素成对出现

其次,定义消除基本规则

直线消除

一折线消除

二折线消除

最后,处理页面表现

把数字元素换成图片

图片点击事件以及是否可消除判断

扩展,增加难度选择、关卡、道具等等

难度受 x/y/n 这三个基本参数的影响,也会收到消除规则的影响(比如消除后,原本的元素都跟着移动)

关卡依据难度来自己做决定

/ *******************************  一点都不华丽的分割线  ***********************************************/

伪代码部分:

未完待续。。。

时间: 2024-11-06 13:22:17

连连看原理的相关文章

hdu 1175(BFS) 连连看

题目在这里:http://acm.hdu.edu.cn/showproblem.php?pid=1175 大家都很熟悉的连连看,原理基本就是这个,典型的搜索.这里用的是广搜. 与普通的搜索比不同的是要求转折的线不能转折超过两次,就是在结构体中多开一个step(储存转折的次数)和一个dir(记录此刻的方向) 方向初始为-1,当行走一步后的方向与走之前不同的时候,step就应该加一, 然后还要注意的是为了保证得到的是所有的路线中转折次数最小的,这里的visit数组要用来保存每个点的最小转折次数, 所

关于《连连看》的算法研究和演示Demo

连连看曾经是一款非常受欢迎的游戏,同时它也是一款比较古老的游戏.看到这里你千万不要认为本篇文章打算讨论<连连看>的历史以及它取得的丰功伟绩.恰恰相反,在这篇文章中我们打算讨论该游戏背后的实现思想,包括它定义的游戏规则,以及游戏的实现算法.作为应用,我们还将利用Java代码实现一个通用的<连连看>算法,并使用Java Swing框架创建一个演示实例. 1<连连看>的游戏规则是如何定义的? 连连看的游戏界面和游戏规则都非常简单.游戏界面可以简单看作一个具有M×N个单元格的棋

cocos2d-x 3.6版连连看

写个连连看来讲游戏开发,我觉得实例讲解效果会好一些. 终端下面cd到源码目录,敲命令: cocos new LLK -p com.goonear.llk -l cpp -d ./Goonear 脚本就会创建一个工程了,看脚本的输出提示: 其实脚本创建新工程原理很简单,引擎原码目录下有很多工程模板,安卓,ios,mac,linux.这些模板都是事先做好的,引擎开发组会不断维护更新.然后执行脚本创建新工程的时候就把相关的模板文件拷贝到你指定的工程目录.根据你创建工程时指定的参数,去修改模板的对应参数

程序设计 之 C#实现《拼图游戏》 (下) 原理篇

前言:在 http://www.cnblogs.com/labixiaohei/p/6698887.html 程序设计 之 C#实现<拼图游戏>(上),上传了各模块代码,而在本文中将详细剖析原理,使读者更容易理解并学习,程序有诸多问题,欢迎指出,共同学习成长! 正文: 拼图是一个非常经典的游戏,基本每个人都知道他的玩法,他的开始,运行,结束.那么,当我们想要做拼图的时候如何入手呢?答案是:从现实出发,去描述需求(尽量描述为文档),当我们拥有了全面的需求,就能够提供可靠的策略,从而在代码中实现,

C#_自动测试2_连连看外挂

GUI自动化测试和做外挂的原理很相似,都是模拟用户的鼠标和键盘操作, 给自己的程序写自动化就是做测试,给别人的程序写自动化就是外挂了. 本文使用的技术也同样适用制作“对对碰”,"找茬" 之类游戏的外挂. 阅读目录 QQ连连看外挂实现原理 GUI自动化测试的原理 什么是句柄 P/Invoke机制 获取游戏窗体的句柄 分析游戏窗口 对游戏窗口进行截图 根据游戏规则来写算法 模拟鼠标点击 源代码下载 QQ连连看外挂实现原理 1. 先调用Win32 API获取"连连看"游戏

前端实现连连看小游戏(1)

博主玩了这么久的连连看,居然是第一次发现,连连看最多只能有2个转弯.orz- 在网上搜索连连看的连线算法判断,并没有找到很全面的,经过自己摸索之后,画了下面的图(图有点丑--) 一. 2个物体在同一直线上,可以直接连通 (这个不需要解释啦) 二.2个物体在同一直线上,中间有障碍物,不能直接连通 (2个转弯) [循环遍历黄线中的交点,比如A,B点,再判断蓝线有没有障碍物,若没有,则可以连通,若有,则继续循环查找新的A,B点] 三. 2个对象不在同一直线上,一个转弯 [2个物体分别在所在位置进行x,

cocos2d-x 3.6版连连看加载资源

网上找了一个梦幻连连看的资源,大家可以百度一下.然后整理一下加到工程里面去,包括声音和图片文件,后面解释如何整理可以方便管理. 我不推荐在代码里面直接引用资源文件名,我称之为硬编码.做iOS开发的同学好像比较习惯这样,要用按个图片,直接用图片来索引. 我们将所有的资源文件用C风格的字符串做一个索引,放在一个头文件Resources.h里面.这样以后需要修改图片或者索引可以很方便的修改. 好,先加这么多资源.来看看AppDelegate.cpp,这是入口.看看入口函数 applicationDid

【好玩的应用】QQ连连看辅助工具

自己学了这么久的C语言,但没有写出过什么可以用的东西来,总觉得心里不爽.这几天实在是不想干正事,在网上瞎逛逛,结果发现有人写了连连看的外挂.顿时觉得这很有意思啊.于是把代码下载下来,捣鼓了捣鼓.发现还挺简单的,于是自己研究了一下,仿照着写了一个. 外挂的主要思路:获取窗口位置,获取屏幕信息对图片编码,查找可消除对,模拟鼠标点击来消除. 1.外观: 这个是用MFC做的,我自己是一点MFC都不会的,开始在界面上卡了好久,一直在网上找MFC的教程.但是网上的教程都大多扯些杂七杂八的东西,看了很久都不知

cocos2d-x 3.6 连连看算法

我的原创博客:http://blog.csdn.net/dawn_moon 好了,在开始讲连连看游戏场景之前先来讲讲连连看算法. 连连看算法网上有很多,算法控首先想到的就是广度优先搜索,求出路径,然后求最小拐弯路径. 这个算法可以,但是对没有学过算法的同学可能有点困难,我这里也不讲. 我百度到一个比较通俗简便的算法,拿来用一下 在开始讲算法之前,讲一下地图布局,假设 4*4 的棋盘. 初始化地图,将要加载的图片在地图上绘制出来,每一种一次性绘制两次,确保偶数个.如图一 遍历棋盘,随机打乱布局,这