iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python+Pygame制作简易版2048小游戏
  • 381
分享到

Python+Pygame制作简易版2048小游戏

2024-04-02 19:04:59 381人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录导语正文主要代码效果图导语 哈喽!大家好,我是栗子,感谢大家的支持! 新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今天给大家来一款简单的小游戏

导语

哈喽!大家好,我是栗子,感谢大家的支持!

新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今天给大家来一款简单的小游戏!

2048小游戏——准确的来说确实是一个简单版本的!

呐呐呐 ,主要是担心很多小伙伴儿直接上界面版本的看不懂,所以做了这款简单的2048,先看这篇简单版本的吧!

正文

为了搞懂这个游戏的规则,小编去直接下载了一款2048的小游戏,上手玩了一波!

然后.........完全停不下来!23333~

玩法: 用手指或键盘上下左右滑动,将两个相同的数字合并,例如:2 + 2 = 4, 4 + 4 = 8... 直到

1024 + 1024 = 2048!

主要代码

# 练习1:定义函数,将列表中0元素,移动到末尾。
# [2,0,2,0]   -->  [2,2,0,0]
# [0,4,2,4]   -->  [4,2,4,0]
 
# 适合零基础同学
def zero_to_end(list_target):
    # 选出非零元素 形成新列表
    # [2, 0, 2, 0] -->  [2, 2]
    new_list = []
    for item in list_target:
        if item != 0:
            new_list.append(item)
            # 追加零元素 [2, 2] --> [2,2,0,0]
    # 判断原列表零元素数量: list_target.count(0)
    for i in range(list_target.count(0)):
        new_list.append(0)
        # 返回新列表
    return new_list
 
 
# def zero_to_end(list_target):
#     # 选出非零元素 形成新列表
#     # [2, 0, 2, 0] -->  [2, 2]
#     new_list = [item for item in list_target if item != 0]
#     # 重复生成零元素 [0] * list_target.count(0)
#     new_list += [0] * list_target.count(0)
#     # 返回新列表
#     return new_list
 
# 同学方法
# def zero_to_end(list_target):
#     # 删除零元素  在后面追加
#     for item in list_target:
#         if item == 0:
#             list_target.remove(0)
#             list_target.append(item)
#     # 返回新列表
#     return list_target
 
 
# 测试
# print(zero_to_end([1, 0, 0, 2]))
# print(zero_to_end([0, 4, 2, 4]))
 
# 练习2:定义合并相同(不相邻也可以)列表元素的函数
# [2,2,0,0]    -->  [4,0,0,0]
# [2,0,2,0]    -->  [4,0,0,0]
# [2,2,2,0]    -->  [4,2,0,0]
# [4,2,0,4]    -->  [4,2,4,0]
# [0,0,2,4]    -->  [2,4,0,0]
# 提示:
# 0元素移动到末尾
# 相邻相同合并
# list[0] == list[1]
 
def merge(list_target):
    # 1.将零元素移动到末尾 [2,0,2,0]    -->  [2,2,0,0]
    list_target = zero_to_end(list_target)
    # 2. 合并
    for i in range(len(list_target) - 1):
        # 如果非零元素  相邻且相同
        if list_target[i] != 0 and list_target[i] == list_target[i + 1]:
            # 将后一个元素累加到前一个元素上
            list_target[i] += list_target[i + 1]
            # 讲后一个元素清零
            list_target[i + 1] = 0
    # 3. 将零元素移动到末尾  [2,2,2,0]    -->  [4,0,2,0]  -->[4,2,0,0]
    list_target = zero_to_end(list_target)
    return list_target
 
 
# print(merge([2,2,2,0]))
 
# 练习3:定义在控制台中绘制2048地图的函数 11:33
def print_atlas(list_atlas):
    # 00   01   02   03
    for r in range(len(list_atlas)):
        for c in range(len(list_atlas[r])):
            print(list_atlas[r][c], end=" ")
        print()
 
 
atlas01 = [
    [2, 0, 0, 2],
    [8, 0, 4, 4],
    [2, 2, 0, 4],
    [0, 2, 4, 0],
]
 
print_atlas(atlas01)
 
