基于ANDROID的简单扫雷小游戏论文
大庆师范学院
《Android应用设计》
课程设计报告
题目:基于android的简单扫雷小游戏
专业班级:计算机科学与技术(嵌入式方向)
设 计 者: 王珂:2
王盼盼:3
赵玉莹:3
刘阳:4
李若男:5
指导老师: 许有军
设计时间:2013-2014(1)
报告完成日期年月4号宋体,1.5倍行距)在此说明TableLayout(MineField),用来显示扫雷区的框架。
程序的class类:
Blocked.Java和MinesweeperGame.java
程序的主要函数:
游戏开始函数:startNewGame();
游戏显示函数:showMineFiled();
创建新游戏函数:createMineFiled();
完成游戏函数:finishGame();
设置时间函数:setmines();
玩家胜利函数:winGame();
玩家失败函数:endExistingGame();
程序详解
(1)游戏开始函数startNewGame
private void startNewGame()
{
// plant mines and do rest of the calculations
createMineField();
// display all blocks in UI
showMineField();
minesToFind = totalNumberOfMines;
isGameOver = false;
secondsPassed = 0;
}
private void showMineField()
{
// remember we will not show 0th and last Row and Columns
// they are used for calculation purposes only
for (int row = 1; row < numberOfRowsInMineField + 1; row++)
{
TableRow tableRow = new TableRow(this);
tableRow.setLayoutParams(new LayoutParams((blockDimension + 2 * blockPadding) * numberOfColumnsInMineField, blockDimension + 2 * blockPadding));
for (int column = 1; column < numberOfColumnsInMineField + 1; column++)
{
blocks[row][column].setLayoutParams(new LayoutParams(
blockDimension + 2 * blockPadding,
blockDimension + 2 * blockPadding));
blocks[row][column].setPadding(blockPadding, blockPadding, blockPadding, blockPadding);
tableRow.addView(blocks[row][column]);
}
mineField.addView(tableRow,new TableLayout.LayoutParams(
(blockDimension + 2 * blockPadding) * numberOfColumnsInMineField, blockDimension + 2 * blockPadding));
}
}
private void endExistingGame()
{
stopTimer(); // stop if timer is running
txtTimer.setText("000"); // revert all text
txtMineCount.setText("010"); // revert mines count
btnSmile.setBackgroundResource(R.drawable.smile);
// remove all rows from mineField TableLayout
mineField.removeAllViews();
// set al