• 大小: 492KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: 2048  C++  easyX  游戏  

资源简介

怎么说呢,2048,土方法写的,不过尝试使用类进行编写。凑够20个字就行了。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include  
using namespace std;

class game_2048
{
public:
game_2048()
{
arr[4][4];
memset(arr0sizeof(int)*4*4);
num_rand();
num_rand();
count=0;
score=0;
//initgraph(640 480SHOWCONSOLE); 
initgraph(550 400); 
game_print();
}

void num_rand()
{
srand(time(NULL));
int num = rand()%16;
int ok_set=0;
while(!ok_set)
{
if(arr[num/4][num%4]==0)
{
arr[num/4][num%4]=2;
ok_set = 1;
}
else
{
num++;
}
}
}
void a_word()
{
ij_change();
ii_change();
s_word();
ii_change();
ij_change();
}
void s_word()
{
if(word())
{
num_rand();
}
else
{
//check();
}
}
void d_word()
{
ij_change();
s_word();
ij_change();
}
void w_word()
{
ii_change();
s_word();
ii_change();
}
int  count_num()
{
int t=0;
for(int i = 0 ; i < 40 ; i++)
{
if(arr[i/4][i%4]!=0) t++;
}
return t;
}
int word()
{
int mov = 0;
int clr = 0;
for(int i = 0 ; i < 4 ; i++)
{
int pos=3;
int num_count=0;
for(int j = 3 ; j >=0 ; j--)
{
if(arr[j][i]!=0)
{
int temp;
if(pos!=j)
{
temp = arr[j][i];
arr[j][i] = arr[pos][i];
arr[pos][i] = temp;
mov = 1;
}
pos--;
num_count++;
}
}
switch(num_count)
{
case 0:
case 1:
break;
case 2:
if(arr[3][i]==arr[2][i])
{
arr[3][i]=2 * arr[2][i];
arr[2][i]=0;
score+=arr[3][i];
clr=1;
}
break;
case 3:
if(arr[3][i]==arr[2][i])
{
arr[3][i]=2 * arr[2][i];
arr[2][i]=arr[1][i];
arr[1][i]=0;
score+=arr[3][i];
clr=1;
}
else if(arr[2][i]==arr[1][i])
{
arr[2][i]=2 * arr[1][i];
arr[1][i]=0;
score+=arr[2][i];
clr=1;
}
break;
case 4:
if(arr[3][i]==arr[2][i]&&arr[1][i]==arr[0][i])
{
arr[3][i]=2 * arr[2][i];
arr[2][i]=0;
score+=arr[3][i];
arr[2][i]=2* arr[1][i];
arr[1][i]=0;
arr[0][i]=0;
score+=arr[2][i];
clr=1;
}
else if(arr[3][i]==arr[2][i])
{
arr[3][i]=2 * arr[2][i];
arr[2][i]=arr[1][i];
arr[1][i]=arr[0][i];
arr[0][i]=0;
score+=arr[3][i];
clr=1;
}
else if(arr[2][i]==arr[1][i])
{
arr[2][i]=2 * arr[1][i];
arr[1][i]=arr[0][i];
arr[0][i]=0;
score+=arr[2][i];
clr=1;
}
else if(arr[1][i]==arr[0][i])
{
arr[1][i]=2 * arr[0][i];
arr[0][i]=0;
score+=arr[1][i];
clr=1;
}
break;
}

return mov||clr;

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

     文件      13385  2016-01-15 15:09  a.png

     文件       2289  2016-01-15 15:09  b.png

     文件      67646  2016-01-15 15:15  ico.ico

     文件      85771  2015-10-30 12:16  index.jpg

     文件        178  2016-01-15 15:14  Readme.txt

     文件     708608  2016-01-15 15:07  2048(GUI).exe

     文件     947200  2016-01-15 14:56  2048(控制台).exe

     文件       5861  2016-01-15 15:07  2048.cpp

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

              1830938                    8


评论

共有 条评论