Visual C++ 6.0制作QQ连连看外挂

 
[文章信息]
作者:zhaogang123x
时间:2005-03-19
出处:vckbase
责任编辑:方舟
 
[文章导读]
得到QQ连连看窗口指针,从而得到CDC
[正文]
  下载本文源代码

  一、制作思路

  1、得到QQ连连看窗口指针,从而得到CDC;

  2、对每幅图片取4个点进行编码;

  3、实现连连看的算法;

  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=" 编码结果: /n";
 CString h;
 int myr,myg,myb,t_t,sh;
 for(int i=0;i<11;i++)
 {
  p.y=180+i*35;
  for(int j=0;j<19;j++)
  {
   p.x=10+j*31;
   for(int k=0;k<4;k++)
    tmp.c[k]=pdc->GetPixel(p.x+t[k],p.y+tt[k]);
    sh=0;
    for(t_t=0;t_t<4;t_t++)
    {
     myr=GetRValue(tmp.c[t_t]);
     myg=GetGValue(tmp.c[t_t]);
     myb=GetBValue(tmp.c[t_t]);
     if ((myr<73)&&(myr>45)&&(myg>50)&&(myg<90)&& /(myb>103) &&(myb<129))
      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+="/n";
  }
  bool yy=true;
  for(int y1=0;y1<11;y1++)
  {
   for(int y2=0;y2<19;y2++)
   {
    if(tc[map[y2][y1]].c[0]==-1)
     yy=false;
   }
  }
  CString cs2;
  cs2.Format("总共有 %d 可消!",pnum);
  hh+=cs2;
  MessageBox(hh);
  for(i=0;i<11;i++)
   for(int j=0;j<19;j++)
   {
    mymap[i][j]=map[j][i];
   }

   if(!yy)
   {
    MessageBox("请重新编码!/n
      编码时要确保游戏窗口不要被其他窗口挡住!");
   }
  flagx=true;
 }

  三、结束语

  不足之处是点击2次鼠标才能消去1对。因为这个游戏必须鼠标真正点击1次才能作到实现鼠标模拟的另外一次单击。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值