怎么用Python+Pygame制作简易版2048小游戏
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048
千家信息网最后更新 2025年11月07日怎么用Python+Pygame制作简易版2048小游戏
这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版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:33def 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 00def 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小游戏"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
元素
函数
移动
二维
小游戏
简易
制作
相同
末尾
知识
一维
作业
内容
同学
控制台
篇文章
选出
四行
控制
提示
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
太原有哪些软件开发培训学校
合肥软件开发百度推广
江苏徐州多线服务器
国际性的网络安全会议
电信承载网络技术支撑面试
misc 网络安全
国家网络安全竞赛脚本
软件开发文档模板大学生
软件开发中测试盒是什么
违反网络安全法剧本
乌克兰服务器论坛
社会实践照片软件开发
电脑怎样连vpn服务器
小米查找定位服务器出错
未央区遮灰网络技术服务
黄山旱沾贡网络技术有限公司
服务器后门是木马病毒吗
电影中有关网络安全的台词
由于官方服务器问题英伟达
sql数据库语法问题
关于学生生活的数据库
旧的网络安全法
数据库取值sql语句
数据库小论文
网络安全宣传社交陷阱
vue 本地调试服务器
阿里巴巴软件开发工程师抖音
网络安全协议作业答案
微言科技世界互联网大会
网络安全歌曲大全