夏商周跟2048类似的游戏于2048的游戏

||||||||||
当前位置:&&
创意数字消除游戏推荐 类似更有趣之非常6+1
《火柴人篮球》
《火柴人篮球》是火柴人系列最新之作,也是一款休闲游戏,新作保持了幽默诙谐的游戏氛围,简单容易上手,虽然没有绚丽的画面,但确实好玩的不得了,还不快来试试!
推荐指数:★★★★☆
《小小英雄:别动队》
这是一款拥有街机风格的射击游戏,我们英勇的小小特工队与疯狂的恐怖在世界各地展开了殊死较量,游戏画面和动作都非常的不错,是一款值得下载体验的游戏哦。
推荐指数:★★★★☆
《英雄传:圣杯任务》
《英雄传:圣杯任务》是一款回合制策略战棋游戏,在一个幻想的世界中,玩家将带领英雄和他的军队,在世界各地寻找遗失的神器,拯救国王和他的王国。你会踏上一段令人兴奋的旅程,有很多的战斗,强大的敌人,魔法与地牢等等。
推荐指数:★★★☆☆
已有人评论 相关内容阅读
关注前瞻微信
有什么感想,您也来说说吧!
网友评论仅供其表达个人看法,并不表明前瞻网同意其观点或证实其描述。
有什么感想,您也来说说吧!
网友评论仅供其表达个人看法,并不表明前瞻网同意其观点或证实其描述。
免责声明:
1、凡本网注明“来源:***(非前瞻网)”的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。
2、如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
征稿启事:
为了更好的发挥前瞻网资讯平台价值,促进诸位自身发展以及业务拓展,更好地为企业及个人提供服务,前瞻网诚征各类稿件,欢迎有实力机构、研究员、行业分析师、专家来稿。()
热门资讯榜
2016年,中国市场协作机器人销量2300台,同比增长10...类似2048的游戏_2048益智数字游戏_与2048类似游戏
|||||||跑跑车苹果下载站
最新合集角色扮演射击游戏赛车游戏休闲益智动作游戏体育游戏策略游戏模拟经营iphone软件iphone补丁
2048游戏一款2048游戏火了,简单的相同数字相加的玩法却有无尽的乐趣,让很多ios玩家沉浸其中。在ios上有很多和2048类似的游戏,喜欢的来跑跑车苹果网下载各种2048益智数字游戏吧。
大小:3.2M 2048游戏是一款不错的智力游戏,它玩法简单上手快,但是过关想得到2048乃至高分数可不是简单的事情哦。
大小:54.5M Threes!这款好玩的智力游戏被玩家们亲切称为小3传奇,喜欢玩数字游戏的爱动脑玩家们来跑跑车苹果网下载小3传奇ios版ipa吧。
大小:31.4M 2048 3D中文版是2048系列3D版本,支持360度无死角视角旋转和缩放,玩法也延续了之前系列作品的耐玩度,喜欢的玩家不要错过哦。
大小:8.4M 别踩白块2048是一款结合了2048和别踩白块玩法的游戏,喜欢的玩家可以来跑跑车下载哦。
大小:3.6M 2048悔棋版是2048系列带有悔棋功能的游戏版本,喜欢的玩家可以来跑跑车下载哦。
大小:9.4M 2048系列之朝代版很好玩,好玩到停不下来,喜欢休闲游戏的玩家可以来跑跑车下载哦。
大小:3.1M 2048 Pro: Number puzzle game是一款好玩的益智游戏,喜欢的玩家可以来跑跑车下载。
大小:2M 2048官方下载版本来了,这是原作者发布的版本不是山寨货哦,喜欢玩2048的来跑跑车苹果网下载吧。
大小:17M 喵星2048是一款2048类型的数字游戏,把各种数字的卖萌喵星人组合起来相加吧,喜欢的来跑跑车苹果网下载喵星2048ios版ipa吧。
大小:3.2M 2048 - Swipe for Fun!是一款不错的数字游戏,你需要用上下左右滑动来让相同数字相加变成2048就赢了。
大小:3.9M get to the 2048 tile么,这款2048 磁块是让你来移动有数字的瓷砖,然后得到2048就赢了,喜欢的来跑跑车苹果网下载吧。
大小:38.6M 51020是一款玩法简单的游戏,说白了就是5+5 = 10 , 10 +10 = 20 ,喜欢的来跑跑车苹果网下载51020 ios版ipa吧。
大小:16M 1024!玩法类似于Threes,区别在于不再是3的倍数叠加,而是2的倍数:挪移数字,相同的数字合并,冲击1024;直到无法挪移后,计算数字之和,最后得出最高分。
大小:46.2M Levels是一款类似2048的免费休闲小游戏,它不但兼具2048的经典玩法,又在简单的数字叠加外增加了敌人、宝藏的分类,增加了游戏的难度。6被浏览3239分享邀请回答74 条评论分享收藏感谢收起大大维的游戏机计划2--一个自制的类似2048的小游戏 - CSDN博客
大大维的游戏机计划2--一个自制的类似2048的小游戏
承接上篇,这几日,笔者本来打算写一个2048的,但写着写着,突然有个想法,能不能搞一个将2048和消消乐结合起来的游戏,于是,笔者便写出了如下这个小游戏。
值得一提的是,整个游戏完全由笔者独自写成,并没有参考任何网上的代码,这跟上次写贪吃蛇前学了老半天网上已有代码就显得独立了很多。看来贪食蛇的书写还是让笔者受益匪浅
定义的游戏规则如下:
1.采用类&#的游戏规则合成数字
2.加入消消乐的点选作用(类似于在PC端模拟了一下触摸屏)
3.加入地图压缩规则
4.由于游戏像2048,就叫他NEW2048吧
虽然笔者将游戏按照所想做了出来,但笔者玩了一下,可玩性并不高。甚至十分枯燥!!!
尽管如此,这个游戏还是笔者完全独立书写的第一个游戏,意义还是蛮大的,因此笔者还是在此记录一笔。日后再翻出来改改,说不定能更好玩些。
大家可以试试这个游戏,并提提意见,可能有些bug,也请指正。
以后还是接着计划写剩余的游戏,加油。
1 #include&iostream&
2 #include&string&
3 #include&cmath&
4 #include&ctime&
5 #include&cstdlib&
6 #include&conio.h&
7 using namespace
8 constexpr unsigned HIGH=<span style="color:#;
9 constexpr unsigned LENG=<span style="color:#;
10 ///当前地图状态:READY,即(),可以进行moveAndAddData()操作;WAIT,即[],可以进行chooseMapSpace()操作
11 enum state {READY,WAIT};
12 ///当前操作块的移动方向及操作:UP,上;DOWN,下;LEFT,左;RIGHT,右;CHANGE,改变状态;DEFAULT,其他
13 enum dir {UP,DOWN,LEFT,RIGHT,CHANGE,DEFAULT};
14 class MapNew2048
16 public:
MapNew2048();///构造函数,初始化数据
void printMap();///地图打印
void chooseMapSpace();///操作块移动,选择想要处理的地图块
void moveAndAddData();///移动和相加选中块的数据
///压缩地图,将有意义的数&#20540;向左(上)角靠拢
void mapSortToUp();
void mapSortToLeft();
///当一行(一列)完全为空时,随机生成一个数加入地图(这个数不能大于当前所合成的最大数的一半)
void dataCreate();
void stateChange();///状态切换函数
bool isLive();///是否存活判断
state getState();///获取当前地图状态
dir setDir();///输入操作块的移动方向
unsigned getMaxData();
string dataToPrintData(int n);///data到printData的转换函数
32 private:
unsigned data[HIGH][LENG];///设要显示数据为x,data=log2(x),空白时,data=0
string printData[HIGH][LENG];///存储规范化的输出数据
int nowX;///记录当前操作块的位置
37///记录当前地图状态,确定执行chooseMapSpace()还是moveAndAddData()
bool///记录上次moveAndAddData()操作是否成功
41 MapNew2048::MapNew2048()
for(int i=<span style="color:#; i&HIGH; i&#43;&#43;)
for(int j=<span style="color:#; j&LENG; j&#43;&#43;)
data[i][j]=<span style="color:#;
srand((unsigned)time(NULL)&#43;(<span style="color:#*i&#43;<span style="color:#*j));///确保每一次,地图的每一&#26684;生成的data都是随机的
unsigned p=rand()%<span style="color:#;
if(p!=<span style="color:#)
data[i][j]=p;
for(int i=<span style="color:#; i&HIGH; i&#43;&#43;)
for(int j=<span style="color:#; j&LENG; j&#43;&#43;)
printData[i][j]=dataToPrintData(data[i][j]);
nowX=nowY=<span style="color:#;
printData[nowX][nowY][<span style="color:#]='[';
printData[nowX][nowY][<span style="color:#]=']';
61 state MapNew2048::getState()
66 dir MapNew2048::setDir()
char keydown=getch();///读取按键
switch(keydown)
return UP;
return UP;
return DOWN;
return DOWN;
return LEFT;
return LEFT;
return RIGHT;
return RIGHT;
return CHANGE;
return DEFAULT;
<span style="color:#0
<span style="color:#1
<span style="color:#2 }
<span style="color:#3 unsigned MapNew2048::getMaxData()
<span style="color:#4 {
<span style="color:#5
unsigned temp=data[<span style="color:#][<span style="color:#];
<span style="color:#6
for(int i=<span style="color:#; i&HIGH; i&#43;&#43;)
<span style="color:#7
for(int j=<span style="color:#; j&LENG; j&#43;&#43;)
<span style="color:#8
<span style="color:#9
temp=temp&data[i][j]?temp:data[i][j];
<span style="color:#0
<span style="color:#1
<span style="color:#2 }
<span style="color:#3 void MapNew2048::printMap()
<span style="color:#4 {
<span style="color:#5
<span style="color:#6
cout&&&-----------------------------------------------------&&&
<span style="color:#7
for(int i=<span style="color:#; i&HIGH; i&#43;&#43;)
<span style="color:#8
<span style="color:#9
for(int j=<span style="color:#; j&LENG; j&#43;&#43;)
<span style="color:#0
<span style="color:#1
if(data[i][j]!=<span style="color:#)
<span style="color:#2
&&&printData[i][j]&&&
<span style="color:#3
<span style="color:#4
&&&printData[i][j][<span style="color:#]&&&
&&&printData[i][j][<span style="color:#]&&&
<span style="color:#5
<span style="color:#6
cout&&&|&&&endl&&&-----------------------------------------------------&&&
<span style="color:#7
<span style="color:#8 }
<span style="color:#9
<span style="color:#0 string MapNew2048::dataToPrintData(int n)
<span style="color:#1 {
<span style="color:#2
<span style="color:#3
int count=<span style="color:#;
<span style="color:#4
int m=pow(<span style="color:#,n);
<span style="color:#5
///str的初始化基于如下数学关系:4*4的地图下,2048游戏能合成数,理论上最大&#(2^17),即data最大为17
<span style="color:#6
string str {' ',m/<span style="color:#0000&#43;<span style="color:#,(m/<span style="color:#000)%<span style="color:#&#43;<span style="color:#,(m/<span style="color:#00)%<span style="color:#&#43;<span style="color:#,(m/<span style="color:#0)%<span style="color:#&#43;<span style="color:#,(m/<span style="color:#)%<span style="color:#&#43;<span style="color:#,m%<span style="color:#&#43;<span style="color:#,' '};
<span style="color:#7
///对冗余0的处理
<span style="color:#8
for(int i=<span style="color:#; i&<span style="color:#; i&#43;&#43;)
<span style="color:#9
<span style="color:#0
if(str[i]=='<span style="color:#')
<span style="color:#1
<span style="color:#2
count&#43;&#43;;
<span style="color:#3
str[i]=' ';
<span style="color:#4
<span style="color:#5
<span style="color:#6
<span style="color:#7
<span style="color:#8
switch(count)///&#26684;式调整
<span style="color:#9
<span style="color:#0
case <span style="color:#:///不加break会在执行完第一条语句后自动执行break
<span style="color:#1
<span style="color:#2
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#3
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#4
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#5
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#6
str[<span style="color:#]=' ';
<span style="color:#7
<span style="color:#8
<span style="color:#9
case <span style="color:#:
<span style="color:#0
<span style="color:#1
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#2
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#3
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#4
str[<span style="color:#]=' ';
<span style="color:#5
<span style="color:#6
<span style="color:#7
case <span style="color:#:
<span style="color:#8
<span style="color:#9
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#0
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#1
str[<span style="color:#]=' ';
<span style="color:#2
str[<span style="color:#]=' ';
<span style="color:#3
<span style="color:#4
<span style="color:#5
case <span style="color:#:
<span style="color:#6
<span style="color:#7
str[<span style="color:#]=str[<span style="color:#];
<span style="color:#8
str[<span style="color:#]=' ';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
<span style="color:#3 }
<span style="color:#4 void MapNew2048::chooseMapSpace()
<span style="color:#5 {
<span style="color:#6
<span style="color:#7
if(sta==WAIT)
<span style="color:#8
<span style="color:#9
printData[nowX][nowY][<span style="color:#]=printData[nowX][nowY][<span style="color:#]=' ';
<span style="color:#0
dir DIR=setDir();
<span style="color:#1
switch(DIR)
<span style="color:#2
<span style="color:#3
case LEFT:
<span style="color:#4
<span style="color:#5
<span style="color:#6
if(nowY&<span style="color:#)
<span style="color:#7
nowY=LENG-<span style="color:#;
<span style="color:#8
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#9
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#0
<span style="color:#1
<span style="color:#2
case RIGHT:
<span style="color:#3
<span style="color:#4
nowY&#43;&#43;;
<span style="color:#5
if(nowY&LENG-<span style="color:#)
<span style="color:#6
nowY=<span style="color:#;
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
<span style="color:#3
<span style="color:#4
if(nowX&<span style="color:#)
<span style="color:#5
nowX=HIGH-<span style="color:#;
<span style="color:#6
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#7
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#8
<span style="color:#9
<span style="color:#0
case DOWN:
<span style="color:#1
<span style="color:#2
nowX&#43;&#43;;
<span style="color:#3
if(nowX&HIGH-<span style="color:#)
<span style="color:#4
nowX=<span style="color:#;
<span style="color:#5
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#6
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#7
<span style="color:#8
<span style="color:#9
case CHANGE:
<span style="color:#0
stateChange();
<span style="color:#1
<span style="color:#2
case DEFAULT:
<span style="color:#3
<span style="color:#4
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#5
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#6
<span style="color:#7
<span style="color:#8
<span style="color:#9
<span style="color:#0 }
<span style="color:#1 void MapNew2048::moveAndAddData()
<span style="color:#2 {
<span style="color:#3
if(sta==READY)
<span style="color:#4
<span style="color:#5
printData[nowX][nowY][<span style="color:#]=printData[nowX][nowY][<span style="color:#]=' ';
<span style="color:#6
dir DIR=setDir();
<span style="color:#7
switch(DIR)
<span style="color:#8
<span style="color:#9
case LEFT:
<span style="color:#0
<span style="color:#1
if((data[nowX][nowY]==data[nowX][nowY-<span style="color:#])&&(nowY&<span style="color:#)&&(data[nowX][nowY-<span style="color:#]&<span style="color:#))
<span style="color:#2
<span style="color:#3
data[nowX][nowY]=<span style="color:#;
<span style="color:#4
<span style="color:#5
data[nowX][nowY]&#43;&#43;;
<span style="color:#6
printData[nowX][nowY]=dataToPrintData(data[nowX][nowY]);
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#3
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#4
<span style="color:#5
mapSortToLeft();
<span style="color:#6
mapSortToUp();
<span style="color:#7
<span style="color:#8
<span style="color:#9
case RIGHT:
<span style="color:#0
<span style="color:#1
if((data[nowX][nowY]==data[nowX][nowY&#43;<span style="color:#])&&(nowY&LENG-<span style="color:#)&&(data[nowX][nowY&#43;<span style="color:#]&<span style="color:#))
<span style="color:#2
<span style="color:#3
data[nowX][nowY]=<span style="color:#;
<span style="color:#4
nowY&#43;&#43;;
<span style="color:#5
data[nowX][nowY]&#43;&#43;;
<span style="color:#6
printData[nowX][nowY]=dataToPrintData(data[nowX][nowY]);
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#3
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#4
<span style="color:#5
mapSortToLeft();
<span style="color:#6
mapSortToUp();
<span style="color:#7
<span style="color:#8
<span style="color:#9
<span style="color:#0
<span style="color:#1
if((data[nowX][nowY]==data[nowX-<span style="color:#][nowY])&&(nowX&<span style="color:#)&&(data[nowX-<span style="color:#][nowY]&<span style="color:#))
<span style="color:#2
<span style="color:#3
data[nowX][nowY]=<span style="color:#;
<span style="color:#4
<span style="color:#5
data[nowX][nowY]&#43;&#43;;
<span style="color:#6
printData[nowX][nowY]=dataToPrintData(data[nowX][nowY]);
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#3
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#4
<span style="color:#5
mapSortToUp();
<span style="color:#6
mapSortToLeft();
<span style="color:#7
<span style="color:#8
<span style="color:#9
case DOWN:
<span style="color:#0
<span style="color:#1
if((data[nowX][nowY]==data[nowX&#43;<span style="color:#][nowY])&&(nowX&HIGH-<span style="color:#)&&(data[nowX&#43;<span style="color:#][nowY]&<span style="color:#))
<span style="color:#2
<span style="color:#3
data[nowX][nowY]=<span style="color:#;
<span style="color:#4
nowX&#43;&#43;;
<span style="color:#5
data[nowX][nowY]&#43;&#43;;
<span style="color:#6
printData[nowX][nowY]=dataToPrintData(data[nowX][nowY]);
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#3
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#4
<span style="color:#5
mapSortToUp();
<span style="color:#6
mapSortToLeft();
<span style="color:#7
<span style="color:#8
<span style="color:#9
case CHANGE:
<span style="color:#0
stateChange();
<span style="color:#1
<span style="color:#2
case DEFAULT:
<span style="color:#3
<span style="color:#4
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#5
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#6
<span style="color:#7
<span style="color:#8
<span style="color:#9
<span style="color:#0 }
<span style="color:#1
<span style="color:#2 void MapNew2048::stateChange()
<span style="color:#3 {
<span style="color:#4
if(sta==WAIT)
<span style="color:#5
<span style="color:#6
sta=READY;
<span style="color:#7
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#8
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#9
<span style="color:#0
<span style="color:#1
<span style="color:#2
<span style="color:#3
printData[nowX][nowY][<span style="color:#]='[';
<span style="color:#4
printData[nowX][nowY][<span style="color:#]=']';
<span style="color:#5
<span style="color:#6 }
<span style="color:#7
<span style="color:#8 void MapNew2048::mapSortToUp()///地图向上压缩
<span style="color:#9 {
<span style="color:#0
for(int n=<span style="color:#; n&LENG; n&#43;&#43;)
<span style="color:#1
<span style="color:#2
for(int m=<span style="color:#; m&HIGH; m&#43;&#43;)
<span style="color:#3
<span style="color:#4
if(data[m][n]==<span style="color:#&&m&HIGH-<span style="color:#)
<span style="color:#5
<span style="color:#6
for(int k=m; k&HIGH-<span style="color:#; k&#43;&#43;)
<span style="color:#7
<span style="color:#8
data[k][n]=data[k&#43;<span style="color:#][n];
<span style="color:#9
printData[k][n]=dataToPrintData(data[k][n]);
<span style="color:#0
<span style="color:#1
data[HIGH-<span style="color:#][n]=<span style="color:#;
<span style="color:#2
<span style="color:#3
<span style="color:#4
<span style="color:#5
///调整时,会将printData[nowX][nowY]的标志冲掉,需要恢复一步
<span style="color:#6
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#7
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#8 }
<span style="color:#9 void MapNew2048::mapSortToLeft()///地图向左压缩
<span style="color:#0 {
<span style="color:#1
for(int m=<span style="color:#; m&HIGH; m&#43;&#43;)
<span style="color:#2
<span style="color:#3
for(int n=<span style="color:#; n&LENG; n&#43;&#43;)
<span style="color:#4
<span style="color:#5
if(data[m][n]==<span style="color:#&&n&LENG-<span style="color:#)
<span style="color:#6
<span style="color:#7
for(int k=n; k&LENG-<span style="color:#; k&#43;&#43;)
<span style="color:#8
<span style="color:#9
data[m][k]=data[m][k&#43;<span style="color:#];
<span style="color:#0
printData[m][k]=dataToPrintData(data[m][k]);
<span style="color:#1
<span style="color:#2
data[m][LENG-<span style="color:#]=<span style="color:#;
<span style="color:#3
<span style="color:#4
<span style="color:#5
<span style="color:#6
printData[nowX][nowY][<span style="color:#]='(';
<span style="color:#7
printData[nowX][nowY][<span style="color:#]=')';
<span style="color:#8 }
<span style="color:#9
<span style="color:#0 //void MapNew2048::dataCreate()
<span style="color:#1 //{
<span style="color:#2 //
bool dataCreateFlag1=///列向生成newData标志
<span style="color:#3 //
bool dataCreateFlag2=///横向生成newData标志
<span style="color:#4 //
for(int i=0; i&HIGH; i&#43;&#43;)
<span style="color:#5 //
if(data[i][LENG-1]!=0)
<span style="color:#6 //
<span style="color:#7 //
dataCreateFlag1=
<span style="color:#8 //
<span style="color:#9 //
<span style="color:#0 //
for(int i=0; i&LENG; i&#43;&#43;)
<span style="color:#1 //
if(data[HIGH-1][i]!=0)
<span style="color:#2 //
<span style="color:#3 //
dataCreateFlag2=
<span style="color:#4 //
<span style="color:#5 //
<span style="color:#6 //
if(!dataCreateFlag1&&!dataCreateFlag2);///不用生成newData
<span style="color:#7 //
<span style="color:#8 //
<span style="color:#9 //
unsigned max=getMaxData();
<span style="color:#0 //
///创建的数不大于当前地图显示的合成的最大数的一半,newData最大为max-1
<span style="color:#1 //
srand((unsigned int)time(NULL));
<span style="color:#2 //
unsigned newData=rand()%
<span style="color:#3 //
if(newData==0)
<span style="color:#4 //
newData&#43;&#43;;
<span style="color:#5 //
/**经过上述的newData生成算法,P(newData=1)=2/(max-1),P(newData=other)=1/(max-1)**/
<span style="color:#6 //
<span style="color:#7 //
/**下面的几行语句用于确定newData在地图中的位置**/
<span style="color:#8 //
if(dataCreateFlag1&&!dataCreateFlag2)
<span style="color:#9 //
<span style="color:#0 //
srand((unsigned int)time(NULL));
<span style="color:#1 //
int a=rand()%HIGH;
<span style="color:#2 //
data[a][LENG-1]=newD
<span style="color:#3 //
printData[a][LENG-1]=dataToPrintData(data[a][LENG-1]);
<span style="color:#4 //
mapSortToLeft();///地图压缩
<span style="color:#5 //
<span style="color:#6 //
else if(!dataCreateFlag1&&dataCreateFlag2)
<span style="color:#7 //
<span style="color:#8 //
srand((unsigned int)time(NULL));
<span style="color:#9 //
int b=rand()%LENG;
<span style="color:#0 //
data[HIGH-1][b]=newD
<span style="color:#1 //
printData[HIGH-1][b]=dataToPrintData(data[HIGH-1][b]);
<span style="color:#2 //
mapSortToUp();///地图压缩
<span style="color:#3 //
<span style="color:#4 //
else if(dataCreateFlag1&&dataCreateFlag2)
<span style="color:#5 //
<span style="color:#6 //
srand((unsigned int)time(NULL));
<span style="color:#7 //
int a=rand()%HIGH;
<span style="color:#8 //
data[a][LENG-1]=newD
<span style="color:#9 //
printData[a][LENG-1]=dataToPrintData(data[a][LENG-1]);
<span style="color:#0 //
if(a==HIGH-1)
<span style="color:#1 //
<span style="color:#2 //
mapSortToLeft();///地图压缩
<span style="color:#3 //
mapSortToUp();
<span style="color:#4 //
<span style="color:#5 //
<span style="color:#6 //
mapSortToLeft();
<span style="color:#7 //
<span style="color:#8 //
<span style="color:#9 //}
<span style="color:#0
<span style="color:#1
<span style="color:#2 bool MapNew2048::isLive()
<span style="color:#3 {
<span style="color:#4
///isLive函数基于如下数学关系:反复使用向右,向下查询(最右行只向下),
<span style="color:#5
///最底行只向右,可以将他的所有邻居遍历一次
<span style="color:#6
bool liveFlag=false;
<span style="color:#7
for(int i=<span style="color:#; i&HIGH; i&#43;&#43;)
<span style="color:#8
<span style="color:#9
for(int j=<span style="color:#; j&LENG; j&#43;&#43;)
<span style="color:#0
<span style="color:#1
if(i!=HIGH-<span style="color:#&&j!=LENG-<span style="color:#&&data[i][j]!=<span style="color:#)
<span style="color:#2
<span style="color:#3
if(data[i][j]==data[i&#43;<span style="color:#][j]||data[i][j]==data[i][j&#43;<span style="color:#])
<span style="color:#4
<span style="color:#5
liveFlag=true;
<span style="color:#6
return liveF
<span style="color:#7
<span style="color:#8
<span style="color:#9
else if(i==HIGH-<span style="color:#&&j!=LENG-<span style="color:#&&data[i][j]!=<span style="color:#)
<span style="color:#0
<span style="color:#1
if(data[i][j]=data[i&#43;<span style="color:#][j])
<span style="color:#2
<span style="color:#3
liveFlag=true;
<span style="color:#4
return liveF
<span style="color:#5
<span style="color:#6
<span style="color:#7
else if(i!=HIGH-<span style="color:#&&j==LENG-<span style="color:#&&data[i][j]!=<span style="color:#)
<span style="color:#8
<span style="color:#9
if(data[i][j]=data[i][j&#43;<span style="color:#])
<span style="color:#0
<span style="color:#1
liveFlag=true;
<span style="color:#2
return liveF
<span style="color:#3
<span style="color:#4
<span style="color:#5
<span style="color:#6
<span style="color:#7
return liveF
<span style="color:#8 }
<span style="color:#9
<span style="color:#0 int main()
<span style="color:#1 {
<span style="color:#2
bool gameOverFlag=false;
<span style="color:#3
MapNew2048
<span style="color:#4
map.printMap();
<span style="color:#5
while(!gameOverFlag)
<span style="color:#6
<span style="color:#7
while(kbhit())
<span style="color:#8
<span style="color:#9
system(&cls&);
<span style="color:#0
if(map.getState()==WAIT)
<span style="color:#1
map.chooseMapSpace();
<span style="color:#2
<span style="color:#3
<span style="color:#4
map.moveAndAddData();
<span style="color:#5 //
map.dataCreate();
<span style="color:#6
<span style="color:#7
if(!map.isLive())
<span style="color:#8
gameOverFlag=true;
<span style="color:#9
map.printMap();
<span style="color:#0
<span style="color:#1
<span style="color:#2
<span style="color:#3
cout&&endl&&&The Max is:
&&&pow(<span style="color:#,map.getMaxData())&&
<span style="color:#4 }
付几张游戏截图:
本文已收录于以下专栏:
相关文章推荐
嗯,上周进行培训的时候老师布置了一个小作业,让写一个2048的小游戏。
于是就开始瞎捣鼓这玩意儿了,用C++写的。其实也挺简单的。
但是我比较菜,不会做图形界面,只有黑框。。。
这个游戏需要实现的主要...
安装Docker,在本机上跑一个‘2048’小游戏脉冲云在线免费体验
可以免费在脉冲云官网上部署一个在线的‘2048’小游戏体验一下。...
程序目标:实现2048小游戏的玩法功能,并且初步了解使用cocos2dx编写程序
计划用时:3到5天
使用引擎:cocos2dx-3.6版本
操作系统:OS
IDE:Xcode...
上一个问题的BUG已经完善,加一个小飞机刷出条件不重叠。
代码如下:import random as r
import sys
legal_x = [0,10]
legal_y = [0,25]
脚本使用DOTween做了顿帧
在场景中新建一个空物体GameController
创建一个C#脚本GameController.cs
把下面的复制进去using UnityE
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 跟2048类似的游戏 的文章

 

随机推荐