Python2048算法开发

源代码的链接可以在最下面找到,源代码中的2048算法包含界面的开发,但本次关于2048算法的讲解不包含界面的开发。

这个算法是我自己思考出来的,没有借鉴其他人的代码,希望大家能从中学到一点东西。算法的整体内容非常简单,主要由两个函数构成,但是在考虑这两个函数之前是什么之前,我们先考虑,怎样让一行四列的数字,完成一次2048模式的移动。比如

[4,2,2,0]

在2048中,如果我们要移动到右侧,该怎样移动。我们可以把这个过程分为两个步骤来实现。

第一个步骤,我们把该合并的块都合并起来。即我们要得到

[4,0,4,0]

第二个步骤,我们把所有的数字都移动到右侧,不留空格。即我们要得到

[0,0,4,4]

第二个步骤非常简单,我们主要考虑的就是第一个步骤的实现。2048,一次移动只有砖块上的数字相等才能合并,从这个点出发,我们只要寻找相等的砖块即可,如果找到两个相等的砖块,且他们的中间没有任何砖块相隔,就合并起来。

在四个砖块都是未知数的情况下,我们需要知道第一个有数字的砖块(即数字不为0)的位置。

我们给出一个简单的函数用于实现它。

def _2048_FindFirstNumber(start_pos:int,row:list) -> int:
    ''
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值