一、 选题的依据及意义:
21世纪的今天手机行业发展蓬勃迅速,现在更随着Android系统的出现和流行,越来越多的手机用户将目光转向了Android系统,该系统是以Linux为基础的开放源代码操作系统,其个性化、实用性与扩展性良好,受到了外界良好评价与使用支持。数独游戏更因其操作简单,不需要特定的语言基础,同时也起到开发人类大脑思维的作用,所以很快风靡全球[1-4]。
数独简介:数独的前身为“九宫格”,最早起源于中国。但当时的算法比现在的更为复杂,其要求纵向、横向、斜向的三个数字之和等于15.,而不只是数字不能重复,儒家典籍《易经》中的“九宫图”也是来源于此。而到了18世纪末,瑞士数学家欧拉又发明了一种叫做“拉丁方块”的游戏,之后不久,美国的一家数学逻辑游戏杂志开始刊登这类游戏,使此类游戏得到良好发展,之后又在日本得到了广泛的传播。[5]
二、 国内外研究现状及发展趋势(含文献综述):
在当今时代,随着Android技术的发展和手机的智能化。人们的工作节奏比较快,所以手机游戏在我们的日常生活中起着越来越重要的作用。目前,国内外的许多数独游戏功能还很不完善,并且存在很多问题。
数独游戏的规则很简单,只需要在空格处填写1~9的数字,并保证每个数字在每个九宫格内只出现一次,而一般的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏规则。
好的数独题目要求已知的数字是点对称的,而且谜题要有唯一解甚至已知的数字越少越好。目前最好的纪录是给定18个数字就可以产生出唯一解的数独谜题。如果放宽条件到不需要点对称,那么最少可以给定的数字是17个。感兴趣的读者可参考相关网站的例子。
许多玩家和学者对数独游戏痴迷不已,当然也包括很多计算机程序人员,他们在网上提供了众多免费下载的数独谜题程序。例如,才华横溢的数学家和组合学家Zeilberger[6]曾写了一个在Maple上跑的程序供大家解出数独谜题可以发现,难度高的题目不一定给出较少的数字,有时候提供的数字很多但仍然难度很高。反之,提供的数字少也许反而比较容易解题。也就是说,谜题的难易程度与提供的数字多少不是绝对相关的,谜题的难易程度和设计者的逻辑思维模式有关。
到了18世纪末,瑞士数学家莱昂哈德·欧文又发明了一种叫做“拉丁方块”的游戏[7],之后不久,美国的一家数字逻辑游戏杂志开始刊登这类游戏,使此类游戏得到良好发展,之后又在日本得到了广泛的传播。2004年,第一个“数独”游戏被刊登上了英国《泰晤士报》[8]的封面,此时开始数独游戏才真正为世界所知晓。
由于此类游戏操作简单,不需要特定的语言基础,也不需要进行数字运算且可玩性高、锻炼思维、开发大脑,所以很快风靡全球。之后由其衍生的游戏也越来越多,例如杀手数独、角线数独等。
三、 本课题研究内容
数独游戏的规则很简单,只需要在空格初填入1~9的数字,并保证每个数字在每个九宫格内只能出现一次,且每个数字在每一行、每一列也只能出现一次,而一半的游戏过程是系统随机生成一个棋局,然后玩家需要在空白处填上相应的数字使其满足游戏的规则。该游戏运行步骤如下:
1.启动游戏后首先进入的便是欢迎界面,在欢迎界面中“点击屏幕继续”会时有时无,达到提示的效果。
2.在欢迎界面单击屏幕,便进入主界面。
3.在菜单界面单击“关于游戏”才当可进入“关于”界面,在"关于"界面中介绍了游戏的目标平台及开发日期。
4.在菜单界面单击“帮助游戏”菜单可进入“帮助”界面,在“帮助”界面介绍了游戏的基本规则。
5.在菜单界面单击“开始游戏”菜单可进入游戏界面。
6.当在游戏过程中单击“暂停”按钮时,便进入暂停状态。
7.在游戏过程中随时可以通过换题按钮在更换题目。
8.当玩家单击放弃按钮时,会提示玩家需要退出游戏,然后根据玩家的选择进行操作。
9.当玩家单击提示按钮时,界面上会出现一个红心表示当前可以提示玩家输入数字,此时在单击空白处,便会自动填上正确答案。
10.当玩家将界面中所有的空白全部填满数字时,系统会自动判断所填写的数字正确与否,当有错误时,会出现任图所示的游戏失败界面,全部填写正确时,会出现游戏胜利界面。
11.在胜利或者失败状态时,玩家可以通过点击屏幕任意位置返回欢迎界面。
12.在菜单界面单击退出游戏便可退出游戏。
四、 本课题研究方案
此次程序设计任务是Android平台下的数独游戏设计,程序将在Android模拟器中运行调试。
此次程序设计用户界面要求较为友好,由于针对的用户为Android智能手机用户,因此程序的操作非常简单容易操作。游戏进行时通过右边键盘中的数字键输入答案,程序中储存了大量的数独题目,组成了上百个关卡,供用户娱乐,此次程序设计的操作系统要求为android版本2.3.6。此次程序设计需要在Eclipse环境下开发。
1.重来功能
重来功能主要实现用户输入错误答案想要重新开始本题目。
2.下一关功能
下一关功能主要实现用户完成一关游戏后可以跳至下一关。
3.解题功能
解题功能主要实现用户解答不出此题时候系统提示答案。
4.重出题功能
重出题功能主要实现用户不想解答本题,想要换另一题目。
5.难易程度选择功能
难易程度选择功能主要实现用户根据自己实际水平选择适合自己难度的题目。
6.退出功能
退出功能主要实现退出游戏。
五、 研究目标、主要特色及工作进度:
研究目标、特色:此次程序设计任务是Android平台下的数独游戏设计,程序将在Android模拟器以及安卓手机中运行调试。开发Android数独游戏,要抓住开发的四大核心部分:欢迎界面、游戏界面、主界面、游戏逻辑,只要掌握了这四部分的开发,数独游戏就能初具规模。而其它的功能都是在这四个功能的基础上去补充添加的。
此次设计数独游戏系统,采用主要开发工具是Eclipse3.6+Java语言的支持,Android Development Tool的插件和Android SDK2.1版本的全面结合才能使整个游戏系统功能完全实现。
工作进度:
第1-2周:文献查找,撰写开题报告
第3~4周:学习人力资源体系结构的基本原理
第5~6周:翻译英文文献
第6~8周:系统分析、设计
第8~13周:编制代码,调试程序
第13~15周:撰写论文
第16~17周:整理材料,答辩以及相关的结尾工作。
六、参考文献:
[1] 白广元.Java Web整合开发完全自学手册[M].北京:机械工业出版社,2009.
[2] 孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2010.
[3] 刘斌.Java Web整合开发[M].北京:电子工业出版社,2008.
[4] 王克宏.Java技术教程(基础篇)[M].北京:清华大学出版社,2006.
[5] 张孝祥.Java就业培训教程[M]. 北京:清华大学出版社,2007.
[6] 余志龙.Google Android SDK开发范例大全[M].北京:人民邮电出版社,2009.
[7] 杨丰盛.android应用开发揭秘[M].北京:机械工业出版社,2010.
[8] 郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.
[9] 李宁等.Android/OPhone 开发完全讲义[M].北京:水利水电出版社,2010.
[10] 孙燕.Java2入门与实例教程[M].北京:中国铁道出版社,2003.
[11] 李苑.基于Android移动平台的警务查询系统[D].南昌:南昌大学,2009.
[12] 韩超,梁泉.Android系统级深入开发[M].北京:电子工业出版社.2011.
[13] 朱桂英.Android网络开发技术实战详解[M].北京:电子工业出版社,2012.
[14] 熊斌.Android多媒体开发技术实战详解[M].北京:电子工业出版社,2012.
[15] 杨丰盛.Android技术内幕:系统卷[M].北京:机械工业出版社,2011.