小组成员:龙淼  武凡棨

一、项目概述

开发这款游戏的初衷是希望用户通过简单的操作便能体会到其中乐趣,工作学习的闲暇之余可以放松身心。

项目概览图:

二、项目内容

1.玩法介绍

《2048》是一款益智类小游戏,玩法规则是:玩家控制全部方块朝同方向运动,两个同数字方块碰撞后,合并的数字为它们之和,每次操作都会随机生成2或者4数字,结果得出2048的方块则为游戏胜利。

三、技术要求

1.Android操作系统

Android具有开放性强,硬件资源丰富,方便开发的优势。
Android开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者;对于消费者来讲,最大的受益正是丰富的软件资源。
但同时也会带来更激烈的竞争,这需要我们考虑自身能否脱颖而出。

2.Java语言

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

3.2048相关算法

2048的游戏界面可以看做是一个二维数组。我们的所有操作,实际上都是针对这一个二维数组的。我们可以将二维数组看成多个一维数组来处理,比如左右移动时一行一行的处理,上下移动时一列一列的处理。接下来以向右移动为例去实现它。

假设当前在某一行,我们希望实现数字的相加。首先将这一行读取出来,当做一维数组来处理。逐个枚举每一个数字,如果有相邻且相等的数就直接相加。这时候问题就来了,相等的数中间隔着0怎么处理?我们可以选择用一个变量记录之前的非零数,然后跳过0,继续枚举后面的数,遇到相同的再相加,最后将一整行的非零数都移到右边即可。在这里不妨换种思路,为何不先将所有的零数移动到最左边后再去执行加法呢?
读取一行数字后,我们先将所有的零存进进一个新数组的左侧,2 0 2 0 就成了 0 0 2 2。然后从最右边开始,将相同且相邻的数字相加,后一个数置0,防止相加后又参与了相加的问题;接着继续枚举下一个数字,处理完后再进行一次移0操作,然后将结果返回给二维数组。

确定了相加的算法后,继续思考其过程可以发现:数字是往玩家操作的方向堆积的,但相加的方向是反过来的。例如数字向右移动,但却是从最右边开始往左相加的;数字向上移动,但却是从最上面开始往下相加的。不管向哪个方向移动,移0和复制的操作都是一样的,因此在考虑这一块时只需要注意实现上的细微差别即可。

另外就是需要设计随机数的生成。随机数是在空白格子上随机生成的,因此要定义一个空白格子结构体,结构体内存的是空白格子在二维数组中的下标。用一个结构体数组来存储每次移动后的所有空白格子,随机挑选一个空白格子,随机生成2或者4(两者生成概率最好不要完全一样)即可。

五、建设内容

1.开始设计

注册账号并且登录之后,点击主页面的“开始游戏”按钮,即可开始。

2.计分设计

当有数字合并时,记录此时合并的数字,加到相应的分数中。

3.结束设计

当游戏界面中没有得到2048且没有两个相同的格子时判定游戏结束。

4.触控交互设计

用户通过手指滑动屏幕,从起始位置获得水平或垂直方向的偏移量以此来判断用户意图。

5.游戏流程设计

软件项目管理第四周作业(招标书)相关推荐

  1. 软件项目管理 第四周作业—项目技术指标(招标文件)

    项目编号:xxxxxxx 项目名称:Web2048 采购人:202031101533 林瑜  202031101425 陈驰 采购单位:西南民族大学 时间:2022.10.7 招标文件 一.立项依据 ...

  2. 软件过程与项目管理第四周作业

    软件过程与项目管理第4周作业    团队项目(PCAE,个人计算机辅助教学系统) 需求分析部分    1.获取到的用户(老师提出的)需求:   "目前,网络教育.在线教育如火如荼,每个平台侧 ...

  3. 软件项目管理大作业_信息系统项目管理师该如何备考?

    教材和培训班选择 此考试网上资料多,选择也是因人而异,总时间只有70天,而看书时间更少,因此不可能把教材和各种备考书籍都看完,我的书就这几本:1. 信息系统项目管理师考试试题分类精解(2019)2. ...

  4. 软件项目管理0824:招标前客户需要准备的资料

    软件项目管理0824:招标前客户需要准备的资料 客户在走招标之前需要准备以下资料走内部的意见征询流程,经常需要乙方配合出具.因为经常遇到分包采购.验收等工作,都有一起考虑.1.项目建议书:(1)项目名 ...

  5. 软件项目管理-构建之法-四周总结

    写在前面 课程名:软件项目管理  授课人:东北师范大学 杨贵福( http://www.cnblogs.com/younggift/) 教材:<构建之法 - 现代软件工程> 作者:邹欣老师 ...

  6. 作业指导书分析怎么做?制作作业指导书分析的软件有哪些?

    作业指导书分析是企业员工行为准则的标准,在企业中起着至关重要的作用.作业指导书分析怎么做?掌握以下几点就能轻松搞定. 1.绘制作业流程图.所谓流程图,就是根据企业现有的设备和工艺以及产品的生产流程,标 ...

  7. 几本软件项目管理方面的书

    几本软件项目管理方面的书 <Rational统一过程:实践者指南> 温昱的<软件架构设计> 何为架构? 架构是组件,组件与组件之间,和与环境之间的关系,引导设计发展原则中体现的 ...

  8. 一本不错的书《软件项目管理》,有感(一)

    最近读了一本不错的软件工程的书<软件项目管理>机械工业出版社. 以前总是看一些老外写的软件工程方面的书,国内的软件工程的书就看过清华大学的<基于软件能力成熟度模型的软件过程改进> ...

  9. 2019春第四周作业软件

    这个作业属于哪个课程 C语言程序设计2 这个作业要求在哪里 \https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018 ...

最新文章

  1. 怎样编写一个Photoshop滤镜(1)
  2. 初学jsp课,一个基于jsp+javabean+servlet+sql server小型房源网站,实现了用户表,房源表,及留言板的增删查改。使用deamwear编译器
  3. Python自学之路——Python基础(四)内置函数
  4. Typename和Class在声明模板时的区别
  5. python除法运算定律_除法竖式算法的原理是什么?
  6. mysql 11.2.16_Navicat for MySQL 11.2
  7. Android 原生 MediaPlayer 和 MediaCodec 的区别和联系(二)
  8. Hibernate中Criteria的完整用法2
  9. 【180929】仿微信飞机大战游戏源码
  10. Axure rp8.1.0.3381激活码(2019-07-26 亲测可用)
  11. 迈高图手机版_迈高图地图下载
  12. 谷歌翻译API-python接口-Googletrans
  13. 风控模型——评分卡模型
  14. CMYK to RGB
  15. oa项目经验描述_简历中项目经验模版
  16. 【定位设备】蓝牙信标接近距离的计算方式及其部署原则
  17. 斐波那契(兔子)数列python
  18. 畅购商城项目(面试版)二
  19. 如何使用left join,以及left join的分析
  20. Instruments使用指南(二)--- 开始Instruments之旅

热门文章

  1. 怎么修改sqlserver用户密码_新版tplink路由器怎么修改管理员登录密码【修改方法】...
  2. 声网Agora 云端录制服务上线,30 分钟即可快速集成
  3. godoc 的安装使用
  4. js地址栏转码与解码
  5. 自媒体有哪些平台?今天告诉你五个好做的平台
  6. linux运维之道 2.3 账户与安全
  7. 相机漫游,绕物体旋转及缩放(Android及手机端通用)
  8. 坚持努力奋斗学习(有终身受益的重点)
  9. 35岁技术人如何转型做管理?阿里高级算法专家公开10大思考
  10. 固定资产管理软件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告