JAVA数独(九宫格)游戏软件设计报告(推荐文档)

合集下载

“数独游戏”的开发实验报告

“数独游戏”的开发实验报告

”的开发实验报告数独游戏”“数独游戏一、实验目的通过“数独游戏”Android应用程序的开发,掌握一个实际应用项目的开发流程和知识。

二、开发步骤(一)设计用户界面1、创建启动界面(1) 使用Eclipse插件创建一个Android应用程序(2) 修改res/layout/main.xml文件,使用不同的文本和几个按钮替换原标签(3) 在res/values/strings.xml中定义要用到的字符串(4)2、模式切换为使横向模式下人能正常显示,可为横向模式创建一个不同的布局。

创建名为res/layout-land/main.xml文件,该文件采用TableLayout布局方式创建两列按钮。

3、实现About对话框(1) 为About按钮活动创建一个布局文件res/layout/about.xml(2) 在About,java中定义About活动,重写onCreate()方法和并调用setContentView()方法(3) 将About对话框的标题及对话框中包含的文本内容添加到res/values/strings.xml中(4)(5)4、应用主题可以在res/values/styles.xml中定义自定义主题,但在此只需利用一个预定义主题,在Android.Manifest.xml中修改About的定义,使其具有主题特性(property)。

5、添加菜单实现在按下Mune按钮时弹出菜单(1) 在res/values/strings.xml中定义要用到的字符串(2) 在res/menu/menu.xml中定义菜单(3) 将上面定义的菜单加到Sudoku类中,并导入以下包:import android.view.Menu;import android.view.MenuInflater;import android.MenuItem;(4) 重写Sudoku类中的onCreateOptionsMenu()方法6、添加设置在Sudoku程序中添加两个设置,一个用于播放背景音乐,一个用于显示提示信息。

java课程设计九宫格数独

java课程设计九宫格数独

计算机与信息工程系《数独游戏的设计与实现》课程设计2013-2014学年第二学期《面向对象程序设计》课程设计报告题目:九空格数独游戏的设计与实现专业:计算机科学与技术班级:12级计科(1)班姓名:程龙军指导教师:陈磊成绩:计算机与信息工程系2014年 6 月 6 日目录一、题目描述 (3)二、设计分析 (3)1、基本解法 (3)2、软件系统的功能 (4)3、对性能的要求 (4)三、设计思路 (5)1、分析找出问题域中的对象 (5)2、确定类的属性 (5)3、确定对象之间的关系 (5)四、系统设计 (6)五、源代码 (13)六、系统设计和软件发布 (24)1、程序运行情况 (24)2、软件的发布 (28)3、分析讨论 (29)七、难点及关键技术分析 (30)八、心得体会 (30)九、参考文献 (31)一、题目(问题)描述在9×9格的大九宫格中有9个3×3格的小九宫格,并提供一定数量的数字。

根据这些数字,利用逻辑和推理,在其它的空格上填入1到9的数字。

每个数字在每个小九宫格内只能出现一次,每个数字在每行、每列也只能出现一次。

这种游戏只需要逻辑思维能力,与数字运算无关。

虽然玩法简单,但数字排列方式却千变万化,所以不少教育者认为数独是锻炼脑筋的好方法。

二、设计分析1、基本解法:利用1 ~ 9 的数字在每一行、每一列、每一宫都只能出现一次的规则进行解题的方法。

实际寻找解的过程为:使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置,换句话说,就是把单元中其他的空白位置都排除掉。

那么要如何排除其余的空格呢?当然还是不能忘了游戏规则,由于1-9的数字在每一行、每一列、每一个九宫格都要出现且只能出现一次,所以:如果某行中已经有了某一数字,则该行中的其他位置不可能再出现这一数字如果某列中已经有了某一数字,则该列中的其他位置不可能再出现这一数字如果某区块中已经有了某一数字,则该区块中的其他位置不可能再出现这一数字。

数独游戏报告

数独游戏报告

数独游戏院系:班级:组长:组员:指导教师:2010 年12 月29 日数据结构课程设计任务书一、题目:数独游戏二、设计要求(1)XXX(组长)、XXX(组员)和 XXX(组员)组成设计小组。

(2)小组成员分工协作完成,要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。

