本科生实验报告

实验课程 Android 课程设计数独游戏

学院名称 信息科学与技术学院

专业名称 物联网工程

学生姓名

学生学号

指导教师

实验地点

实验成绩

二〇一五 年 十 月 二〇一五 年 十二 月

Android 数独游戏

一、数独游戏简介

1. 数独游戏“数独Sudoku”来自日文(すうどく),但概念源自“拉丁方块”,

是十八世纪瑞士数学家欧拉发明的,是一种运用纸、笔进行演算的逻辑游戏。数

独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字

和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数

字在每一行、每一列和每一宫中都只出现一次,所以又称 “九宫格”。谜题中会

预先填入 若干数字,它宫位则留白,玩家得依谜题中的数字分布状况,逻辑推

敲出剩下的空格里是什么数字

2. 该数独游戏是基于Android系统,通过过程性设计声明性两种方式来设

计用户界面,采用Android2D绘图来实现数独的游戏界面中的九宫格和数字的

绘制,以及田填充页面的提示等。该数独游戏同时还涉及到活动的创建,游戏框

架的构建,多媒体功能的实现,主要用到了Android开发的入门基础知识,同时

设计到开发环境的配置和真机模拟和模拟器两方模拟

二、数独游戏设计

1. 游戏框架设计 (以下图片都是通过Android真机所得)

figure-1 系统框图 figure-2 进入页面

figure-3 新建游戏 figure-4 游戏界面

figure-5 关于游戏 figure-6 设置游戏

2. 游戏程序设计

figure-7 程序设计

figure-8 程序控制程序结构 figure-9 程序样式设置结构

 Sudoku.java:程序的主控活动类,初始化游戏,控制其他的java 类。

 Pu leView.java:2D绘图的主控类,用来绘制游戏的主界面,包括九宫格、

数字、提示、虚拟键盘等。

 Game.java:游戏的算法和难度的控制类。用来初始化游戏界面,控制

Pu leView类绘制数字;对当前九宫格的数字输入状态来提供数字的提示功

能,保存当前的状态;并根据首选项的有判断的初始化数独游戏开始界面的

难度。

 About.java:主要用于关于游戏的页面的初始化和返回菜单页面。

 Keypad.java:主要用于游戏提示键盘的初始化控制,获取输入的当前的数独

的输入数字和判断输入是否有效。

 Prefs.java:负责对游戏设置选项的控制处理。

 Music.java:多媒体的类,用来控制背景音乐的播放和暂停。

三、数独游戏实现

1. 游戏的界面设计

1)布局方式

 LinearLayout (线性布局):以相对于当行或当列的形式显示子对象,在

本数独游戏设计的开始页面采用该中布局和接下来的布局方式,通过嵌

套来实现。

 RelativeLayout (相对布局):以相对于其他子对象显示子对象。

main.xml:(伪代码)
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
...//布局的设置选项
tools:context="com.example.sudoku.Sudoku"