连连看代码.docx

上传人:b****3 文档编号:4185988 上传时间:2023-05-06 格式:DOCX 页数:25 大小:18.14KB
下载 相关 举报
连连看代码.docx_第1页
第1页 / 共25页
连连看代码.docx_第2页
第2页 / 共25页
连连看代码.docx_第3页
第3页 / 共25页
连连看代码.docx_第4页
第4页 / 共25页
连连看代码.docx_第5页
第5页 / 共25页
连连看代码.docx_第6页
第6页 / 共25页
连连看代码.docx_第7页
第7页 / 共25页
连连看代码.docx_第8页
第8页 / 共25页
连连看代码.docx_第9页
第9页 / 共25页
连连看代码.docx_第10页
第10页 / 共25页
连连看代码.docx_第11页
第11页 / 共25页
连连看代码.docx_第12页
第12页 / 共25页
连连看代码.docx_第13页
第13页 / 共25页
连连看代码.docx_第14页
第14页 / 共25页
连连看代码.docx_第15页
第15页 / 共25页
连连看代码.docx_第16页
第16页 / 共25页
连连看代码.docx_第17页
第17页 / 共25页
连连看代码.docx_第18页
第18页 / 共25页
连连看代码.docx_第19页
第19页 / 共25页
连连看代码.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

连连看代码.docx

《连连看代码.docx》由会员分享,可在线阅读,更多相关《连连看代码.docx(25页珍藏版)》请在冰点文库上搜索。

连连看代码.docx

连连看代码

#include

#include

#include"resource.h"

#include

#include

#include

#include

#include

#include

#defineROW16

#defineCOL12

#defineCorner2

#defineWidth640

#defineLength720

#defineImagL45

#defineImagW44

#pragmacomment(linker,"/subsystem:

"windows"/entry:

"mainCRTStartup"")

usingnamespacestd;

staticintcorner=0,Num;

staticintDirArr[100];

staticintstate=12;

staticintXPnum;//每关洗牌次数

staticintTime=300;

clock_tstart;

staticboolFlag;

staticboolKeyFlag;

staticboolRestart;

vectorDir,temp;

vectorPostion(0,0);

intarray[COL][ROW];

structSELECT

{

 intx;

 inty;

};

voidisCorner()

{

 corner=0;

 for(vector:

:

iteratorit=Dir.begin();Num>=2&&it!

=Dir.end()-1&&Dir.size()>=2;it++)

 {

   if(*it!

=*(it+1))

  {

   corner++;   

  }

 }

}

boollinkProcess(intx1,inty1,intx2,inty2,intx,inty)

