怎么用Python+Pygame制作简易版2048小游戏
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048
千家信息网最后更新 2026年11月01日怎么用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安全错误
数据库的锁怎样保障安全
科技股互联网
科技信息互联网
互联网科技战争
金融科技与互联网金融
互联网科技金融公司
互联网科技公司怎么样
互联网金融科技创新
互联网女皇 腾讯科技
互联网科技网站
长亮科技互联网金融
西藏七维空间互联网科技有限公司
北京大学互联网科技怎么样
移动互联网科技公司
互联网科技大奖都有哪些公司
深圳无忧互联网科技
互联网科技融合创新
35岁以上互联网科技行业
互联网科技手抄报图片
互联网科技大佬云集
现代科技的标志之一的互联网
工业互联网科技新基建
科技互联网技术
互联网科技媒体
成都互联网科技公司
佩信高科技互联网
广州优美互联网科技
互联网保险科技创业
昆明中奇联合互联网科技
珠海东科互联网科技有限公司
互联网科技大佬云集