2048 核心算法
核心:去零操作,相邻相同则合并,
向左移动:从左向右依次取出每行数据
向右移动:从右向左依次取出每行数据
向上移动:方阵转置后向左移动再转置
向下移动:方阵转置后向右移动再转置

list_merge = [2,0,2,0]

将0元素移动到列的末尾

def zero_to_end():  """把list_merge中的0元素移动到末尾,其他元素相对位置不变"""for i in range(len(list_merge) - 1, -1, -1):if list_merge[i] == 0:list_merge.append(0)del list_merge[i]

将相同元素向左合并

def merge_same_element():"""将list_merge中相同元素进行向左合并"""# 调用0元素向右移动函数zero_to_end()# 相邻相同的元素相加for i in range(len(list_merge) - 1):if list_merge[i] == list_merge[i + 1]:list_merge[i] *= 2# 删除后一个的元素del list_merge[i + 1]# 在后面补0list_merge.append(0)

模拟界面

map = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]
]

向左移动

def map_move_left():"""将map向左移动"""for line in map:# 修改全局变量global list_mergelist_merge = line# 调用合同相同元素函数merge_same_element()

向右移动

def map_move_right():"""将map向右移动"""global list_mergefor line in map:list_merge = line[::-1]# 调用合同相同元素函数merge_same_element()# 反向取出,反向放回line[::-1] = list_merge

定义矩阵转置方法

def matrix_transpose():"""矩阵转置"""global maplist_result = []for c in range(len(map)):line = []for r in range(len(map)):line.append(map[r][c])list_result.append(line)map = list_result

向上移动

def map_move_up():"""将map向上移动"""# 调用矩阵转置函数,向上变成向左matrix_transpose()# 调用向左移动函数map_move_left()# 再次调用矩阵转置matrix_transpose()

向下移动

def map_move_down():"""将map向下移动"""# 调用矩阵转置函数,向下变成向右matrix_transpose()# 调用向右移动函数map_move_right()# 再次调用矩阵转置matrix_transpose()

Python_2048核心算法相关推荐

  1. 阿里资深AI工程师教你逐个击破机器学习核心算法

    01 近年来,随着 Google 的 AlphaGo 打败韩国围棋棋手李世乭之后,机器学习尤其是深度学习的热潮席卷了整个 IT 界. 所有的互联网公司,尤其是 Google 微软,百度,腾讯等巨头,无 ...

  2. 核心算法缺位,人工智能发展面临“卡脖子”窘境

    http://www.xinhuanet.com/politics/2019-04/30/c_1124435131.htm "徐匡迪之问"引发业界共鸣-- 核心算法缺位,人工智能发 ...

  3. SQL关键字转换大写核心算法实现

    1 不跟你多废话 上代码! /// <summary>/// SQL关键字转换器/// </summary>public class SqlConverter : IKeywo ...

  4. x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()

    x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode() 宏块编码函数x264_macroblock_encode()是完成变换与量化的主要函数,而x264_m ...

  5. 【视频课】零基础免费38课时深度学习+超60小时CV核心算法+15大Pytorch CV实践案例助你攻略CV...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

  6. 医疗软件产品核心算法部分说明--转载截取

    各方资料汇总说明 核心算法概述 算法类型: 公认成熟算法:公开文献专利标准.原理简单明确.上市超过四年且无不良时间.公认成熟算法名称.原理.用途,全新算法列明名称.原理.用途,并提供验证资料. 全新算 ...

  7. kylin分析引擎:运行原理、维度和Cube等名词解释、核心算法

    架构 kylin是一款分析引擎,最常用的数据源是Hive.1.5版本之后数据源增加了kafka,但最常用的仍然是Hive.但是Hive查询比较慢,Kylin解决了这一问题. 大致流程: 第一步:从Hi ...

  8. 重磅下载!业界首本强化学习应用宝典,阿里核心算法团队联袂打造

    作为一名技术人,你是否曾有过这样的疑惑: 人工智能大热,作为一名传统程序员,该如何转型或学习? 网上AI教程.书籍,质量参差不齐,如何找到真正专业的资源? AI理论遍地皆是,但几乎都在纸上谈兵,该从哪 ...

  9. 机器学习核心算法之——贝叶斯方法

    1.贝叶斯公式 贝叶斯公式已经成为机器学习的核心算法之一,诸如拼写检查.语言翻译.海难搜救.生物医药.疾病诊断.邮件过滤.文本分类.侦破案件.工业生产等诸多方面都有很广泛的应用,它也是很多机器学习算法 ...

最新文章

  1. Django博客系统(404页面展示)
  2. 微软服务器sql server,解析:微软SQL Server 2008特性和功能
  3. const的用法,特别是用在函数前面与后面的区别
  4. python测试网络连通性_python 判断网络连通的实现方法
  5. github的watch和star的位置
  6. FK JavaScript之:ArcGIS JavaScript API之地图动画
  7. 中国最险六大寺庙,最后一座至今无人登临
  8. 常见字符编码 java
  9. 风控建模系列(六):催收评分卡卡跟贷前申请卡关于目标变量的定义
  10. linux内核版本2 3 20,redhat9装配RTLINUX-3.2,内核版本为Kernel-2.4.23
  11. 瑞利信道,莱斯信道和高斯信道模型
  12. openwrt打印机服务器稳定性,软路由 篇一:openwrt共享打印机【上】【完美解决】HP10系打印异常问题...
  13. html用css美化表单登录页面
  14. 二倍图三倍图什么意思_ios切图(一倍图+二倍图+三倍图)
  15. html如何设定页面4秒后自动跳转,js定时三秒后自动跳转页面
  16. 【转】西门子数控系统中MMC、PCU、NCU、CCU简略介绍
  17. 数据治理工作的几种推进套路
  18. 轻松识别文字,这款Python OCR库支持超过80种语言
  19. 田野调查手记·浮山篇(七)
  20. Logstash:你喜欢 Grok 吗?

热门文章

  1. javascript basical knowledge
  2. 餐饮行业实体商户用低代码构建商业联盟解决方案
  3. 洛谷 P1069 细胞分裂 解题报告
  4. 大学毕业后,留在北京的人,要坚强!
  5. mac碰到哪些情况下需要重装系统?
  6. 最新焊接机器人滑环优势
  7. javascript中让人懵逼的类型转换
  8. 一键安装docker(命令)
  9. Shell脚本for循环语句应用
  10. 用python写一个商城网页服务器并且实现数据库和网页交互