陆毅军 黄俊 彭巧珍

【摘要】本文基于Android操作系统,根据软件工程的设计思想,以Androidstudio等为开发工具,设计出一款能够开发青少年智力并对其进行海洋生物知识科普的拼图游戏。本游戏包括游戏设置界面,海洋生物图片导读及选择页面,并能显示玩家的当前游戏所用时间和步数。本软件以培养兴趣及科普知识为主。

【关键词】Android   拼图游戏  知识科普

一、引言

目前随着智能手机的全面深入普及,青少年也成为手机app开发的新兴对象。对于青少年而言,寓教于乐的app非常有助于其的智力开发与兴趣培养。实现一款海洋生物科普类的趣味拼图app便是本次的课题。

二、需求分析

在这个迅猛发展的互联网时代,智能手机的普及已经涉及青少年,对此我们设想设计一款能让青少年在游戏过程中学到科普知识并且得到智力开发与兴趣培养的app。由此,我们设计了此款趣味拼图,使青少年在游戏的过程中学习到海洋生物科普知识。

此款app面向的用户为7岁到14岁间的青少年,其基本功能:(1)能对一些海洋生物的基本图片进行浏览。(2)展示页面根据海洋生物的栖息深度进行不同的归类。(3)当点击对应的海洋生物的图片后,将进入新的页面,此页面将展示此海洋生物的相关科普信息,青少年可以自由浏览并进行记忆熟悉。(4)可以根据情况进行游戏困难度的选择。

三、系统设计与实现

(一)游戏设置

用户通过游戏设置按钮进入后,可选择难度设置和背景音乐的设置,难度设置分为3X3、4X4、5X5等适应不同层次用户的选择,给用户带来不同的难度挑战。背景音乐可以试听,在试听后选择自己喜欢的音乐作为背景音乐。

(二)知识展示

用户在海洋生物分类中选择了自己感兴趣的生物后,点击图片即可跳转到有关该动物的科普知识展示页面,用户可以在这个页面自由浏览或者记录,了解和学习相关的知识。

(三)拼图游戏

用户浏览完科普知识后可选择进入游戏,游戏环节中的图片就是我们知识展示页面中的生物图片,而用户进入游戏后图片已被智能分块,在游戏过程中用户发挥自己的智慧,通过移动方块,将智能分块并打乱的图片拼成它原来的模样即为成功,当然在游戏过程中可点击查看原图协助游戏。

(四)核心功能

//判断分割的数据是否能还原成原图

public static boolean canSolve(Listdata) {

//获取空格Id

int blankId = mBlankItemBean.getmItemId();

// 可行性原则

if (data.size() % 2 == 1)

return getInversions(data) % 2 == 0;

else {

// 从底往上数,空格位于奇数行

if (((blankId - 1) / PuzzleActivity.TYPE) % 2 == 1)

return getInversions(data) % 2 == 0;

else // 从底往上数,空位位于偶数行

return getInversions(data) % 2 == 1;

}

}

//计算倒置和算法

public static int getInversions(Listdata) {

int inversions = 0;

int inversionCount = 0;

for (int i = 0; i < data.size(); i++) {

for (int j = i + 1; j < data.size(); j++) {

int index = data.get(i);

if (data.get(j) != 0 && data.get(j) < index)

inversionCount++;

}

inversions += inversionCount;

inversionCount = 0;

}

return inversions;

}

//判断拼图是否成功复原

public static boolean isSuccess() {

for (ImageItemBean tempBean : mItemBeans) {

if(tempBean.getmItemId() != 0 && tempBean.getmItemId() == tempBean.getmBitmapId()

continue;

else if(tempBean.getmBitmapId() == 0 &&tempBean.getmItemId() == PuzzleActivity.TYPE * PuzzleActivity.TYPE)

continue;

else  return false;

}

return true;

}

}

四、相關知识

核心算法:计算倒置和算法。拼图的实现是将一张完整的图片切成n等分,如果随机切割排列会导致图片无法还原,使用计算倒置和算法得到图片生成的情况,然后判断拼图是否有解。

五、小结

本文利用Android studio 等开发工具设计了一款立足于青少年智力开发及海洋知识科普的趣味拼图游戏。由于经验不足,该应用仍存在一些不足的地方,功能方面还可以后续拓展。

参考文献:

[1]郭霖.第一行代码Android(第2版)人民邮电出版社,2016.

[2]李兴华.名师讲坛——Java开发实战经典(第2版),2018.

基金项目:课题资助:南昌航空大学第14届“三小”课题。

