• 大小: 15.43MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-21
  • 语言: C/C++
  • 标签: 对对碰  MFC/c++  

资源简介

模拟腾讯的对对碰游戏,基本功能已经实现.有声音效果,可以按F1 F2 F3 F4 F5来运行各功能或右键菜单来体验各种功能

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “DDP.h“

DDP::DDP(void)
{
   m_side=32;//边长设置为32.
   m_Score=0;//得分初始化为0;
}

DDP::~DDP(void)
{
}
void DDP::InitDDP()
{
  m_Score=0;
  srand(time(NULL));//随机种子设置.
  memset(m_Bn016);
  memset(m_hp04);//置0提示可交换的存储空间.

  for (int i=0;i < 8;i++)
  {
  for (int j=0;j < 8;j++)
  {//从左到右从上到下初始化.对对碰矩阵
 m_Block[i][j].type = rand()%6;
 m_Block[i][j].flag=0;
  if (i-2 >= 0 || j-2 >= 0)
  {//以赋值了的方块为参考每一个新产生的方块要向左和上两个方面检测有没有三个一样的样式方块.
  CheckAble(ijtrue);
  }
  }
   }
}
bool DDP::CheckAble(int iint jbool init)
{
if (i-2 >= 0)
{
while(m_Block[i-2][j].type == m_Block[i][j].type && m_Block[i][j].type == m_Block[i-1][j].type)

if (init)//如果是在初始化.
{   //如果有一样的方块则重新赋值样式并再检测.
m_Block[i][j].type = rand()%6;
CheckAble(ijtrue);
}
else
{//如果是在玩的过程中.
            m_Block[i-2][j].flag = m_Block[i-1][j].flag = m_Block[i][j].flag = 1;
m_Bn[j][1]=m_Bn[j][1]>i?m_Bn[j][1]:i;//记录消去时最大的行数.
m_Bn[j][0]+=48;//每消去一个方块值加16此列消3个就加48以后可以据些值平滑显示方块下落的过程.
}
            return true;
}
}

if (j-2 >= 0)
{
while(m_Block[i][j-2].type == m_Block[i][j].type && m_Block[i][j].type == m_Block[i][j-1].type)
{
if (init)
{
m_Block[i][j].type = rand()%6;
CheckAble(ijtrue);
}
else
{
m_Block[i][j-2].flag = m_Block[i][j-1].flag = m_Block[i][j].flag = 1;
  m_Bn[j][1]=m_Bn[j][1]>i?m_Bn[j][1]:i; //记录各列消去时的最大行数  
  m_Bn[j-1][1]=m_Bn[j-1][1]>i?m_Bn[j-1][1]:i;
  m_Bn[j-2][1]=m_Bn[j-2][1]>i?m_Bn[j-2][1]:i;
m_Bn[j][0]+=16;m_Bn[j-1][0]+=16;m_Bn[j-2][0]+=16;//在对应各可消去的列上累加16;
}
 return true;
}
}
return false;
}

bool DDP::CanDispeled()
{
//像初始化的过程一样检测玩的过程是否有可以消去的.
bool result=false;
for (int i=0;i < 8;i++)
for (int j=0;j < 8;j++)
if (i-2 >= 0 || j-2 >= 0)
result=CheckAble(ij)||result;
for (int j=0;j<8;j++)
 if(m_Bn[j][0]>48)
 m_Bn[j][0]=(m_Bn[j][0]+96)/3;
    return result;
}