(3)查阅相关资料,自学具体课题中涉及到的新知识。

(4)根据实现的功能,划分出合理的对象类,明确对象类间的关系。

为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。

(5)编程简练,程序功能齐全,能正确运行。

(6)课题完成后提交课程设计报告,格式规范,内容详实。

其主要内容包括:1-封皮、2-课程设计任务书,3-指导教师评语与成绩、4-目录、5-需求分析、6-概要设计、7-详细设计(含主要代码)、8-调试分析与测试结果、9-用户使用说明、10-附录或参考资料。

报告用A4纸打印,中文字体为宋体,西文字体用Time New Roma,小四号字,行距采用“固定值”18磅,首行缩进2字符。

(7)课程设计报告内容的说明:需求分析-分析课题需要实现的功能以及要用到的知识点,分析课题涉及的对象间的关系;概要设计-根据实现的功能;详细设计-具体的功能的实现以及主要程序代码;调试分析与测试结果-用多组测试用例调试分析系统的正确性、完备性等各项性能指标,写出测试结果;用户使用说明-编写该系统的使用说明书;附录或参考资料-完整的程序代码以及查阅资料的参考文献。

三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。

四、课程设计工作计划2010年12月21日,指导教师讲课,学生根据题目准备资料;2010年12月21日~2010年12月27日,设计小组进行总体方案设计和任务分工;每人完成自己承担的程序模块并通过独立编译;2010年12月28日~2010年12月29日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;同时撰写报告。

数独游戏在Java开发环境下使用Swing库进行开发

数独游戏在Java开发环境下使用Swing库进行开发

数独游戏在Java开发环境下使用Swing库进行开发数独游戏是一种智力益智类游戏,通过填写9×9的方格中的数字,使得每一行、每一列和每一个宫都包含了1到9的所有数字,而且在每一行、每一列和每一个宫中都没有重复数字。

在本文中,将介绍如何使用Java开发环境下的Swing库来实现一个简单的数独游戏。

Swing库是Java中用于创建图形用户界面(GUI)的一套组件。

通过使用Swing库,我们可以轻松创建各种用户界面,包括按钮、文本框、标签等,以及处理用户交互。

在这个数独游戏的开发中,我们将使用Swing库来创建一个可交互的数独游戏界面,并实现数独游戏的逻辑。

首先,我们需要创建一个窗口来容纳数独游戏界面。

这可以通过Swing库中的JFrame类来实现。

JFrame类表示一个顶层窗口,我们可以在其中添加其他的Swing组件。

通过设置JFrame的标题、大小和关闭操作,我们可以创建一个适用于数独游戏的窗口。

接下来,我们将创建一个9×9的网格来表示数独游戏的方格。

在Swing库中,可以使用JPanel类来创建一个面板,并将其设置为GridLayout布局。

GridLayout布局可以将面板分割为固定数量的行和列,适合用于显示网格。

我们将在这个面板中添加81个文本框来表示数独方格,以及一个按钮用于提供重置游戏的功能。

当用户点击某个数独方格时,我们将使该方格成为焦点,并允许用户在键盘上输入数字。

为了实现这一功能,我们可以为所有的文本框添加一个事件监听器,并在焦点变化时记录当前焦点的位置。

通过处理用户键盘输入事件,我们可以将输入的数字显示在方格中,并验证该数字的合法性。

在数独游戏中,我们需要检查每一行、每一列和每一个宫中是否包含了1到9的所有数字,并且没有重复数字。

我们可以通过创建相应的检查函数来实现这一功能。

当用户完成数独游戏并点击验证按钮时,我们将使用这些检查函数来验证用户填写的数字是否正确。

数独游戏课程设计报告

数独游戏课程设计报告

数独游戏课程设计报告将“数独”智力游戏的难度划分与创建问题分解为建立终盘和初盘、难度评分、游戏创建。

首先采用行列变换的方法建立终盘,然后隐去部分数字并检验解唯一性,得到初盘。

在已得到初盘的基础上,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建不同等级难度的“数独”游戏。

最后通过实验验证了模型的实用性。

下面是的数独游戏课程设计报告,欢迎来参考!“数独”是18世纪瑞士数学家欧拉发明。

该游戏是在9×9的单元网格中进行,这些网格被分9行、9列和3×3个九宫格。