android怎实现拼图功能,基于Android的趣味拼图的实现相关推荐

  1. android有关医疗实现功能,基于Android的智能医疗监测系统的设计与实现_问答库

    随着社会经济的快速发展,工作压力的进一步加大,如今人们对个人健康越来越关注,为了有效减轻家庭医疗支出同时,让人们足不出户就能享受到自身健康检测的高质量医疗服务,智能医疗监测系统成为关注的焦点.另一方面 ...

  2. Android怎么实现选课功能,基于android的手机选课系统的设计与实现 任务书

    主要参考文献(资料): [1] 张晓叶. 基于Android平台高校移动选课系统的设计与实现[D]. 吉林大学, 2015. [2] 吕俊逸. 基于Android的泛在学习平台的研究[D]. 北京交通 ...

  3. android个人理财通项目_基于Android个人理财系统设计与实现.doc

    基于Android个人理财系统设计与实现 基于Android个人理财系统设计与实现 摘要:随着Android移动应用的飞速发展人们的日常生活越来越离不开移动应用设备.该系统是基于Android移动应用 ...

  4. 基于android预约功能,基于Android的银行业务预约系统的设计与实现

    摘要: 随着我国国民经济的快速发展,居民的人均收入水平不断提高,人们对银行金融产品和服务的需求急剧膨胀,越来越多的普通民众需要到银行办理业务.尽管网上银行,手机银行得到了大力推广,但出于金融安全等多项 ...

  5. android跳蚤市场的功能,基于Android校园跳蚤市场设计与实现.doc

    基于Android校园跳蚤市场设计与实现 基于Android校园跳蚤市场设计与实现 摘要:论文主要实现了一个基于Android平台的校园跳蚤市场系统.该系统上是以Android为终端,实现二手商品信息 ...

  6. android 收藏歌曲功能,基于android的网络音乐播放器-回调实现音乐播放及音乐收藏的实现(三)...

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  7. android餐厅菜单功能,基于Android平台的菜谱实现

    <基于Android平台的菜谱实现>由会员分享,可在线阅读,更多相关<基于Android平台的菜谱实现(20页珍藏版)>请在人人文库网上搜索. 1.基于安卓平台的菜谱实现1需求 ...

  8. 米6的android8新功能,基于Android 8.0!小米6将升级全新MIUI9

    原标题:基于Android 8.0!小米6将升级全新MIUI9 Android 8.0已经正式发布多时,目前不少厂商已经启动了旗下进行的Android 8.0适配计划.但令人纳闷的是,一向对系统升级比 ...

  9. android开发课程表app数据库,基于Android studio 的课程表增删查改功能(基于sqlite)

    [实例简介]Android studio 用SQLite实现课程表的增删查改功能,:实现详情浏览.编辑.及新增功能.课程编号可以实现正则检查(编号规则XX00000,XX表示两位大写的字母,00000 ...

  10. android学生个人事物管理系统,基于Android平台的学生个人事务管理系统的设计与实现(整理版).doc...

    DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF;DS 摘 要 Android智能手机越来越普及 ...

最新文章

  1. 3DSlicer30:VS-Qt5VSaddin-qt4.8.7dev
  2. 【oracle】查看数据库服务器的ip地址的SQL
  3. Android One和Android Go有什么区别?
  4. ARKit:增强现实技术在美团到餐业务的实践
  5. ubuntu卸载fcitx后引发的问题修复
  6. 别样的1024程序员节“无Bug市集”
  7. CentOS 6.2安装配置pacemaker
  8. 亲历者说:Kubernetes API 与 Operator,不为人知的开发者战争
  9. 兄弟j220怎么清零_兄弟打印机MFC_J220墨水回收盒满,该如何清零,望大神指教。...
  10. OS X Mavericks 10.9.3 (13D65) 官方原版 懒人版安装镜像
  11. user guide for Coverity Wizard
  12. 计算机待机英语,计算机休眠
  13. Android C++ Parcel
  14. ionic 3 http htpps
  15. 窗帘轨道怎么安装?方法有哪些?-江南爱窗帘十大品牌
  16. 免费自媒体全网平台爆文采集器
  17. cai课件 计算机辅助创新,浅谈cai课件制作的几个问题
  18. git Please tell me who you are解决方法
  19. Nginx中rewrite的用法详解
  20. 数字电路基础与Quartus-ll入门

热门文章

  1. 细胞和基因治疗产品法律监管问题及伦理的研究
  2. Hibernate中类的继承使用union-subclass实现
  3. JPA学习(基于hibernate)
  4. 学习探究--实信号与复信号
  5. [微信小程序开发者工具] × #initialize
  6. 如何用计算机算标准偏差,标准差计算器怎样安装使用?标准差计算器使用教程介绍...
  7. 阿里云服务器使用不了rz、sz命令?
  8. Android 7.0 Settings Summary 小记
  9. linux终端网易云播放问题,Ubuntu下完美解决网易云音乐无法启动的问题
  10. android手机查看root,怎么看安卓手机是否Root 一键检测手机root方法