一个三人大游戏戏里面很多小游戏包括2048

2048游戏规则及玩法技巧攻略
日 来源:游迅网 编辑:潇洒小姐
& 是一款非常有趣的游戏,可能有些小伙伴对游戏的具体规则还不是很清楚,下面小编就来为大家做个具体的游戏规则介绍以及分享一些玩法技巧攻略,喜欢的朋友千万不要错过哦!
& 游戏规则:
& 每次控制所有方块向同一个方向,两个相同的方块撞在一起之后合并成为他们的和,每次操作之后会在空白的方格处随机生成一个2或者4,最终得到一个&2048&的方块就算胜利了。如果16个格子全部填满并且相邻的格子都不相同也就是无法移动的话,那么恭喜你,gameover。
& 这时候如果你能潇洒地关闭浏览器的话也不失为一个好主意,但是绝大多数的朋友们都会不死心地点击&try again&。根本停不下来!
& 为什么有人能地打破2048有人只能在512和1024附近挣扎呢?游戏方法和问题啊!看着微博人人朋友圈上挣扎的大家,动动君决定在这里给大家提供一点技巧(只有高级技巧部分事附截图的)。
& 首先,请明确一下你处在以下哪个阶段:
& 1.256及以下&&请遵循基本原则自己再多玩几次。
& 2.512,偶尔1024&&请从初级技巧开始看。
& 3.通常是+&&&偶尔能通关&&请直接看高级技巧。
& 基本原则:
& 1.最大数尽可能放在角落。
& 2.数字按顺序紧邻排列。
& 初级技巧总结起来是以下几条:
& 1.首先满足最大数和次大数在的那一列/行是满的。
& 2.确定主次方向。
& 3.时刻注意活动较大数(32以上)旁边要有相近的数。
& 4.不要急于&清理&。
& 1.打到512及以上的朋友们肯定都知道用蛇形排队或者直角排队的方法进行游戏,将最大数固定在角落。为了保持最大数在角落,所有最大数可能移动的方向都不能再操作了(比如选择了左上角,那么就不能向右和向下移动其他的方块),操作的灵活性会相对减少。因此,除了选定一个角以外,再固定一条边,将大的数字放这条边上,这样就可以朝三个方向移动(比如选定左上角,填满最大数右边的所有方块,就可以朝上,左,右三个方向移动了。)由于次大数也要尽量固定位置,所以我们不考虑四个方向移动(事实上三个已经比较足够了)。
& 2.以大数所在的一行为主要移动方向,平行该行的两个方向为次要移动方向。当没有明确地计划要获得某格某个数字时,优先向主要方向移动。(这样可以不费脑子地保持大数相对集中)。
& 3.这是很容易被忽略的一条,也是很多人拿不到高分的关键原因,每到局面紧张在一堆2和4中间挣扎的时候,不少人都在心里祈求好运气,其实这时候除了正确的分析和运气以外,平时的习惯才是决定性因素。由于2048这个游戏在最&紧急&的时刻只有5个机动格子,所以如果关键时刻你的32孤零零地在外面飘荡地话,死心吧,怎么挣扎都没有用的。
& 4.很多人在玩的时候喜欢把界面清理得非常整洁,能合并的方块都会尽快合并,这个可能带来两个糟糕的后果。第一种:方格排列成规则的矩形,不得不向大数行的反方向移动方块,造成队形崩溃,所以看到可以合并的方块不要急于合并,要考虑一下接下来的步骤。第二种:大数连锁合并时,很小的数被塞进大数那一行。所以连锁合并时,最好每合并一次,就把旁边的数补大一点,然后再进行下一步合并。
& 高级技巧主要探讨几种烦人情况的解决办法:
& 情况一:角落被占据。
& 实际游戏中常常出现这种情况:玩得好好的结果一不小心或者迫不得已放弃了一下阵地,结果角落被较小的数占据了。(下图1,的左上角本来是512。)
& 有的朋友可能会试图把最大数挪回角落,(如果方块很少,而且没有次大数的话,这个方法还是很好用的~),但如果格子已经比较满了,这种方法虽然也能行得通,但是为了实现这种挪动,用来&垫脚&的方块往往会变得混乱不堪,不利于游戏继续进行。所以这里我们要采取另一种做法。
& 解决办法:&&转移阵地。往次大数的方向连锁合并。
& 除了挪动,还可以通过合并生成大数。为了使过程更简单迅速地完成,选择向次大数的方向进行合并。如上图2所示,我们设法在右上角处生成一个256,然后连续右移,让1024在右上角生成。这样子不仅又保证了最大数在角落,而且由于这种有计划的生成是和原本的游戏进程相同的,所以保证了整体局势的。(上面的最终图3没有开天窗,而且数字顺序和活动性都很好。)
1 友情提示:支持键盘左右键← →翻页
2048你感兴趣吗?
看完这篇文章有何感觉?
相关攻略及下载:8-265-214-153-253-253-253-253-213-19?7-13
48小时热门评论
一周热点资讯
“四代火影”领衔,鼬、宁次の死让人泪目! 杰克赛文艾斯未进前十,第一名你可能都没见过。
7年雕刻极具工匠精神,现在连猪肉都快吃不起了! 价格炒到8万8一头,“丁家猪”让人震惊。
CopyRight&2004年-年 < 游迅网 All Rights Reserved
备案编号:沪ICP备号-62048小游戏 - 简书
<div class="fixed-btn note-fixed-download" data-toggle="popover" data-placement="left" data-html="true" data-trigger="hover" data-content=''>
写了8956字,被70人关注,获得了105个喜欢
2048小游戏
写在开头:本人初入iOS,刚刚学习OC一个月,学到的东西还比较有限,我利用这有限的知识尝试自己去写一个2048小游戏,难度极低,希望能帮助到广大新手编程爱好者,另外也借此记录下自己平时的学习。本文主要讲游戏的思路,以及编程时候的注意点,不会刻意去讲代码,游戏代码非常简单,文章底部我会附上代码连接。先上游戏展示:
设置的滑动屏幕实现移动,所以这里用鼠标代替的
首先先说下我开始打码之前做的准备工作:第一步---登录2048游戏界面观察游戏界面,了解游戏规则,思考游戏机制,整理编程思路。送上游戏链接,没玩过的朋友可以熟悉下游戏
上面的游戏名字,分数,以及新游戏,游戏信息等内容我们可以用一些简单的Label 或者Button之类的完成,如何将分数跟随游戏变化后面会说到,这里我们主要观察下这个正方形的游戏面板。游戏机制非常简单,玩家只需要通过上下左右的移动即可参与游戏,游戏规则大家玩一两把就懂,这里直接跳过。观察完毕后我把程序中要实现的功能罗列出来,然后尽量在代码中完成这些功能:1. 游戏开始的时候是在16个格子中随机出现两个2 2. 每次移动的时候,数字会挤到移动方向的那一边堆在一起3. 如果两个数字相同,会挤成一个数字,且是原来数字大小的2倍细节注意:如果同一行有3个连续的2,如2224,往右边移动的时候是最右边的两个2变成4,结果为244,并非424,并且刚刚产生的这个4并不会与最右边的的4立马合并,而是到下次往右移动的时候才会。4. 每次成功移动,会随机在一个没有数字的格子里出现一个2细节注意:若出现下图情况,往右边移动的时候如果不会有变化,则不会出现随机的2,注意加点延迟,用户体验会更好。
5. 格子的颜色会随着数字不同而变化好,这里游戏的大致规则以及思路想必大家都差不多了解了,应该没有遗漏的地方把。第二步---游戏界面与二维数组的巧妙结合第二步的标题我直接把我代码的最重要的地方说出来了,对的就是二维数组,想必聪明的读者看到这里是不是已经有一种恍然大悟的感觉了,把游戏界面转化为一个二维数组,是不是就可以为我们的开发减少了不少的难度呢,当然我也不知道这个游戏的作者的变成思路以及方法,可能也有更好的其它的方法,但我经验太少了,只想到了这一个方法,而且后来成功实现了,本文就以这种思路去进行讲解。上图所示的界面是不是现在已经变成了这样的一个二维数组 int array[4][4] = {{0,0,0,0},{0,0,0,2},{0,0,0,2},{0,0,0,0}};所以我的编程思路就是图中出现的16个格子就是16个Label,它的text属性就是对应的数字,如果数字为0,则设置它的text属性为空即可。然后根据不同的数字给Label的backgroundColor属性设置对应的颜色即可,Label的font属性注意修改一个合适的数值,不然数字变大后很可能格子显示不出来,如果你对细节要求很高,则可以让字体的大小跟随着数字大小而变化。这里建议手动创建label,并且用一个数组管理它们,这样每次根据二维数组赋值的时候,会比较方便。
第三步---格子移动的核心算法我觉得这个游戏最核心的地方就在这里了,最难也是最有价值的地方,不过大家也不用害怕,难是难在很难去想到,但是非常容易理解,废话不多说,进入正题。以往右移动为例子,这个理解后,其它四个方向的移动思路和这个都是一样的,所以搞懂一个就ok了往右移动的时候就是同一行的会发生变化,对同列之间的数没有影响,所以,我们只要会移动每一行的数据,然后嵌套到一个for循环里是不是就搞定了所有4行的了,所以我们可以将整个问题缩小到对同一行四个数字的操作,问题是不是又简单了呢,我说了不难吧。1. 先举个不需要合并的例子:以{4,0,2,0}为例子,这就是一个普通的整形数组了,右移的结果就是达成{0,0,4,2}的效果这里喜欢动脑筋的同学可以自己写这个方法,就是一个for循环里进行判断,自己想这种问题会非常有意思,这也是我觉得编程非常有意思的重要原因之一,我喜欢弄脑筋并想出办法的感觉,而不是靠记忆力硬生生的记住一个办法。如果,你没想出来,希望我的办法会有所帮助有过编程经验的同学看到这种问题基本都知道先敲个for循环是第一步,就如同冒泡排序差不多,这也算是一个排序问题,不过这可不是大小排序。因为要往右移动,所以先判断右边的数字开始第4个数字已经无法往右移动,所以进入下一步第三个数字和第四个数字比较,如果第四个位0,则交换两个数字的位置,然后第三个数字到了第四个位置无法右移,下一步第二个数字和第三个数字比较,如果第三个数子为0,交换位置,继续和第四个比,若第4个位0,交换位置,现在又无法移动了,下一步第一个数字和第二个比较,后面省略,大家应该明白了吧。我的语言表达能力比较差,可能说的不是特别清楚,这里再附上一小段打码,便于大家理解int a[4] = {0,4,0,2};int i, k,for ( i = 2; i &=0; i++){
while (k+1 &= 3
a[k+1] == 0)
temp = a[k];
a[k] = a[k+1];
}}大家写个C程序敲一敲应该是能理解的2. 接下来是一个需要合并的例子:这里以{2,0,2,4}为例子,移动后的结果应该是{0,0,4,4}这种看起来虽然要比上一种情况复杂,但是我们是不是可以把它分成两步啊,这样就会简单很多第一步就是按照不需要合并的方法进行移动,移动后的结果是{0,2,2,4}第二步就非常加单了,只需从最后一个开始判断,这个数和它左边的进行比较,如果相等,让它乘以2,让它左边的数字为0即可代码例子:for(int i=3;i &= 1; i--){
if (a[i] == a[i-1])
a[i] += a[i-1];
a[i-1] = 0;
}}刚才我说了两步,如果只写到这里还是有问题的,细心的读者估计已经发现了如果是2244按照这种方法移动得到的是不是0408啊并不是0048所以每次移动完了之后再进行一次非合并的移动方法就好了啊,所以大家写代码的时候不要忘了哦好了,到这里整个对二维数组的移动大家应该都学会了把,将到这里,游戏精髓的地方也基本就差不多了第四步---补充总结这里顺便说下随机出2的方法我的方法就是每次移动后,随机生成一个0到15到的数字,也就是第几个数字,如果这个数字不为0,则继续随机我觉得我的方法可能不是特别好,应该还有更好的办法-(void)new2{int n = arc4random()%16;do {n = arc4random()%16;} while ((a[n/4][n%4] != 0));a[n/4][n%4] = 2;//
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{//
[self reload];//
});}注释的部分是延迟把2赋值给对应的label再说下分数的问题我显示的分数就是显示数组里面的最大值最后再稍微谈谈不能移动的情况判断问题我的方法比较呆,虽然能实现但看上去就挺没技术含量的因为每次都是数组先变化再把数值给label显示的,所以每次移动之后的数组和移动前的数组比较,如果不一样再给label更新赋值。。。是的。我就是这么写的。。好了,基本上说的差不多了,打了这么多字好累啊,大家能坚持看完我这个萌新写文章也真是苦了大家了,写这个小游戏的整个过程是非常有意思的,不断的去发现bug并且去改善,最终大致实现游戏的基本功能,虽然说技术含量不高,但对于新人来说自信心方面会得到极大的提升,而且这个过程中我体验到了编程的快乐,对于我以后的学习启到了很好的影响,也希望大家在有了一定的编程基础之后尝试自己做一些东西,自己去主动学习的感觉远远高过于被动接受。最后附上代码的网盘链接
密码是rxeh祝我和大家都能慢慢从一个萌新蜕变成大牛!请大家多多留言和我交流!
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
被以下专题收入,发现更多相似内容:
如果你是程序员,或者有一颗喜欢写程序的心,喜欢分享技术干货、项目经验、程序员日常囧事等等,欢迎投稿《程序员》专题。
专题主编:小...
· 255200人关注
· 298人关注
iOS 开发练手小项目
· 15人关注
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
选择支付方式:2048那个游戏,最多可以累积到多大? | 问答 | 问答 | 果壳网 科技有意思
2048那个游戏,最多可以累积到多大?
最近在玩2048那个游戏:玩顺了以后,2048还是能够比较轻松地达到的,但是再高呢?有没有人可以证明,4096是无法实现的?——————鉴于楼里面有人提出4096已有百分百的通关方式,8192也有人成功过。还有人提出,最大可能是131072……但是楼主自己猜,要实现这个131072,运气的成分可能更大一点。所以想修改一下问题:求问,能够给出必胜策略的最大值是多少??
+ 加入我的果篮
因为新出的是2或者4因此,在脸最好的情况下16个格子最多可以合出2^17=131072======================================================这个事情是这样的为了合出一个2^(N+1)你必须有两个2^N而且必须先合出第一个,再合出第二个呃,虽然上面这句看似有些废话,但重点在于,你合第二个2^N的时候,由于第一个2^N的存在,会占用格子数同理,为了合出第二个2^N,你得在【存在一个2^N,且存在一个2^(N-1)】的情况下,合出第二个2^(N-1)因此,“最多能合出多少”这个问题,可以转化为“最多可以有多少格子被占用”于是,16个格子,前15个被所有那些“第一个2^n”占用之后,剩下刷出一个4,这就是最极端的情况此时场上最大的数是2^16=65536,把它们全合起来就得到131072
原来的证明和结论都是错的&&删掉了,求大家不要再点支持了&&
楼上 的答案太理想化了,显然是不对的。要想达到2的17次方,场上唯一可能的排列方式一串2的n次的等比数列串成一串,并且,最后要刷出4还得是制定的排列方式,比如: |256|4|128|空 |64 |8|32 |16而要想达成这种排列,上一步的最右一列从上到下必须是4 4 8 8,然而,这一排列的再上一步无论如何都推不出来了。所以,继续求解,求高级一点的解法。
Physidiot ≡ 物理白痴
4096 Done!
附上16384的截图, 这个版本的好处是可以悔棋一步, 而且有一个存档, 所以可以尽可能的尝试. 算是作弊了. 只是想尝试它的理论最大值吧. 玩到这个样子真心累, 相当于好几遍2048, 还是格子没16个的2048. 我会继续玩下去, 更新这个理论值. 希望能分析出这个理论值的瓶颈. (真心有强迫症了....)=================================现在看来, 最大的难度是时间吧, 16384用了一天的业余时间, 那32768一天, 65536三天, 131072七天, (因为凑齐32768要再一个1再三个16384......). 幸好是可以存档的~ 这还是理想化的, 因为越往后, 格子越少, 需要更多的尝试和undo, 可以考虑计算没有undo的情况下, 要玩到max的概率吧=================================最近玩到吐, 不想碰它了....从下图可以看出65536是可以达到的, 但不一定是最大的吧, 因为随机出现的数也可能是4, 所以最底下一行若是16|8|4|4, 则可以到131072, 也许可以达到吧, 还没继续玩, 真的要吐了........................................
根本无法通关啊
花了一周的业余时间终于打通关了。
自己玩了把4096已经尽力了。。。
为啥没人关注我的提问- -
准无业游民,准猥琐大叔
游戏已经升级为了……
专业听别人讲废话和不废的话者。
刷了大概3小时,一边玩一边旁听枪版的“大闹天宫”。。还有我想知道这帖什么时候变成晒成绩帖了。。
一晚上一边想事一边无脑玩法…………
做菜很厉害的设计师
我承认这个有点破坏气氛,不过……
个人最高纪录没那么多时间在研究了仅供参考呵呵
理论最高值应该是*2)+(4*2+2*4)+(8*2+4*4+2*8)+(16*2+8*4+4*8+2*16)+...+(68*4+...+4*35)因为有概率出现4(每出现一个4会少4分),所以实际上会低于这个最高的理想值。
2048升级版4096及AIpatricksong1993.github.io/4096/
通关^_^现在在玩不(zuo)死版2048
我玩到了5304
后回答问题,你也可以用以下帐号直接登录
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:}

我要回帖

更多关于 三人大游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信