VC++ 6.0制作QQ连连看外挂

2016-02-19 21:41 66 1 收藏

下面,图老师小编带您去了解一下VC++ 6.0制作QQ连连看外挂,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

图一 界面描述

  一、制作思路

得到QQ连连看窗口指针,从而得到CDC;
对每幅图片取4个点进行编码;
实现连连看的算法;
模拟鼠标消去块;
  二、部分代码

  //定义的数据
bool flagx=true; 
int point1x,point1y,point2x,point2y;//保存需要单击点的位置
struct MYCOLOR
{
  COLORREF c[4];
};
MYCOLOR tc[230];//颜色表230〉11*19
int tcnum;    //所有图片的种类
int map[19][11]; //存放每个图片的颜色索引
int r1,g1,b1,r2,b2,g2;
int pop1,pop2;
//对图形进行编码
void CZg1Dlg::OnButton3()
{
  int pnum=0;
  //////////////////
  int t[4]={15,11,15,21};//取的4个点的x相对位移
  int tt[4]={17,17,21,17};////取的4个点的y相对位移
  ////////////////////
  int result;
  tc[0].c[0]=tc[0].c[1]=tc[0].c[2]=tc[0].c[3]=7753015;
  tcnum=1;
  MYCOLOR tmp;
  CPoint p(10,180);
  CDC *pdc=myc-GetDC();
  CString hh="   编码结果: ";
  CString h;
  int myr,myg,myb,t_t,sh;
  for(int i=0;i11;i++)
  {
    p.y=180+i*35;
    for(int j=0;j19;j++)
    {
      p.x=10+j*31;
      for(int k=0;k4;k++)
        tmp.c[k]=pdc-GetPixel(p.x+t[k],p.y+tt[k]);
      sh=0;
      for(t_t=0;t_t4;t_t++)
      {
        myr=GetRValue(tmp.c[t_t]);
        myg=GetGValue(tmp.c[t_t]);
        myb=GetBValue(tmp.c[t_t]);
        if ((myr73)&&(myr45)&&(myg50)&&(myg90)&&
                     (myb103) &&(myb129))                   
          sh++;
      }
      if(sh==4)
        map[j][i]=0;
      
      else
      {
        pnum++;
        result=findcolor(tmp);
        if(result==-1)
        {
          tc[tcnum].c[0]=tmp.c[0];
          tc[tcnum].c[1]=tmp.c[1];
          tc[tcnum].c[2]=tmp.c[2];
          tc[tcnum].c[3]=tmp.c[3];
          map[j][i]=tcnum;
          tcnum++;  
        }
        else
        {
          map[j][i]=result;
        }
      }
      h.Format("%d ",map[j][i]);
      hh+=h;
      sh=0;
    }
    hh+="";
  }
  bool yy=true;
  for(int y1=0;y111;y1++)
  {
    for(int y2=0;y219;y2++)
    {
      if(tc[map[y2][y1]].c[0]==-1)
        yy=false;
    }
  }
  CString cs2;
  cs2.Format("总共有 %d 可消!",pnum);
  hh+=cs2;
  MessageBox(hh);
  for(i=0;i11;i++)
    for(int j=0;j19;j++)
    {
      mymap[i][j]=map[j][i];
    }
    
    if(!yy)
    {
      MessageBox("请重新编码!
        编码时要确保游戏窗口不要被其他窗口挡住!"); 
    }
    flagx=true;
}   

  三、结束语

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  不足之处是点击2次鼠标才能消去1对。因为这个游戏必须鼠标真正点击1次才能作到实现鼠标模拟的另外一次单击。

来源:https://www.tulaoshi.com/n/20160219/1626846.html

延伸阅读
标签: Web开发
最后成品代码写的仓促,没有容错,封装也不合理,只实现了核心部分,其他部分,喜欢添加的旧添加吧。 下面就开始我的教程(姑且算是教程吧,草草写点吧,时间太少,大家原谅) 以最高难度游戏级别作的分析。 第一步,大体分析 看看游戏主要包含哪些元素,发现3部分,一些成对的图片块,一个能盛图片块的方盘容器,一个能连接两个图块的线...
标签: 网络游戏
燃烧小宇宙《神魔大陆·暮光之城》惊喜连连看     《 神魔大陆 ·暮光之城》,为破晓而战! 完美世界旗下首款多国研发3D西方奇幻网游《神魔大陆·暮光之城》破晓公测火爆进行中,是什么让你热血沸腾、心跳加速?原来是克兰蒙多能量大爆发,登录有奖、上线有奖、升级有奖....诸多惊喜大爆炸,燃烧你的小宇宙,称霸克兰蒙多! ...
    最近天气太热,外加无聊,出于练习的目的,想到了写个盗QQ的软件,说“盗”,未免是太难听了吧,于是我给它起名为“UiQQ道”.下面就是本软件的界面部分: (图1.软件界面部分)     一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是...
《最终幻想13-2》时钟谜题水晶连连看心得分享 我在论坛看到有人说《最终幻想13-2》时钟谜题水晶连连看太难,水晶变得太快,根本来不及。 我这里有点小心得跟大家分享下,连连看我个人觉得主要的难点在于水晶变换速度快!导致刚刚发现两个一样的水晶,跑过去的时候已经变色。 而我无意间发现了一个诀窍,大家可以自己去实验一下,在你进入练练看...
一、引用 当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图。应用程序框架有多种方式来表示多视图,切分窗口是其中的方式之一。 切分窗口分为动态切分窗口和静态切分窗口,它们都是由CsplitterWnd类(MFC类库)来实现的,在这两种表示方式中,...

经验教程

234

收藏

26
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部