怎么用Python+Pygame制作简易版2048小游戏
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要介绍了怎么用Python+Pygame制作简易版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python+Pygame制作简易版2048
千家信息网最后更新 2025年01月16日怎么用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安全错误
数据库的锁怎样保障安全
什么是周六福网络安全员
域控服务器无法管理计算机
网络安全考研有哪些学校招生
学软件开发的用什么笔记本
网络安全证主要考什么
云南服务器基地云空间
网络安全话剧演出
安徽net软件开发需要多少钱
正规戴尔服务器优质服务
加强通信网络安全管理
网络技术交流案例
web端访问小程序数据库
南通APP软件开发人才招聘
数据库多表头怎么用
经常连不上r星服务器
无线网络安全与防护论文
关于网络安全知识小学生的
小学生网络安全知识教育答题
网络安全建设进行时
信息网络安全1000字论文
哈尔滨立体库软件开发
cf挂房手机服务器
学网络技术就业
美军网络安全千疮百孔
法院网络安全巡检简报
网络技术专业全民
飞行的网络安全
数据库判断一个数的正负
网络安全 新三板
网络安全演讲比赛背景图片