python游戏代码讲解(菜鸟也能用Python写一个2048游戏)
python游戏代码讲解(菜鸟也能用Python写一个2048游戏)
2024-11-25 03:46:36  作者:身處名利場  网址:https://m.xinb2b.cn/life/xki295902.html

原创: 菜鸟哥 菜鸟学Python


想必大家对于小游戏2048应该都听说过吧,这款益智类的小游戏,虽说很简单,但是想要玩的很好,也需要一定的技巧,今天看到了一个大神用Python写了一个2048的小游戏,但是没有中文的解释,而且没有帮助文档,因此,小编就在此基础上,对程序做了改进,对于程序加入了中文的注释,希望能从菜鸟的角度,通俗易懂的给大家讲讲!

1游戏界面设计

下图展示的是游戏的初始化界面,有了游戏界面作为一个直观的了解,方便大家对于程序的理解:


游戏的初始化,部分程序如下图所示:


程序首先是定义了整体的背景,包括了背景的大小,颜色;然后是对于帮助文档按键的定义,对于每一个小的方格,程序对于其位置颜色和每个小方格的内容也进行了定义;接下来,程序在init_matrix函数中,定义了一个4x4大小的矩阵,矩阵的值都是0,矩阵的每一个值都对应着一个小方格里面的内容。

初始化时,在任意的两个位置中,添加数字2进行显示,而对于值为0的方格则不进行展示,完成上述的操作后,便得到了我们图一的展示界面。

2游戏的操作部分

1).界面的初始化完成后 ,接下来就是如何运行程序了

这里使用的时tkinter下的键盘事件绑定,通过监测键盘的动作,tkinter可以得到我们到底时进行的上下左右哪种操作:


例如up函数,程序定义了transpose、reverse、cover_up和merge等函数,来实现“up”的操作,当我们执行up函数时,所有的数字都会填满上面的所有方格,如下图所示:


上图中,经过up函数后,位于下方的数字都全部移动到上方,同时产生了新的数字。其他的操作也是相似的操作。大家可以按照up函数的操作,来亲自手写演示一遍,体会就会更加的明显。

2).提供悔棋功能

程序还给大家提供了返回前面操作的步骤,如果大家想“悔棋”的话,只需要按“b”键就可以回到前面的游戏界面重新操作,这一部分的程序如下图所示。


上述的程序中,首先需要确定我们可以返回的步数是大于1的,然后返回我们的上一步游戏界面,如果大家想连续返回的话,只需要重复的按“b”键即可达到。


3整个程序设计思路

那程序是如何实现整个游戏的逻辑呢?下面我把整个的思路给大家理一下:

1).先说重点核心就是在key_down函数里,由于程序利用tkinter实现了监听键盘,所以我们每按一次键盘,程序都会执行一次key_down函数,我们只需要清楚这个函数,就可以搞清楚游戏的流程和机制。

2).程序会先判断我们是否是进行了返回上一步的操作,如果是的话,就返回上一步,如果不是的话,程序就判断我们进行的是什么操作(上下左右);

3).然后对于我们的矩阵进行上下左右的操作,程序将在矩阵中剩余的空白处,随机添加数字2,并将添加后的矩阵放入到历史矩阵当中;

4).接着更新方格进行显示。当我们执行完按键操作后,就是判断游戏的状态,在game_state函数里,我们定义了游戏的胜利和失败的条件,并在达到条件的情况下判断游戏胜利或者是失败。如果两种游戏状态都没有达到时,我们便可以接着按键,执行下一次的key_down函数;

5).最后我们在运行程序的时候,便达到了玩游戏时的效果,通过不断的按键,来改变方格中的数字分布,并在达到胜利或者失败条件时,对游戏者进行提示。

以上就是小编与大家分享的2048小游戏,大家赶快动起手来练习吧。

