资源简介
怎么说呢,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
- 上一篇:CGridListCtrlEx源码vc++
- 下一篇:自己写的元胞自动机NS模型
相关资源
- 自己写的元胞自动机NS模型
- CGridListCtrlEx源码vc++
- 使用C++的二叉搜索树实现学生成绩管
- 狼吃羊C++代码
- 语音识别系统源码
- libstdc++-3.4.6-9.i386_libstdc++-3.4.6-11.x86_
- C++ Builder DLL
- windows下c实现telnet代码
- 梯度下降求函数极值C++代码
- VC++ 串口调试助手源代码
- 基于QtQuick的QCustomPlot实现
- 04737 C++程序设计 精讲 串讲 笔记 音频
- 矩阵类的运算符重载
- vc++做的考试系统c/s模式
- KCF跟踪算法c++
- ftp的C++源码实现,可以进行文件传输
- c++实现计算器
- VC++ 向指定串口发送和接收数据可十六
- 数据结构课程设计CC++描述[阮宏一][程
- vc++FTP搜索工具()
- 基于VC++的图像修复源代码
- Google C++编码规范
- 简单电梯c++实现
- AES/ECB/PKCS5Padding C++实现
- c++商品管理
- 打印出有向图中的所有环C++
- cocos2dx 3.17 2048游戏的源码
- C++中缀表达式求值
- 一个数字水印的VC++源程序,支持图片
- C++大学教程(第七版)](美)戴特尔
评论
共有 条评论