【新手向】用Python写简单的2048小游戏

前些天在b站上看到有个大佬用c写了一个2048小游戏,我便一下来了兴趣。心想着,我貌似也能用Python来整一波,话不多说,直接开搞。

2048的游戏规则
2048游戏共有16个格子,初始时会有两个格子上安放了两个数字2,每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢外,系统也会在空白的地方随即出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。系统给予的数字方块不是2就是4,玩家要想办法在这小小的16格范围中凑出“2048”这个数字方块

咱们可以从游戏规则里面一步一步来:

第一步:

2048游戏共有16个格子,初始时会有两个格子上安放了两个数字2
这一步比较简单,我们可以建立一个二维数组,然后随机在上面放上两个数字2
用代码就可以这么写:

list1=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
def map1(map_list):
    count=0
    while(count<2):
        a=r.randint(0,3)
        b=r.randint(0,3)
        if map_list[a][b]==0:
            map_list[a][b]=2
            count+=1

——————————————————————————————————————————

——————————————————————————————————————————
第二步

每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,相同数字的方块在靠拢、相撞时会相加。

这一步就是这个游戏里,比较复杂的地方了。这里涉及到两种运算,我称之为,去0运算和合并运算

去0运算:
我们先从最简单的2—0开始写:
开始是这样:
在这里插入图片描述

我们要假设要进行上滑操作,使其变成这样:
在这里插入图片描述
这里我们可以看到在(2,1)的地方的2,上滑到了(1,1),那么我们来写代码:

def qu0(dire,list1):#去0运算,w,a,s,d分别表示各个方向
       
        if (dire=="w" or dire=="W"):
        #h表示行,s表示列
        for s in range(4):
            for h in [3,2,1]:
              elif(list1[h-1][s]==0):
                    list1[h-1][s]=list1[h][s]
                    list1[h][s]=0
        
         if 
  • 25
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值