• 大小: 334KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: C/C++
  • 标签: C++  连连看  游戏  

资源简介

C++版的,攻克如何在DOS环境下加载图片资源,以及连连看的算法

资源截图

代码片段和文件信息

#include “graphics.h“
#include “stdio.h“
#include “windows.h“
#include “conio.h“



#define  WITH 360
#define  HEIGHT  360
#define OK 1
#define NO 0
#define BLANK 99
#define MAX_NUM_WITH  16 //纵向目标位置数量
#define MAX_NUM_HIGHT 10 //横向目标位置数量
#define ZUO 30
#define SHANG 80
#define TEMP 88





enum { UP=‘w‘  DOWN=‘s‘  RIGHT=‘d‘  LEFT=‘a‘ }; // 键盘 输入 值





typedef struct coordinate{ //查找所得路径值,关键点  最多为四
int xy;
}Coordinate;
Coordinate S[(MAX_NUM_WITH+2)*(MAX_NUM_HIGHT+2)];
Coordinate T[(MAX_NUM_WITH+2)*(MAX_NUM_HIGHT+2)];
Coordinate R[(MAX_NUM_WITH+2)*(MAX_NUM_HIGHT+2)];
IMAGE image[36]PictureLifeblank(6060)blank2(30417)errorpic(6060);
Coordinate Path[4]life;
int chance=5;
int map[MAX_NUM_WITH+2][MAX_NUM_HIGHT+2];
MOUSEMSG Mouse;
int dengjifenshu;
int flag;
int error;
double longlife=151.0;

void Initializer_map();
void Reset_Map();
void Swap(int &aint &b) //交换两个位置的图片。为重排服务。
{
int temp;
temp=a;
a=b;
b=temp;
}

void Guan()
{
int xyx2y2;
switch(dengji)
{
case 1:break;
case 2:
{
for(x=1;x {
for(y=1;y {
x2=x;
y2=y;
if(map[x][y]==BLANK)
while(1)
{
if(map[ x2 ][ y2 ] == BLANK && y2 < MAX_NUM_HIGHT + 1 )
y2++;
else if(y2==MAX_NUM_HIGHT+1)
break;
else if(map[x2][y2]!=BLANK)
{
Swap(map[x2][y2]map[x][y]);
break;
}
else 
{
MessageBox(NULL“error“00);
break;
}
}
}
}
}
break;
case 3:
{
for(y=1;y {
for(x=1;x {
x2=x;
y2=y;
if(map[x][y]==BLANK)
while(1)
{
if(map[ x2 ][ y2 ] == BLANK && x2 < MAX_NUM_WITH + 1 )
x2++;
else if(x2==MAX_NUM_WITH+1)
break;
else if(map[x2][y2]!=BLANK)
{
Swap(map[x2][y2]map[x][y]);
break;
}
else 
{
// MessageBox(NULL“error“00);
break;
}
}
}
}
}
break;
case 4:
{
for(x=1;x {
for(y=MAX_NUM_HIGHT;y>1;y--)
{
x2=x;
y2=y;
if(map[x][y]==BLANK)
while(1)
{
if(map[ x2 ][ y2 ] == BLANK && y2 >  1 )
y2--;
else if(y2==0)
break;
else if(map[x2][y2]!=BLANK)
{
Swap(map[x2][y2]map[x][y]);
break;
}
else 
{
//MessageBox(NULL“error“00);
break;
}
}
}
}
}
break;
case 5:
{
for(y=1;y {
for(x=MAX_NUM_WITH;x>1;x--)
{
x2=x;
y2=y;
if(map[x][y]==BLANK)
while(1)
{
if(map[ x2 ][ y2 ] == BLANK && x2 > 1 )
x2--;
else if(x2==0)
break;
else if(map[x2][y2]!=BLANK)
{
Swap(map[x2][y2]map[x][y]);
break;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      16462  2013-02-16 21:31  main.cpp

     文件     262225  2013-02-16 21:32  main.exe

     文件      23227  2013-01-06 16:37  resource\life.jpg

     文件     388854  2013-01-07 11:43  resource\picture.jpg

     目录          0  2013-01-24 22:14  resource

----------- ---------  ---------- -----  ----

               690768                    5


评论

共有 条评论