# 练习4:在控制台中打印第二行,与第四行元素。
#                   第一列,与第三列元素。
# 第二行
# for c in range(4):
#     print(atlas01[1][c], end=" ")
# print()
# # 第四行
# for c in range(4):
#     print(atlas01[3][c], end=" ")
# print()
# # 第一列
# for r in range(4):
#     print(atlas01[r][0])
# # 第三列
# for r in range(4):
#     print(atlas01[r][2])
 
 
# 练习5,定义向上移动的函数
# 提示:将二维列表每列元素形成一维列表,交给合并merge函数,再还给二维列表
def move_up(atlas):  # 15:30
    # 将二维列表第一列元素形成一维列表,
    # 00  10   20  30
    for c in range(4):
        list_merge = []
        for r in range(4):
            list_merge.append(atlas[r][c])
 
        # 交给合并merge函数
        list_merge = merge(list_merge)
 
        # 再还给二维列表
        for r in range(4):
            atlas[r][c] = list_merge[r]
    return atlas
 
 
# resutl = move_up(atlas01)
# print_atlas(resutl)
 
 
# 扩展作业1:定义向左移动的函数
def move_left(atlas):
    for r in range(4):
        # 从左到右依次获取行
        list_merge = []
        for c in range(4):
            # 00  01  02  03
            list_merge.append(atlas[r][c])
 
        list_merge = merge(list_merge)
 
        for c in range(4):
            atlas[r][c] = list_merge[c]
 
    return atlas
 
# resutl = move_left(atlas01)
# print_atlas(resutl)
 
 
# 扩展作业2:定义向下移动的函数
# 30   20   10  00
def move_down(atlas):
    for c in range(4):
        list_merge = []
        # 从下至上获取二维列表列元素
        for r in range(3,-1,-1):
            list_merge.append(atlas[r][c])
 
        list_merge = merge(list_merge)
 
        # 从左至右获取一维列表元素
        # 从下至上还给二维列表
        for r in range(3, -1, -1):
            atlas[r][c] = list_merge[3 -r]  # 0  1 2 3
    return atlas
 
def move_right(atlas):
    for r in range(4):
        list_merge = []
        for c in range(3, -1, -1):
            list_merge.append(atlas[r][c])
 
        list_merge=merge(list_merge)
 
        for c in range(3, -1, -1):
            atlas[r][c] = list_merge[3 - c]
    return atlas
# resutl = move_down(atlas01)
# print_atlas(resutl)
 
# 扩展作业3:定义向右移动的函数
while True:
    shell = input("请输入玩家指令wsad:")
    if shell=="w":
        move_up(atlas01)
        print_atlas(atlas01)
    elif shell=="s":
        move_down(atlas01)
        print_atlas(atlas01)
    elif shell=="a":
        move_left(atlas01)
        print_atlas(atlas01)
    elif shell=="d":
        move_right(atlas01)
        print_atlas(atlas01)
    else:
        print("输入错误")

效果图

到此这篇关于python+Pygame制作简易版2048小游戏的文章就介绍到这了,更多相关Python Pygame 2048内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python+Pygame制作简易版2048小游戏