void DDP::Dispeling()
{
int ijt;
for (j=0;j<8;j++)
{
for (i=0t=0;i<8;i++)
{
if (m_Block[i][j].flag==1)
{
m_Block[i][j].flag=0;
for (int k=i;k>t;k--)
m_Block[k][j].type=m_Block[k-1][j].type;
m_Block[t++][j].type=rand()%6;
}//下落方块时就是把所有标记即将消去的方块移到最最上面同时再产生新的样式来替代它.
}
m_Score+=t;
}
}
bool DDP::ContinueAble()
{
//检验各种存在的能交换后消去的情况.
for (int i=0;i<8;i++)
{
for (int j=0;j<8;j++)
{
if ((i>0&&i<7)||(j>0&&j<7))
{
if(RALDU(ij))
return true; 
}
            if(ROLDU(ij)) return true;
}
}
  return false;
}

bool DDP::RALDU(int iint j)
{
if (i>0&&i<7)
{
if (m_Block[i-1][j].type==m_Block[i+1][j].type)
{

if (i>2)
if (m_Block[i-2][j].type==m_Block[i-1][j].type)
{
m_hp[0][0]=(byte)i; m_hp[0][1]=(byte)j;
                    m_hp[1][0]=(byte)(i+1); m_hp[1][1]=(byte)j;
return true;
}
if(i<6)
if (m_Block[i+2][j].type==m_Block[i+1]

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

     文件    1818088  2011-03-26 19:36  对对碰\Release\ddp.wav

     文件      24330  2011-03-26 19:46  对对碰\Release\faild.wav

     文件      41610  2011-03-26 19:46  对对碰\Release\sucess.wav

     文件    1746944  2011-04-17 16:07  对对碰\Release\对对碰.exe

     文件    6310912  2011-04-17 16:07  对对碰\Release\对对碰.pdb

     文件       6984  2011-04-17 16:07  对对碰\对对碰\DDP.cpp

     文件        782  2011-03-24 15:05  对对碰\对对碰\DDP.h

     文件       2741  2011-03-17 15:45  对对碰\对对碰\ReadMe.txt

     文件       6736  2011-04-17 16:07  对对碰\对对碰\Release\BuildLog.htm

     文件      41858  2011-04-17 16:07  对对碰\对对碰\Release\DDP.obj

     文件         67  2011-04-17 16:07  对对碰\对对碰\Release\mt.dep

     文件    2549269  2011-03-30 08:57  对对碰\对对碰\Release\stdafx.obj

     文件     502784  2011-04-17 16:07  对对碰\对对碰\Release\vc90.idb

     文件    1978368  2011-04-17 16:07  对对碰\对对碰\Release\vc90.pdb

     文件        381  2011-04-17 16:07  对对碰\对对碰\Release\对对碰.exe.intermediate.manifest

     文件      35415  2011-03-30 08:59  对对碰\对对碰\Release\对对碰.obj

     文件   25624576  2011-03-30 08:57  对对碰\对对碰\Release\对对碰.pch

     文件    1434820  2011-03-30 08:57  对对碰\对对碰\Release\对对碰.res

     文件      91015  2011-03-30 09:00  对对碰\对对碰\Release\对对碰Dlg.obj

     文件       6262  2011-03-21 09:34  对对碰\对对碰\res\bitmap0.bmp

     文件     291654  2011-03-21 15:25  对对碰\对对碰\res\bitmap1.bmp

     文件      22654  2011-03-21 12:02  对对碰\对对碰\res\bitmap2.bmp

     文件     823414  2011-03-21 09:34  对对碰\对对碰\res\bk.bmp

     文件       1998  2011-03-21 10:48  对对碰\对对碰\res\close.bmp

     文件    1818088  2011-03-26 19:36  对对碰\对对碰\res\ddp.wav

     文件       6126  2011-03-21 13:15  对对碰\对对碰\res\drag.bmp

     文件      24330  2011-03-26 19:46  对对碰\对对碰\res\faild.wav

     文件       2106  2011-03-21 11:10  对对碰\对对碰\res\min.bmp

     文件        358  2011-03-17 15:45  对对碰\对对碰\res\My.rc2

     文件      89094  2011-03-21 09:34  对对碰\对对碰\res\person0.bmp

............此处省略28个文件信息

评论

共有 条评论