{

 //首先把当前位置为已访问

 temp.push_back(array[x1][y1]);

 array[x1][y1]=-1; 

 if(x1==x2&&abs(y1-y2)==1||y1==y2&&abs(x1-x2)==1)

 {

  //找到目的方块

  Num++;

  if(x1

  {

   Dir.push_back(0);

   isCorner();

   if(corner<=Corner)

   {

    array[x2][y2]=-1;

    returntrue;

   }

   Dir.pop_back();

  }

  if(x1>x2)//left

  {

   Dir.push_back

(2);

   isCorner();

   if(corner<=Corner)

   {

    array[x2][y2]=-1;

    returntrue;

   }

   Dir.pop_back();

  }

  if(y1>y2)//up

  {

   Dir.push_back(3);

   isCorner();

   if(corner<=Corner)

   {

    array[x2][y2]=-1;

    returntrue;

   }

   Dir.pop_back();

  }

  if(y1

  {

   Dir.push_back

(1);

   isCorner();

   if(corner<=Corner)

   {

    array[x2][y2]=-1;

    returntrue;

   }

   Dir.pop_back();

  }

  Num--;

  vector:

:

iteratorit=temp.end();

  array[x1][y1]=*(it-1);

  temp.pop_back();

  returnfalse;

 }

 else{

  Num++;

  //否则移动到相邻的方块上继续寻找

  switch(x)

  {

  case0:

   if(y<0)

   {

    //寻找下边的

    if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

    {

     Dir.push_back

(1);

     if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();    

    }

         isCorner();

    //寻找右边的

    if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

    {

     Dir.push_back(0);

     if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

     {    

      isCorner();

      returntrue;

     }

     Dir.pop_back();

    }

         isCorner();

    //寻找左边的

    if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

    {

     Dir.push_back

(2);

     if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();    

    }

         isCorner();

    //寻找上边的

    if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

    {

     Dir.push_back(3);

     if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();

    }

         isCorner();

   }

   if(y>0)

   {

    //寻找上边的

    if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

    {

     Dir.push_back(3);

     if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();

    }

         isCorner();

    //寻找右边的

    if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

    {

     Dir.push_back(0);

     if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

     {    

      isCorner();

      returntrue;

     }

     Dir.pop_back();

    }

         isCorner();

    //寻找左边的

    if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

    {

     Dir.push_back

(2);

     if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();    

    }

         isCorner();

    //寻找下边的

    if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

    {

     Dir.push_back

(1);

     if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

     {

      isCorner();

      returntrue;

     }

     Dir.pop_back();    

    }

         isCorner();

   }

   break;

  default:

   if(x>0)

   {

    if(y<0)

    {

     //寻找下边的

     if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

     {

      Dir.push_back

(1);

      if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     //寻找左边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back

(2);

      if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     //寻找右边的

     if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back(0);

      if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

      {    

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

             isCorner();

     //寻找上边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

     {

      Dir.push_back(3);

      if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

       isCorner();

    }

    if(y==0)

    {

     //寻找左边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back

(2);

      if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

    

     //寻找下边的

     if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

     {

      Dir.push_back

(1);

      if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     //寻找上边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

     {

      Dir.push_back(3);

      if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

       isCorner();

     //寻找右边的

     if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back(0);

      if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

      {    

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

     isCorner();

    }

    if(y>0)

    {

     //寻找左边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back

(2);

      if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     

     

     

     //寻找上边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

     {

      Dir.push_back(3);

      if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

     isCorner();

     //寻找下边的

     if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

     {

      Dir.push_back

(1);

      if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     //寻找右边的

     if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back(0);

      if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

      {    

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

     isCorner();

    }

   }

   else

   {

    if(y<0)

    {

     //寻找下边的

     if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y1+1]==0&&(corner<=Corner))

     {

      Dir.push_back

(1);

      if(linkProcess(x1,y1+1,x2,y2,x1-x2,y1+1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

     //寻找右边的

     if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back(0);

      if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

      {    

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

             isCorner();

     //寻找上边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1>=0)&&(y1-1>=0)&&array[x1][y1-1]==0&&(corner<=Corner))

     {

      Dir.push_back(3);

      if(linkProcess(x1,y1-1,x2,y2,x1-x2,y1-1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

       isCorner();

     //寻找左边的

     if((y1+1<=ROW)&&(x1+1<=COL)&&(x1-1>=0)&&(y1>=0)&&array[x1-1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back

(2);

      if(linkProcess(x1-1,y1,x2,y2,x1-1-x2,y1-y2))

      {

       isCorner();

       returntrue;

      }

      Dir.pop_back();    

     }

     isCorner();

    }

    if(y==0)

    {

     //寻找右边的

     if((y1+1<=ROW)&&(x1+1<=COL-1)&&(x1>=0)&&(y1>=0)&&array[x1+1][y1]==0&&(corner<=Corner))

     {

      Dir.push_back(0);

      if(linkProcess(x1+1,y1,x2,y2,x1+1-x2,y1-y2))

      {    

       isCorner();

       returntrue;

      }

      Dir.pop_back();

     }

     isCorner();

    

     //寻找下边的

     if((y1+1<=ROW-1)&&(x1+1<=COL)&&(x1>=0)&&(y1>=0)&&array[x1][y

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2