核心功能实现:

代码1(https://blog.csdn.net/hebtu666/article/details/81663648)

def left():#向左for i in range(4):#遍历每一行for j in range(3):#遍历每一行的每个元素for k in range(j+1,4):#遍历j右边的元素if l[i][k]!=0:#如果不是零,进行操作。#是零就可以遍历下个k,因为0不会对本个j和下面的k的合并产生影响。#注意2048不能跨过一个数进行合并,比如242,2和2不能合并if l[i][j]==0:#本个j是0l[i][j]=l[i][k]#把j赋值为kl[i][k]=0#k为0#其实就相当于移动了那个元素#比如:0 2 x x,无论如何先把2移到0那里,也就是2 0 x xelif l[i][j]==l[i][k]:#如果相等l[i][j]=2*l[i][j]#合并l[i][k]=0#k位置就是0break#合并后跳出循环,因为本个j位置不能再和其他位置合并了#比如:2 2 2 x,变为4 2 x 0,2 2 4 x变为4 4 x 0而不是合并为8else:break#都不为零,而且不相同,相当于2 4 x x,就算x是2也不能合并#直接排除本个j位置。def down():#向下的操作for i in range(4):for j in range(3,0,-1):for k in range(j-1,-1,-1):if l[k][i]!=0:if l[j][i]==0:l[j][i]=l[k][i]l[k][i]=0elif l[j][i]==l[k][i]:l[j][i]=2*l[j][i]l[k][i]=0breakelse:breakdef up():#向上for i in range(4):for j in range(3):for k in range(j+1,4):if l[k][i]!=0:if l[j][i]==0:l[j][i]=l[k][i]l[k][i]=0elif l[j][i]==l[k][i]:l[j][i]=2*l[j][i]l[k][i]=0breakelse:breakdef right():#向右for i in range(4):for j in range(3,0,-1):for k in range(j-1,-1,-1):if l[i][k]!=0:if l[i][j]==0:l[i][j]=l[i][k]l[i][k]=0elif l[i][j]==l[i][k]:l[i][j]=2*l[i][j]l[i][k]=0breakelse:break

代码2(https://www.jianshu.com/p/dcf6a69a633a)

编写一个基础移动(右移),其余的方向通过转置矩阵实现:

# 基础移动
def basic(board):global scoreglobal win# 以右移为基础移动for i in range(4):flag = 1while flag:flag = 0j = 2while j >= 0:if board[i, j] != 0:if board[i, j + 1] == board[i, j]:board[i, j + 1] = 2 * board[i, j]board[i, j] = 0flag = 1elif board[i, j + 1] == 0:temp = board[i, j]board[i, j] = board[i, j + 1]board[i, j + 1] = tempflag = 1j -= 1return board# 右移
def move_right(board):return basic(board)# 上移
def move_up(board):# 逆置 + 转置board = board[::-1, ::-1].Tboard = basic(board)board = board[::-1, ::-1].Treturn board# 左移
def move_left(board):# 逆置board = board[::-1, ::-1]board = basic(board)board = board[::-1, ::-1]return board# 下移
def move_down(board):# 转置board = board.Tboard = basic(board)board = board.Treturn board

2048游戏核心实现相关推荐

  1. 2048游戏-AI程序算法分析

    针对目前火爆的2048游戏,有人实现了一个AI程序,可以以较大概率(高于90%)赢得游戏,并且作者在stackoverflow上简要介绍了AI的算法框架和实现思路.但是这个回答主要集中在启发函数的选取 ...

  2. 2048游戏C语言代码

    听说2048游戏实现起来很easy! 所以今天就试了试!确实不太难,要想编的很成功,也不是太容易!有很多细节需要考虑! 下面是我自己设计的代码,估计里面会漏洞百出!希望路过大神能指点一二! #incl ...

  3. python 2048游戏的设计_Python练习:100行代码实现一个简易的2048游戏

    一.任务目标 1.一个在命令行下的2048游戏 2.主要实现功能:判断游戏是否结束:在随机空白位置生成新的数字:上下左右四个方向上进行平移数字并将能合并的数字进行合并:接收键盘输入:将数字阵列显示到命 ...

  4. Web版2048游戏制作

    写在前面 工作之余参与了<慕课网2048游戏制作>的学习视频,视频断断续续看完了,游戏也制作成功了.因为其他的事情也没来的及总结,一拖时间也就过去了,整理磁盘的时候发现了2048源码,思考 ...

  5. 【细节呈现】用Python编写2048游戏(命令行版)

    本篇博文围绕使用Python开发热门游戏2048 GAME(命令行版本) 代码未做任何优化(原生且随意).全程以面向过程.MVC的设计思想为主.开发环境是Ubuntu系统下的Pycharm 2048是 ...

  6. LibGDX_8.1: LibGDX 项目实战: 开发跨平台 2048 游戏

    本文链接: http://blog.csdn.net/xietansheng/article/details/50188259 LibGDX 基础教程(总目录) 声明: 游戏中使用到的部分图片和音频资 ...

  7. 华为鸿蒙2048小游戏,《从零开发鸿蒙小游戏App》直播答疑(包含新版2048游戏代码)...

    请到附件中下载新版2048游戏代码.最好能对该代码再做一些优化(见下述问题8),欢迎感兴趣的朋友随时跟我探讨,^_^ 问题1:如何将开发的Lite Wearable项目部署在鸿蒙手表Watch GT2 ...

  8. 2048游戏分析、讨论与扩展 - Part I - 游戏分析与讨论

    2048这个游戏从刚出开始就风靡整个世界.本技术博客的目的是想对2048涉及到相关的所有问题进行细致的分析与讨论,得到一些大家能够接受并且理解的结果.在这基础上,扩展2048的游戏性,使其变得更好玩, ...

  9. 【C++】2048游戏系列---功能模块第一稿【矩阵操作】

    2048游戏-具体功能实现第一稿[矩阵操作] (更新中--) 参考博客:https://blog.csdn.net/qq_39151563/article/details/104283217 由于放在 ...

最新文章

  1. docker 鱼龙混杂之基础操作篇
  2. Nmap扫描教程之网络基础服务DHCP服务类
  3. 4500-X启动到“511K bytes of non-volatile configuration memory”,无法继续?
  4. PHP中不用第三个变量交换两个变量的值
  5. em在聊天中是什么意思_聊天时,女人总给你发哦、嗯什么意思?这才是高情商的做法...
  6. [codevs 1343] 蚱蜢(省队选拔赛湖南)
  7. 衡量时间序列相似度的方法:从欧氏距离到DTW及其变种
  8. 不宜过分炒作第三代半导体材料弯道超车
  9. java广度优先爬虫示例,【爬虫】广度优先遍历抓取数据概述
  10. MATLAB中的微积分运算(数值符号)
  11. werkzeug routing.MapAdapter
  12. DPM2012系列之十七:如何将备份文件恢复到网络共享文件夹
  13. Anaconda基础命令总结
  14. 节点通讯共享信息的问题
  15. 基于Mac制作iPhone铃声教程,iTunes定制铃声
  16. visio导入阿里云和aws产品模具
  17. 服务器虚拟化的分类宿主模型,虚拟化分类
  18. 机器学习基础 2:矩阵乘法以及求导
  19. 【苹果鼠标滑轮失灵】解决办法
  20. python中reduce是什么意思_python-reduce函数

热门文章

  1. 从新和重新意思一样吗_“从新”和“重新”的准确意思及不同区别
  2. 在Mac下安装nvm管理node 1
  3. 从产品整体概念角度研究中国动画产品_huadingjin_新浪博客
  4. OA系统中的资产管理
  5. 幸运拼团app系统软件开发介绍案例
  6. EDI 820 付款委托书或汇款通知
  7. 记一次云服务器被密码爆破的经历——关小黑屋、改密码、改端口
  8. 【大数据】大数据相关概念
  9. h5小游戏--迷宫功能设计(HTML+JavaScript + canvas)
  10. Techniques andChallenges of Face Recognition: A Critical Review学习