想编写安卓游戏。java太难。来试试App Inventor。尽管有人觉得他是中学生的玩具,可是也能编写2048这种火爆游戏,不须要太复杂的算法。

整个游戏有几个模块:
一、游戏初始化

数列转化为图形。使用了canvas和精灵,相相应list,这里注意精灵位置是固定的,仅仅是更改图片,多少分,就对于n.jpg,0分是底色图片。左右移动,使用了flung推断,绝对值推断,水平速度和垂直速度哪个大。用来推断是左右移动还是上下移动。


二、计分模块

一般计分在合并处添加,最高分用了tiny db。游戏结束时进行推断。游戏開始时计分清0

三、移动模块(核心)
移动模块是4*4矩阵的移动,先简化解决左右移动,进一步简化为4*1的矩阵,这里用到list。

首先推断0000,不移动。true、false推断。

其次推断向右移动。通过观察发现规律,2000变为0002,2480变为0248,2040变为0024,第4位是0。去掉后放到第1位。

循环最多3次。

假设第4位不是0,从第3位是0。最多循环2次。第2位是0,1次。相同的能够解决向左移动。

然后扩展到4*4.用foreach循环。

攻克了左右移动,開始解决上下移动。

左右移动本质上是矩阵的旋转。如1234

1234
1234
1234
变为
4444
3333
2222
1111
因此能够通过行和列的转换,得到新的list。上下移动变成左右移动。注意的是每一个方向移动都会同一时候影响列数组和行数组,因此要相互转换。

四、合并模块

合并模块注意下面规则,每次仅仅合并一次,如2222,向右合并为0044。不是合并为8。

0222向右合并为0024。

合并主要是推断12,23,34位的list是否同样。

如34位同样的向右合并,4位翻倍,3位移除,然后再1位上加0。

这里须要和后面的积分模块相关联,合并的分数加上。

五、随机添加2或4模块

2和4的选取能够通过概率设置,比較简单

插入位置的选取实际上在全部0的位置随机选取。这里设置zerolist保存全部为0的位置,保存依照1-16号设置。模块为list0。如5号表示第2行第1列为0。用到了商和余数的推断。模块为add。


六、游戏结束推断

这里没有设置游戏胜利,即达到2048游戏仍然继续,游戏结束的条件有3个。

1是没有空格。即zerolist为空
2横向不能合并
3纵向不能合并
都为真时弹出选择框。
模块对于为nomerge和gameover

aia文件和apk下载http://bbs.appinventor.com.cn/thread-3604-1-1.html

屌丝也能开发安卓版2048(App Inventor)相关推荐

  1. 连接真机开发安卓(Android)移动app MUI框架 完善购物车订单等页面——混合式开发(五)

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 这周真的太忙了,就 ...

  2. 圣才e书题库e考安卓版专用手机APP考试软件下载安装

    安卓版专用APP   ​     安装方式一:扫描上面的二维码图片下载安装   安装方式二:点击链接下载安装 https://www.pgyer.com/yG8Z

  3. flutter开发的安卓版电影APP

    最近对移动端开发产生了兴趣,用flutter框架 搞了一波 安卓版APP. 可正常播放. 部分模块待完善 源代码:源码 如果有帮助,还请给个星星吧..

  4. daysmatter安卓版_daysmatter app下载

    daysmatter是一款多功能日历软件,可以帮助用户添加每个重要的日期,支持公历.农历的倒数日期计算提醒功能,还能详细的显示并距离天,并能及时作出提醒.daysmatter安卓版功能丰富,使用简单便 ...

  5. 一款app 开发在线工具:app inventor

    一:App Inventor简介 app inventor是由Google公司开发的一款在线开放的Android编程工具软件,通过图形化积木式的拖放组件完成app开发,2012年1月移交麻省理工学院M ...

  6. 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)

    这篇发得有点晚了,实属罪过! 以前高中月考的时候有幸进了一个学霸班坐了一个学霸的座位(应该是一位女学霸,桌子上面写着:如果不是因为生气而将事情变得更加严重,那么事情也不是那么的大了) 希望自己可以心情 ...

  7. 连接真机开发安卓(Android)移动app MUI框架——混合式开发(一) (敲详细)

    从接触安卓开发的第一天起,我想我已经爱上了开发,哈哈哈,愿你我坚持下去的理由都是热爱,共勉!这几天没有更新博客,是因为我学习去了(没有相见的日子,我在努力哈哈哈).有想过用模拟器来运行的,但是模拟器太 ...

  8. 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)...

    此文转载自:https://blog.csdn.net/hanhanwanghaha/article/details/110094728 这篇发得有点晚了,实属罪过! 以前高中月考的时候有幸进了一个学 ...

  9. 基于snipe-it v5.1.2开源资产管理软件二次开发安卓端管理app

    snipe-it v5.1.2这个软件安装方法,看我之前的文章,今天来教大家用e4a中文编程软件编写安卓端的登录,后面再编写新建资产,编辑资产,扫描资产,查询资产,审计资产,借出资产,回收资产,打印资 ...

最新文章

  1. 转录组的技术应用 (生物学、医学、农学中的应用)
  2. 2021-03-21 jdk中体统的URL能访问的协议非常有限(当然可以进行扩展,不过很麻烦),常用的有http,file,ftp等等
  3. 杀手级AI补代码工具问世,支持23种语言及5种主流编辑器,程序员沸腾了
  4. linux下 mysql 的root用户忘记密码解决方案
  5. JQuery 分割函数(split)的用法和定义
  6. 使用Project Jigsaw的JDK 9 Early Access上的Eclipse IDE
  7. python 风玫瑰图_python之windrose风向玫瑰图的用法
  8. web前端知识天天学(3)
  9. 算法知识点——(2)模型评估
  10. 灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
  11. 智慧园区系统设计方案
  12. Java读取Oracle中LONG类型数据
  13. java农历万年历课程设计_Java编写多功能万年历程序的实例分享
  14. libguestfs java_rhel7.0(libguestfs) 挂载windows虚机镜像
  15. 山西省将率先实现全覆盖社保“一卡通”
  16. sql server 2016不能全部用到CPU的逻辑核心数的问题
  17. Python Flask框架-开发简单博客-认证蓝图
  18. 让人面到崩溃的特斯拉.NET工程师面试题
  19. html中实现雪花飞舞,京东双12年终盛宴雪花飞舞3D视觉特效
  20. 操作系统-PV操作-理发师问题

热门文章

  1. Linux下hba卡驱动的卸载,SLES11下如何重装qlogic FC HBA卡驱动
  2. Node.js目录操作
  3. (纯CSS)悬浮一个元素,让另一个元素改变属性
  4. DFS(深度优先遍历)走迷宫算法
  5. jsp页面ajax用法,JSP页面如何使用ajax实现局部刷新
  6. 恶狗变萌犬,路人妹子变老婆:日本开源GAN“插件”,想P哪里点哪里 | Demo
  7. 腾讯开工日1.5亿美元领投Reddit,美国贴吧最新估值30亿美元
  8. 小米牵手宜家,成立亿元开发者基金,雷军不仅要当AIoT开拓者,还要当扛把子...
  9. 谨慎设计方法签名(40)
  10. python3.5 opencv3显示视频fps