Python实例:小游戏20148

本节教程通过 2048 的小游戏快速、完整地呈现了使用 Python 语言编程的过程,将之前介绍的内容有机地结合在了一起 。2048是一款流行于手机、平板等终端设备上的益智小游戏,最早于 2014 年 3 月发行,主界面如图 1 所示。

Python实例:小游戏20148

图 1:2048 小游戏的主界面

其游戏规则是:每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,系统也会在空白的地方随机出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是 2 就是 4,玩家要想办法在这小小的 16 格范围中凑出”2048″这个数字方块。

网友总结的游戏技巧有:

  • 最大数尽可能放在角落;
  • 数字按顺序紧邻排列;
  • 首先满足最大数和次大数在的那一列/行是满的;
  • 时刻注意活动较大数(32以上)旁边要有相近的数;
  • 以大数所在的一行为主要移动方向;
  • 不要急于”清理桌面”;
  • 根据游戏规则,可以整理出游戏的流程,如图 2 所示。

Python实例:小游戏20148

图 2:2048 小游戏的主要流程

根据流程图,可以将整个游戏程序大致分为三个部分:

  1. 程序初始化;
  2. 判断用户输入;
  3. 进入游戏主循环。

其中第三部分可以继续细分为以下三个部分:

  1. 等待操作;
  2. 判断操作并处理;
  3. 重新开始或退出。

为了游戏界面效果美观,这里使用了 pygame 库。安装 pygame 库的命令如下:


1.  pip install pygame

安装过程如图 3 所示。

Python实例:小游戏20148

图 3:pygame 库安装过程

下面我们继续关注 2048 小游戏。首先来看程序初始化,这里主要完成以下工作:导入所需模块,初始化棋盘和窗口界面,初始化各种组件和变量。根据游戏规则,棋盘大小为 4×4 共 16 格的正方形棋盘,简便起见我们使用二维列表存储每个格子里的数字。
最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

定义棋盘并初始化每个格子存储的数字的语句如下:

board = [[0, 0, 0, 0]
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]

以下语句用于初始化窗口的相关属性:


1.  #每个格子的边长,单位:像素(下同)
2.  box_size = 50
3.  #格子之间的间距
4.  box_gap = 5
5.  #中心棋盘区域上边缘离窗口顶部的距离
6.  top_of_window = 100
7.  #中心棋盘区域下边缘离窗口底部的距离
8.  bottom_of_window = 30
9.  #中心棋盘区域左边缘离窗口左边的距离
10.  left_of_window = 2 0
11.  #窗口宽度
12.  window_width = box_size * 4 + box_gap * 5 + left_of_window * 2
13.  #窗口高度
14.  window_height = top_of_window + box_gap * 5 + box_size * 4 + left_of_window + bottom_of_window
15.  #初始化窗口
16.  window = pygame.display.set_mode((window_width, window_height), 0, 32)
17.  #窗口标题
18.  pygame.display.set_caption("20488&#

Original: https://blog.csdn.net/MC_XY/article/details/120157962
Author: 梦魇java
Title: Python实例:小游戏20148

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/784200/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pandas写入Excel文件如何避免覆盖已有Sheet

    Pandas是Python处理数据最好用的工具包。处理好了的数据,也可以写回到原来的或新的Excel文件。但如果处理结果要写入到多张表,就要注意了。 用Pandas把DataFra…

    Python 2023年8月18日
    048
  • Flask框架-知识点整理

    [ Flask_是一个轻量级的Python Web _框架,它具有简洁灵活、易扩展的特点。以下是 Flask 框架_知识体系的主要内容: 1. 路由和视图函数:掌握使用装饰器定义路…

    Python 2023年8月10日
    044
  • 【pyspark】DataFrame基础操作(二)

    介绍一下 pyspark 的 DataFrame 基础操作。 一、选择和访问数据 PySpark DataFrame 是惰性计算的,简单地选择一列不会触发计算,但它会返回一个 Co…

    Python 2023年8月20日
    053
  • pandas数据分析之分组聚合

    pandas数据分析之分组聚合 * – 一、创建分组对象进行分组 – + 1、分组键为列名 + 2、分组键为字典或Series + 3、分组键为函数 &#8…

    Python 2023年8月16日
    073
  • django使用celery及踩坑

    项目结构 ; 项目依赖 celery==5.1.2 Django==3.2.12 django-celery-beat==2.2.1 django-celery-results==…

    Python 2023年8月4日
    039
  • 数据可视化报告

    文章目录 2.1 股票跌幅前10位股票的条形图 2.2 各年龄层中男性和女性参会人数累计柱状图 2.3 近四届全国人大代表的性别比例折线图 2.4 华夫饼图 2.5 矩形树图 im…

    Python 2023年8月8日
    066
  • 【python】Flask之模板引擎

    一、模板介绍 1.1 视图函数 视图函数的主要作用是生成请求的响应,实际上视图函数有两个作用: 处理业务逻辑 返回响应内容 在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的…

    Python 2023年8月12日
    052
  • Python在服务端/客户端实现GET POST请求

    网上关于GET POST请求的文章很多,但是感觉挺乱的。所以这里提供用Flask实现GET POST最简单的server端和client端代码。 服务端代码: import jso…

    Python 2023年8月14日
    052
  • 【Python】10个有意思的项目创意

    Original: https://www.cnblogs.com/123456feng/p/16068908.htmlAuthor: 蚂蚁ailingTitle: 【Python…

    Python 2023年5月24日
    075
  • 什么是机器学习回归算法?【线性回归、正规方程、梯度下降、正则化、欠拟合和过拟合、岭回归】

    1 、线性回归 1.1 线性回归应用场景 房价预测 销售额度预测 金融:贷款额度预测、利用线性回归以及系数分析因子 1.2 什么是线性回归 1.2.1定义与公式 线性回归(Line…

    Python 2023年10月29日
    036
  • OpenAI ChatGPT注册试用全攻略

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月15日
    038
  • 深入浅出——零基础一文读懂DeepSORT(原理篇)

    Intro 本文是笔者对DeepSORT算法学习的阶段性总结,基于笔者接触到的所有开源学习资料,辅以个人理解进行重新编排而成,力求清晰,使非专业的读者也能迅速对该算法原理有较为透彻…

    Python 2023年10月10日
    035
  • 计算机视觉1->opencv4学习指南1 | 环境配置与例程

    opencv虽然很有名,但是自己一直没怎么玩过,暑假的时候使用深度相机做项目,但负责的不是代码模块,也只是配好了环境,没有继续了解图像处理。最近电子实习老师有教这个东西,但是身边不…

    Python 2023年10月26日
    032
  • 面板数据熵值法-Python

    面板数据数据熵值法公式-基于Python 更新时间:2022年11月9日更新内容:已解决运行代码时出现下述问题: ; 一、理论基础 本文通过王晓红等(2021)中所使用到的面板数据…

    Python 2023年8月17日
    073
  • 既然有MySQL了,为什么还要有MongoDB?

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年11月4日
    046
  • Django找不到模板(templates)文件的解决办法

    只是做个记录 Djang遇到找不到模板HTML文件的的问题,网上找到的很多解决办法都是修改 把settings.py->”templates”-&gt…

    Python 2023年8月4日
    047
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球