本文链接: https://www.lsjlt.com/news/138124.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python+Pygame制作简易版2048小游戏
    目录导语正文主要代码效果图导语 哈喽!大家好,我是栗子,感谢大家的支持! 新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今天给大家来一款简单的小游戏...
    99+
    2024-04-02
  • 怎么用Python+Pygame制作简易版2048小游戏
    这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048小游戏文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • Python制作简易版2048小游戏
    目录目标效果设计开始步骤一步骤二步骤三步骤四步骤五今天我们来动手实现一款2048小游戏。这款游戏的精髓就玩家能够在于通过滑动屏幕合并相同数字,直到不能再合并为止。玩法可以说是非常的简...
    99+
    2024-04-02
  • 利用c++编写简易版2048小游戏
    目录1、程序初始化2、画图操作3、字符控制4、判断游戏结束和游戏胜利别的不多说,先上效果图 我们都知道2048是个4 4的方格,为了方便数组下表我们生成5 5的数组,只用到1~4的...
    99+
    2024-04-02
  • 基于JS制作一个简易的2048游戏
    效果图 实现代码 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-T...
    99+
    2024-04-02
  • 利用Matlab制作一款3D版2048小游戏
    其实逻辑和2维版本完全一样,就不进行详细解说了,直接看效果: 效果: 目前界面还不咋好看,期待大家的优化 还是键盘↑↓←→操作嗷 完整代...
    99+
    2024-04-02
  • java简易小游戏制作代码
    java简易小游戏制作 游戏思路:设置人物移动,游戏规则,积分系统,随机移动的怪物,游戏胜负判定,定时器。 游戏内容部分 package 代码部分; import javax.s...
    99+
    2024-04-02
  • Pygame实现简易版趣味小游戏之反弹球
    目录导语一、准备中1)游戏规则2)素材准备3)环境安装二、敲代码1)配置文件2)设置球的反弹、移动规则3)设置球拍电脑的移动等4)设置游戏开始界面5)定义游戏结束页面6)运行游戏De...
    99+
    2024-04-02
  • 怎么用Matlab制作一款3D版2048小游戏
    这篇文章主要介绍了怎么用Matlab制作一款3D版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Matlab制作一款3D版2048小游戏文章都会有所收获,下面我们一起来看看吧。效果:完整代码...
    99+
    2023-06-29
  • Python怎么实现简单2048小游戏
    这篇文章主要介绍了Python怎么实现简单2048小游戏,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简单的2048小游戏不多说,直接上图,这里并未实现GUI之类的,需要的话...
    99+
    2023-06-15
  • 怎么使用python+pygame实现简易五子棋小游戏
    本篇内容主要讲解“怎么使用python+pygame实现简易五子棋小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python+pygame实现简易五子棋小游戏”吧!tkinter库...
    99+
    2023-07-05
  • python+pygame实现简易五子棋小游戏的三种方式
    目录五子棋小游戏实现(一):  五子棋小游戏实现(二):  五子棋小游戏实现(三): tkinter库:Python的标准Tk GU...
    99+
    2023-03-23
    python 五子棋 python pygame python pygame五子棋
  • python实现简易五子棋游戏(控制台版)
    本文实例为大家分享了python实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 运行效果:  完整代码+注释:  finish = False # 游戏...
    99+
    2024-04-02
  • 使用Matlab制作简易版八分音符酱游戏
    目录效果游戏方式说明工具箱主要部分代码完整代码效果 游戏方式 给电脑插上耳机后叫喊叭 ! 说明 1)使用此代码应首先安装: Audio Toolbox工具箱,博主使用的版本为: ...
    99+
    2024-04-02
  • python实现简易猜数小游戏
    目录程序思想:具体代码:近几天闲着没事开始学了些python,看了看之前写过的代码,把写过的基础的几个程序写进博客,今天是第一个。一个可以说简单的不能再简单的小程序—&m...
    99+
    2024-04-02
  • Python+Pygame实现简单的射击小游戏
    目录前言一、运行环境二、代码展示​三、效果展示1)游戏界面2)击中效果3)+3分前言 哈喽!哈喽。栗子上线啦~ 要说什么游戏能够获得大家的喜爱? 唯射击游戏莫属。此前大火手游的《刺激...
    99+
    2024-04-02
  • Java实现三子棋小游戏简易版
    本文实例为大家分享了Java实现三子棋小游戏的具体代码,供大家参考,具体内容如下 游戏操作如图示: 原理: 主要借助3x3的二维数组 实现: 1、Main–主程序 pu...
    99+
    2024-04-02
  • 利用Python编写简易版德州扑克小游戏
    目录德州扑克简要介绍什么是德州扑克游戏规则简要介绍德州扑克游戏的python实现过程游戏初始化评选赢家游戏主题函数游戏体验与展示模块不足与后续改进德州扑克简要介绍 什么是德州扑克 德...
    99+
    2024-04-02
  • 如何用Pygame制作简单的贪吃蛇游戏
    这篇文章主要讲解了“如何用Pygame制作简单的贪吃蛇游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用Pygame制作简单的贪吃蛇游戏”吧!安装与导入使用pip install py...
    99+
    2023-07-02
  • 教你用Pygame制作简单的贪吃蛇游戏
    目录1.序言2.安装与导入3.定义后续需要的参数4.绘制蛇与食物5.游戏规则与运行6.成品展示7.完整代码总结1.序言 目前基本上软测会用到的工具或者第三方库都已经被写完,本着不要逮...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作