单元网格中已有若干数字,其余均为空格。

玩家需要推理出所有剩余空格的数字,并满足每一行、每一列、每一个小九宫格内的数字均含1-9且不重复。

每一道合格的“数独”谜题都有且仅有唯一答案。

目前,“数独”作为一种智力游戏已经风靡世界,国内外许多学者已对数独的求解算法做了深入研究,例如递归法[1]、回溯候选数法[2]、枚举算法[3]等,但在数独的难度划分与创建方面的研究还很少。

由于影响“数独”难度的因素有很多,就问题本身而言,难度因素包括最高难度的技巧、各种技巧所用次数、是否有隐藏及隐藏的深度和广度的技巧组合、当前盘面可逻辑推导出的个数等等;就玩家而言,了解的技巧数量、熟练程度、观察力等也属于难度划分应考虑的因素。

因此,单单利用空格数或求解时间对题目难度进行划分是不全面的,其难度指标定义过于主观,讨论也不够细致,无法真正划分难度的级别。

本文首先创建符合要求的“数独”终盘,然后在终盘的基础上生成具有数独特性的初盘,根据求解时初级方法和高级方法使用的次数确定难度评分,从而依据分数对题目的难度进行划分,以此创建不同等级难度的“数独”游戏。

1终盘和初盘生成首先运用初等行、列变换,构造一个新的简单明了的终盘生成算法,具体步骤如下:Step1:从行的角度出发,在第一行随机输入1-9的数字。

以一个小九宫为单位,将相邻三个数字作为一个集体进行交替,由此获得第二行的数字,再由第二行的数字根据前述方法变换得到第三行的数字。

《Java语言程序设计》大作业报告九宫格游戏

《Java语言程序设计》大作业报告九宫格游戏

