2048游戏技巧,干货看这篇!Java实现益智2048小游戏,考验智力的时候到了,我就没输过! - 长篇鬼故事 - 鬼故事网(guigushi.cc)

长篇鬼故事 - 2048游戏技巧,干货看这篇!Java实现益智2048小游戏,考验智力的时候到了,我就没输过!

2022-12-19 04:07:31 阅读 :

《2048Numberpuzzlegame》是数字拼图游戏,《2048》的初始数字是基数4,由2 2组成。

在操作方面的不同则表现为一步一格的移动,变成更为爽快的一次到底。相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出「2048」这个数字方块。这款小游戏想必大家都玩过,小编经常无聊时用来打发时间。

游戏界面如下:

接下来就让我们一起来实现它吧~

总思路:两个类:Game和GameListener。

Game负责界面的实现和paint方法的重写

小编整理了一份Java学习资料,私信回复【01】,获取源码。

GameListener负责实现键盘和鼠标事件的处理。移动方法,相加方法,输赢判断和随机数的出现都要在键盘监听的方法中实现。

实现分析:要实现2048游戏,首先需要考虑2048都有些什么?

界面实现:

2048的游戏界面很简单,就是一些方格和数字。要实现这样的界面,我们可以考虑一下使用Java的绘图功能。具体来说就是使用JFrame类提供的Graphics对象进行绘图。2048界面由一个大的矩形背景和包含数字的许多小方块组成。Graphics对象的绘制矩形的方法就能实现背景和小方格的绘制。小方格内的数字则可以使用graphics的drawString方法来绘制。只需要在绘制的时候注意一下颜色就好。界面实现要拥到的类主要是JFrame类。

基本界面实现代码,不过是一些按钮之类的,没什么好说的。

方格和数字的绘制:

方格和数字的绘制同样是使用JFrame的画布对象的绘制矩形的方法实现。

Draw2048是一个接口,里面定义了关于方格绘制的相关常量,D方格边长,space方格间间隔。RD背景大矩形的边长。使用接口的好处就是使得界面的更改(如改成5*5的格子)可以更加方便的实现,提高程序的扩展性。另外界面需要不断的更新,所以要调用paint方法不断的重绘。如果直接把这里的绘制写在paint方法中,不断的重绘会使得界面一直在闪烁。这里的解决方案就是使用图片缓冲,先在图片中绘制好,在把图片一次性绘制出来,这样就不会出现界面的闪烁问题了。

移动实现:

要想让方格移动起来,可以考虑的方法就是使用画板的重绘。方格内的数字则使用一个二维数组来保存。每次移动就让数组的值发生变化就行,然后根据数组的值把数据绘制到界面上。当然玩游戏时总不能靠意念操控,我们需要有输入设备,也就是键盘。所以需要给界面加上键盘监听。当用户按下不同的键则实现不同的移动算法。值得注意的是,在监听类中编写相应的移动算法的时候要理清循环的使用和结束(尤其是break语句的使用),否则会出现各种各样的bug。移动实现是需要用到keyListener类。

下面是向上移动的实现,其他方向的移动都差不多,自己琢磨一下就好:

通过双层循环,循环每一个值,如果它为0,则可以往上移动。遍历该值所在列,找到第一个不为0的值,移动这个值(即交换两个数的值)。移动后退出内层循环,继续遍历下一个值。

数字的相加:

使用独立的算法遍历数组,在移动方向上的相邻数两个相加,然后一个置为0。这里的算法实现和移动的算法十分相像,需要注意的地方同样也是break和循环的使用。还有一个要注意的就是:数字的相加要放在数字移动之前来完成,否则会出现移动后的数字空格。

同样是遍历数组的每一个值,如果这个值不为0,则找所在行的相邻的相同的值相加,结束最内层循环。如果相邻的两个值不同,也结束最内层循环。两个break语句的使用,避免了数字之间的跳跃相加。

输赢的判断:

2048的赢的规则是,相加数字出现2048,所以只需要判断数组中是否有一个数字等于2048就行,如果有,就输出相应的获胜信息。

2048的输的规则是,界面已经满(数组已满,且无可移动,相加的数字)。个人的判断方法是全局变量count加上判断数组是否已满。count如果等于0,则表示无法移动和相加,配合数组已满的条件就能判断玩家已经输了。

随机数字的出现:

随机数字出现的条件是发生移动或者相加,所以判断然让使用count。条件成立则调用相应算法实现。

声明:本文内容来源于网络,如有侵权请联系删除

本文标题:2048游戏技巧,干货看这篇!Java实现益智2048小游戏,考验智力的时候到了,我就没输过! - 长篇鬼故事
本文地址:http://www.guigushi.cc/changpianguigushi/10064.html