最后,我自己是一名从事了多年开发的Python老程序员,辞职目前在做自己的Python私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的Python学习干货,可以送给每一位喜欢Python的小伙伴,想要获取的可以关注我的头条号并在后台私信我:01,即可免费获取。

  • 八寸六寸双层千层蛋糕(6寸千层蛋糕超级详细)
  • 2024-11-256寸千层蛋糕超级详细6寸千层蛋糕(超级详细)8.5综合评分虽然方子写了是6寸,但是我还是用8寸的平底锅因为我要样子好看,把边边切掉,这个方子可以摊出18张饼皮,一般外面卖的戚风蛋糕的饼皮在12张左右,所以这个方子如果你是。
  • 苏轼与王安石的十首诗对比 苏轼与王安石的宋代文坛领袖之争
  • 2024-11-25苏轼与王安石的十首诗对比 苏轼与王安石的宋代文坛领袖之争欧阳修是文坛宗师,不只是因为自身创作成就突出,也在于倡导改变文风,也在于他奖掖后进,提拔、培养了很多人,包括王安石、曾巩、苏氏兄弟,形成轰轰烈烈的古文运动在欧阳修之后,苏轼成为第二个文坛领袖,但其实在。
  • 铜川路水产市场(上海铜川水产新市场)
  • 2024-11-25上海铜川水产新市场本文字数:2075字阅读时间:约5分钟曾经有很多老上海们都喜欢周末去铜川路水产市场买黄鱼等时令海鲜几年前,铜川路水产市场正式完成了它的使命在它的原址一个新的“城市副中心”正在崛起这就是“真如城市副中心。
  • 番薯和红薯一样吗(番薯和红薯是一样的吗)
  • 2024-11-25番薯和红薯是一样的吗从地域上讲,北方的红薯也叫地瓜,而在南方,红薯和地瓜是两种不用的食物红薯营养价值丰富,老少咸宜,秋末冬初大量上市,价格亲民红薯中含有大量膳食纤维,在肠道内无法被消化吸收,可以刺激肠道,增强蠕动,促进排。
  • 别人对你说人艰不拆是什么意思(你懂得这句话的意义吗)
  • 2024-11-25你懂得这句话的意义吗人艰不拆这个成语本是网上流行语,意思是这个人已经过的很艰难了你就不要再拆穿了充满挖苦自讽和无奈的意味但是它现在已经成为越来越多人的心声,大家喜欢用它来形容自己不堪的处境有人说当下是一个最好的时代,有人。
  • 奔驰E300和CLS300谁更合适
  • 2024-11-25奔驰E300和CLS300谁更合适cls300更合适一些奔驰cls300属于进口奔驰公司的较跑车型,奔驰e300属于北京奔驰生产的一款畅销型c级豪华轿车,这两款车对比的话,定是cls300要好一些,它的对标车型是奥迪的a7,奔驰e30。
  • 日式春喜烧仙草(初雪寿喜烧)
  • 2024-11-25初雪寿喜烧一到冬天,热气就无所遁形说话时哈出的白气,走进暖气房里眼镜上的雾蒙蒙,还有红辣鲜香的锅物里升腾起的扑扑白烟……愈是稀少,愈是清晰一点点热便足以暖到心坎里这天儿气里,吃啥都必须得是热腾腾的相比起上桌就凉。
  • 跑男7第二期收视率(近日王牌7将连播五期直至收官)
  • 2024-11-25近日王牌7将连播五期直至收官众所周知,浙江卫视两大综艺《王牌对王牌》与《跑男》,区别就在于《王牌》是室内游戏,而《跑男》是室外游戏,另外两个节目都会邀请飞行嘉宾来吸引观众《王牌》虽然是比《跑男》晚播出两年,但是热度也是跟《跑男》。
  • 徕卡d-lux6限量版(比普通版贵5000元徕卡D-LUX)
  • 2024-11-25比普通版贵5000元徕卡D-LUX8月19日,徕卡发布了旗下便携式数码相机D-LUX7的“ABATHINGAPExSTASH”特别版本,售价15800元人民币据悉,此次特别版本由徕卡与街头服饰品牌BAPE及美国涂鸦艺术家STASH联手。
  • 莲藕排骨大枣功效(快来这里了解下具体功效)
  • 2024-11-25快来这里了解下具体功效提高免疫力:红枣能够帮助提高人体免疫力,其中含有较多的蛋白质、维生素、微量元素、氨基酸等等营养成分,适合体弱、老年人食用以增强体质强健胃粘膜:莲藕中的维生素C和蛋白质一起发挥效用,就可以结合各种细胞,。
  • 邓伦跳的舞蹈(邓伦女儿王亭文凌晨晒舞蹈)
  • 2024-11-25邓伦女儿王亭文凌晨晒舞蹈12月17日凌晨,童星王文亭在社交平台晒出一段舞蹈视频引发网友关注视频中王亭文身穿红色外套黑色休闲服裤,在一辆黄色小车前舞蹈,因舞蹈动作娴熟,笑容甜美而得到网友好评,不少网友留言点赞王亭文跳得很好,非。