python2048游戏设计

先添上最终完成效果图

这里写图片描述

这里写图片描述

Github链接

https://github.com/happyte/2048,这个是2048的代码仓库,同时我在CSDN上也上传了资源。希望大家指出不足之处。

2048设计思想

  • 1.大家都玩过2048,我们可以认为4*4的方块是个矩阵,开始是4*4的零矩阵。游戏开始在任意地方出现2或4,以后每次出现的数字都是2或者4。然后我们可以上下左右移动,移动的规则是例如向左动,某一行(左移只需要考虑每一行)的数比如是[2,4,0,2]向左移动,移动后变成[2,4,2,0],移动后不允许(每行或者每列,与移动方向有关)两个非0数字之间有0的存在。移动前相邻两个数相同的话会合并,例如[2,2,4,4]会合并成[4,8,0,0]

  • 2.移动合并完后,会在所有为0的位置随机挑选出一个位置填上2或者4,记住是先移动合并完后才会随机填上2或者4。

  • 3.有些时候我们发现往某个方向无法移动,例如下面这张情况:
    这里写图片描述
    向左和向下都无法移动,向左移动的话每一行移动后还是原来老样子,因为每一行任意相邻两个非0数之间不存在间隔且无法合并。向下移动的话每一列还是原来老样子,因为每一列任意相邻两个非0数之间不存在间隔且无法合并。在无法移动(即移动后还是老样子的情况下)不会在随机0位置处添加随机数2或4。只有移动后改变了矩阵的原来样子且矩阵最小值为0才会在随机0位置出添加随机数2或4。

  • 4.有两种情况移动后不会添加随机数2或4,第一种情况是上面这种情况,往一个方向移动没有效果。另外一种是矩阵都为非0数,没有位置添加随机数2或4。

  • 5.

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值