if(replay==JOptionPane.YES_OPTION){
Game G=new Game();
1. 运行结果及分析
因为是字节流储存,所以显示是字符
1. 设计经验总结 刚刚开始感觉很难,因为对图形界面太不了解了,有的函数和类都不知道,所以超级难入手,但是当看网上的代码和同学的多了之后也就知道该怎么编了,一旦入手,后 面的就感觉没有那么难了,现在编完了就感觉图形界面也就那么回事,都是固定的模式,模块添加也很简单,虽然还是有很多不懂的地方但是相比于做大作业之前已经有 很多的提高了,还认识了很多不认识的组件,同学们都用了不同的方法,我用的是网格布局然后添加button,感觉这样界面友好一点。弹出的对话框可以JOptionPane而不 是再定义JDialog,文件的读写方法很多,选一种自己理解的就好。 总的来说学到了很多知识,更加巩固了本来就很薄弱的java。 附:源程序
Buttons[i-1][j].setEnabled(true);
Buttons[i][j].setText("");
Buttons[i][j].setEnabled(false);
number_path++;
}
if(j+1!=3&&Buttons[i][j+1].getText()==""){
Buttons[i][j+1].setText(Buttons[i][j].getText());
e1.printStackTrace();
}
if(number_path>best_recond){
JOptionPane.showConfirmDialog(this,"你太厉害了!!这么难都能赢!!!才用了"+Integer.toString(number_path)+"步!!然而并没有打破记录。历史最佳成绩是:"+Integer.toString(best_recond));

JAVA数独(九宫格)游戏软件设计报告(推荐文档)

JAVA数独(九宫格)游戏软件设计报告(推荐文档)
if( row[i][k]==0 && col[j][k]==0 && sql[(i+2)/3][(j+2)/3][k]==0 ){
data[i][j]=k; row[i][k]=1; col[j][k]=1;
sql[(i+2)/3][(j+2)/3][k]=1;
if( DFS()==1 )
return 1;
2
2.1数独游戏分析
数独游戏组成元素:
单元格:数独中最小的单元,标准数独中共有81个;
行:横向9个单元格的集合;
列:纵向9个单元格的集合;
宫:粗黑线划分的区域,标准数独中为3×3的9个单元格的集合;
已知数:数独初始盘面给出的数字;
候选数:每个空单元格中可以填入的数字。
基本解法:
利用1~9的数字在每一行、每一列、每一宫都只能出现一次的规则进行解题的方法。使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置,换句话说,就是把单元中其他的空白位置都排除掉。
网格布局:
panel_txt.add(panel[i]); //添加组件
int m=(i+2)/3*3-2; //生成九个3*3的网格,并添加数字
int n=((i-1)%3+1)*3-2;
for(int j=m;j<=m+2;j++){
for(int k=n;k<=n+2;k++){
panel[i].add(text[j][k]);
static int hard=2; //默认初始难度为2
static int datahard[]={2,3,5}; //不同的难度

数独游戏的设计与开发毕业设计

数独游戏的设计与开发毕业设计

摘要本文介绍了利用C++语言编写数独游戏的方法。

游戏的开发设计使用了vs2010作为开发工具,根据数独游戏特有的规则特点对游戏进行设计。

并且游戏在开发的过程中使用了微软的MFC开源框架,在数独游戏的界面上做了一定的处理。

本文首先对游戏进行了简单的介绍,对游戏的计算机实现进行分析。

最后通过部分游戏截图和数据表格来介绍了游戏的开发设计过程和游戏的基本操作。

并根据软件工程的方法,从需求分析、概要设计、详细设计、编码实现等方面阐述了游戏的开发流程,并通过游戏界面的截图、数据表格等体现了我的设计思路。

关键字:数独 C++ MFC 毕业设计T AbstractThis paper describes the use of C + + method number written language alone game. Game development and design using vs2010 as a development tool, according to the Sudoku rules specific to the characteristics of the game design. And the game uses Microsoft's MFC source framework development process, in Sudoku interface to do some processing. This paper first gives a brief introduction to the game, the game's computer-implemented analysis. Finally, some games screenshots and data tables to introduce the basic operation of the game development and game design process. And in accordance with the method of software engineering, from requirements analysis, aspects of the outline design, detailed design, coding realization expounded the game development process, and through screenshots game interface, data tables, etc. embodies my design ideas.Keywords: Sudoku C++ MFC graduation目录1 引言 (1)1.1 简介 (1)1.2 数独的起源 (1)1.3 数独的发展 (1)2 开发环境及开发工具 (2)2.1 C++语言简介 (2)2.2 MFC语言简介 (2)3.系统的需求分析 (2)3.1现行系统概况描述...............................................,23.2需求分析 (2)4.系统开发可行性分析 (2)5.系统分析 (2)6.系统设计 (3)6.1设计思路 (3)6.2系统主要类设计 (3)6.2.1 GamePad类 (3)6.2.2 SudokuDlg类 (4)6.2.3 Sudokugame类 (5)7.系统主要技术特色 (11)8.结论 (11)9.参考文献 (12)10.致谢 (12)1.引言1.1简介数独游戏是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网格布局:
panel_txt.add(panel[i]); //添加组件
int m=(i+2)/3*3-2; //生成九个3*3的网格,并添加数字
int n=((i-1)%3+1)*3-2;
for(int j=m;j<=m+2;j++){
for(int k=n;k<=n+2;k++){
panel[i].add(text[j][k]);
单击事件处理方法
单击实践
JOptionPaneshow
游戏布局:
①JPanel panel_txt=new JPanel(new GridLayout(3,3,2,2));
//将面板设置为3行3列网格布,并设置大小
②for(int i=1;i<=9;i++){ //设置9个面板
panel[i]=new JPanel(new GridLayout(3,3)); //将面板设置为3行3列
}
}
}
2.2数独游戏界面设计
2.3数独游戏程序功能
功能1:弹出游戏界面,可直接开始进行数独游戏,也可以在游戏过程中选择菜单栏中“文件”——“新局”,进行新一局的游戏,或者是“文件”——“重来”,重新开始当前局。
功能2:判断答案的正误。游戏当前局完成后,可选择菜单栏中“文件”——“提交”,系统会根据玩家在当前局所填写的结果,弹出相应的对话框。
功能5:选择菜单栏中“文件”——“退出”,会自动关闭当前的数独游戏界面,退出系统。
功能6:玩家可根据自身的情况或兴趣,在数独游戏界面上方的下拉列表中选择适合自己的难度(难度共分为3级,分别是“简单”,“一般”和“困难”),然后选择重新开局,游戏的难度会进行相应的变化。
功能7:在九宫格数独游戏界面和弹出的消息提示界面以及答案显示窗口和玩法说明窗口有相关的最小化、最大化、关闭等按钮可以操作,玩家可根据需要自行选择相关操作。
JAVA语言是一种纯面向对象的编程语言,自1995年诞生至今,已经得到飞速的发展,涉及计算机应用的方方面面,如浏览器应用、桌面应用、个人数字代理等等,Java语言面向对象、跨平台、安全性、多线程等特性,奠定了其作为网络应用开发首选工具的基础。
另外,本数独游戏程序框架结构清晰明朗,便于读者理解以及为以后增添新功能打下良好的基础;同时,虽然这是一个较为普通的数独游戏程序,但是具有较强的实用性,而且对程序的配置要求不高,能够广泛应用。
2.1数独游戏分析_________________________3
2.2数独游戏界面设计_______________________5
2.3数独游戏程序功能_______________________5
3.详细设计___________________________7
3.1类设计___________________________7
佛山科学技术学院
《可视化编程技术》课程设计报告
数独(九宫格)游戏软件设计
学生姓名:卫泶媚
学号:2012914201
年级专业:12级教育技术学2班
指导老师:容汝佳
学院:教育科学学院
广东★佛山
提交日期:2014年6月
1.前言______________________________2
2.概要设计____________________________3
3
3.1类设计
类名
角色
变量(属性)
行为
ShuDu1
一个数独
MenuaBar:
添加菜单项
setSize()设尺寸
add()添加文本及组件
setMenuBar()设置难易等级菜单
ShuDuAns
答案窗口
setSize( )设置尺寸
JPanel( )设置面板布局
Another
说明窗口
Public void actionPerformed(ActionEvent e)
3.2数独算法设计_________________________9
4.程序代码____________________________10
5.参考资料____________________________19
6.心得体会____________________________20
摘要:本程序是个简单的数独游戏界面,在9×9的大九宫格中有9个3×3的小九宫格,游戏根据玩家选择的难易程度提供不同数量的数字。根据已给出的数字,利用逻辑和推理,在其余空格上填入1至9的数字。每个数字在每个小九宫格内每行、每列只能出现一次。虽然玩法简单,但数字排列方式却千变万化,是锻炼逻辑推理能力的好方法。另外,设有“答案”和“玩法说明”窗口为玩家提供参考和帮助。玩家完成所有数字的填写后,可进行提交,游戏系统会根据所填写的结果弹出相应的对话框。
2
2.1数独游戏分析
数独游戏组成元素:
单元格:数独中最小的单元,标准数独中共有81个;
行:横向9个单元格的集合;
列:纵向9个单元格的集合;
宫:粗黑线划分的区域,标准数独中为3×3的9个单元格的集合;
已知数:数独初始盘面给出的数字;
候选数:每个空单元格中可以填入的数字。
基本解法:
利用1~9的数字在每一行、每一列、每一宫都只能出现一次的规则进行解题的方法。使用单元排除法的目的就是要在某一单元(即行,列或区块)中找到能填入某一数字的唯一位置,换句话说,就是把单元中其他的空白位置都排除掉。
当输入的内容不符合要求时,弹出对话框:
当结果不正确时,弹出对话框:当答案正确时,弹出对话框:
功能3:选择菜单栏中“文件”——“答案”,会弹出当前局数独游戏的正确答案的新窗口,给玩家提供参考。
功能4:选择菜单栏中“帮助”——“说明”,会弹出次数独游戏玩法的相关说明的新窗口,给玩家提供帮助。另外,选择菜单栏中“帮助”——“作者”,会弹出对话框,显示此程序作者的相关信息。
关键字:java游戏软件,数独(九宫格),界面布局
1
经济在发展,科学在发展,人也在发展。在学习JAVA语言后,我决定使用Java语言编写一个简单的数独游戏,来锻炼人们的逻辑推理能力和思维活跃度,同时,也能满足人们日常空余时间的娱乐需要。数独热潮已经在全球蔓延已久,随着数独游戏不断地发展完善,数独也越来越受到家长和孩子的青睐,认为数独不仅仅只是游戏,而是开发智力的一种方法。在孩子游戏娱乐的同时还能得到逻辑思维的锻炼,又何乐而不为呢?
相关文档
最新文档