pygame 2048,2048游戏怎么做
2048作为一款经典的手游,一直深受大家的喜爱。本文将使用Python中的Pygame模块制作一个2048游戏的简单版本。感兴趣的朋友可以看看。
00-1010铅文本主要代码效果图
目录
你好!大家好,我是栗子,谢谢大家的支持!
新的一天,新气象,程人的日常生活开始敲、变、变三三三五四。今天,我给你一个简单的小游戏!
2048游戏3354准确的说确实是一个简单的版本!
Nah,nah,主要是担心很多朋友看不懂界面版本,所以做了这个简单的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=[]
对于list_target:中的项目
如果项!=0:
新列表追加(项目)
#追加零元素[2,2]-[2,2,0,0]
#判断原始列表中零元素的个数:list_target.count(0)
对于范围内的I(list _ target . count(0)):
新列表附加(0)
#返回新列表
返回新列表
# def 0 _ 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)
# #返回新列表
#返回新列表
#同学法
# def 0 _ to _ end(list _ target):
# #删除零元素,稍后追加
#用于list_target:中的项目
# if item==0:
# list_target.remove(0)
# list_target.append(项目)
# #返回新列表
#返回列表_目标
#测试
# 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]
定义合并(list_target):
# 1.将零元素移动到末尾[2,0,2,0]-gt
; [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内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。