相关文章

  • 美国每年校园枪击案死亡人数 2021年美国校园枪击案统计

    2005年3月21日,明尼苏达州雷德莱克县,一名16岁学生在家枪杀祖父及祖父的女友后,驾车到就读的雷德莱克中学,枪杀5名学生、一名教师和一名保安,打伤7人,随后在与警方对峙时开枪自??006年10月2日,宾夕法尼亚州兰开斯特县,一名32岁男子在镍矿村一所阿米什人学...

    2022-11-03 长篇鬼故事
  • 美宾州遭遇暴风雪66辆车连环追尾(图)

    海外网12月18日电当地时间16日晚,美国宾夕法尼亚州80号州际公路遭遇暴风雪,数十辆卡车失控打滑,造成66辆车追尾,1人死亡,多人受伤。据《纽约邮报》报道,州警方17日表示,16日下午3点左右,这条高速公路西侧发生66辆车追尾,跨度超过一英里,其中包括55辆卡车和11辆客车。据警方称,17日下午,这条道路仍然关闭,工作人...

    2022-10-15 长篇鬼故事
  • 郑爽不知道Kris是吴亦凡(图)

    搜狐娱乐讯 在新播出的某综艺中,李隽说:“Kris组他们好像差不多(完成了)。”郑爽耿直发问:“Kris是谁呀?”自己秒反应过来后开玩笑直呼:“完了,我要‘死’了。”9月20日晚,郑爽发文回应此事:“已经把Kris是谁记在本本上了。”...

    2022-10-08 长篇鬼故事
  • 王思聪变形计 王思聪参加了《变形计》? 王思聪参演《变形记》爆粗口

    王思聪参加了《变形计》王思聪参加了《变形计》王思聪参加了变形计? 王思聪参演《变形记》爆粗口:网曝王思聪参加变形计了是真的吗?他的在哪一期?其实是假的,都是特效的。王思聪年龄都不符合啊,是他无聊用来做段子玩玩的嘛,不过也由于这条新闻,王思聪遭网友恶搞,说阔少参加《变形计》农...

    2022-12-15 长篇鬼故事
  • 悬疑故事之头号嫌疑人

    【悬疑故事之头号嫌疑人】简介:楔子天色已经很晚了,窗外只有一轮朦胧的下弦月。男人站在窗前,长长地叹了一口气。忽然起了一阵冷风,男人关上窗户,折回书桌前。书桌上放着三张照片。一张是他和妻子的结婚照。妻子是个漂亮...

    2021-08-22 长篇鬼故事
  • 96a主战坦克 中国数量质量很高的主战坦克——96A

    96A型主战坦克由96型坦克改进而来,装备了新型模块化复合装甲和反应装甲。此次改造将96A的炮塔由96型坦克的梯形焊接炮塔改为时尚的楔形炮塔。此外,96A坦克还配备了更先进的火控系统和夜视系统。96A坦克装备2500多...

    2022-12-11 长篇鬼故事
  • 秦绍德个人资料简介 秦绍德人物简历

    人物基本资料一、秦绍德个人资料简介秦绍德个人资料秦绍德个人简介性别:女生肖:蛇名字拼音:Qin Shao De星座:狮子座繁体:秦紹德净身高:183.26公分网名:箱睛人物体重:121.46公斤民族:汉族最高学历:高职个人血型:A型爱吃的食物:番茄土豆炖牛腩、凉拌猪...

    2022-12-08 长篇鬼故事
  • 知名女星被曝17张全裸不雅照(张暖雅)

    知名女星被曝17张全裸不雅照(张暖雅) 说起国内的走性感路线的女星,张暖雅绝对是不得不提的那一位。张暖雅自出道以来,先后拍摄了《一路向西》等影片,凭借着自己大胆的做法以...

    2022-08-24 长篇鬼故事
  • 伊甸湖最后结局解析 伊甸湖原型真实事件发生在哪里

    伊甸湖最后结局解析 伊甸湖原型真实事件发生在哪里 《伊甸湖》的结局是,珍妮死了。 珍妮在冲破重重阻碍后,她先杀死了库珀,后来又杀死了佩吉。之后自己找了一辆车,开走...

    2022-11-14 长篇鬼故事
  • 印媒:奥巴马与米歇尔离婚并出柜的"报道"是假的

    一则“美国前总统奥巴马向前第一夫人米歇尔提出离婚并出柜”的文章在社交媒体上流传,此前,该传言已在海外社交媒体传开。《印度斯坦时报》2月5日就曾刊登辟谣文章,称这篇广为流传的“文章”是假新闻。...

    2022-11-19 长篇鬼故事
你可能感兴趣