嵌入式系统综合设计报告
题目:基于Android系统的华容道游戏的开发
院
(系):
专业年级(班):
学
学
生:
号:
指 导 教 师:
完 成 时 间:
摘 要
随着嵌入式技术及游戏软件的发展,手机游戏业也进入了一个新的移动游戏时代。
这款华容道游戏设计是在 Android Studio 软件环境下,使用 Java 语言编程实现的可以
在 Android 系统上运行的华容道游戏。游戏需要玩家操控曹操,关羽,张飞,马超,赵
云,黄忠等人物,将曹操板块移出重围。益智休闲,适合闲暇时刻的娱乐消遣。
关键词:嵌入式;Java;华容道;益智休闲
目录
2 方案设计 ..................................................... -
1 设计目的及要求 ............................................... -
-
1.1 目的 ...............................................................................................................................................- 1 -
1.2 题目与要求 ...................................................................................................................................- 1 -
-
2.1 系统环境的搭建 .......................................................................................................................... - 1 -
2.2 华容道游戏的组成框架 .............................................................................................................. - 2 -
2.3 华容道游戏的设计原理及部分程序说明 .................................................................................. - 2 -
2.4 游戏打包工具 ...............................................................................................................................- 5 -
-
-
-
附录 .......................................................................................................................................................- 7 -
游戏主程序 ...........................................................................................................................................- 7 -
游戏逻辑设计 .......................................................................................................................................- 7 -
游戏功能设计 .......................................................................................................................................- 9 -
游戏界面设计 .....................................................................................................................................- 12 -
3 游戏打包测试 ................................................. -
4 总结 ......................................................... -
参考文献 ....................................................... -
1
1
6
6
6
1 设计目的及要求
1.1 目的
设计分为选题、方案设计、编程和测试等几个环节。通过本次设计要完成嵌入式系
统软件的设计工作,熟悉一般的小程序的开发打包过程。
1.2 题目与要求
本次设计题目的具体要求为:
(1)设计一个华容道游戏;
(2)能够在 Android 系统上运行。
华容道游戏是通过移动各个棋子,帮助曹操从初始位置移到棋盘最下方中部,从出
口逃走。不允许跨越棋子,还要设法用最少的步数把曹操移到出口。曹操逃出华容道的
最大障碍是关羽,关羽立马华容道,一夫当关,万夫莫开。关羽与曹操当然是解开这一
游戏的关键。四个刘备军兵是最灵活的,也最容易对付,如何发挥他们的作用也要充分
考虑周全。华容道有一个带二十个小方格的棋盘,代表华容道。
2 方案设计
2.1 系统环境的搭建
本程序使用 Java 语言编写所以首先开始搭建 Java 的编程环境。
1.下载和安装最新版的 JDK 和 JRE。
2.环境变量的配置,如图 1。
图 1 配置环境变量
1
3.成功搭建 Java 环境
2.2 华容道游戏的组成框架
图 3 Java 环境配置
根据题目要求,将华容道小游戏分为 3 个组成部分,各部分的组合如图 1 所示。
游戏主程序
游戏界面
游戏逻辑控制
图 1 华容道游戏组成框图
2.3 华容道游戏的设计原理及部分程序说明
首先建立程序界面,例如板块大小,人物位置表示;再设计游戏逻辑,游戏的使用
方式例如人物的移动,用于人机交互。
部分程序的说明
//初始化游戏区域
for(int i = 0; i < playArea.length; i++)
for(int j = 0; j < playArea[i].length; j++)
playArea[i][j] = 0;
}
public int getBoardValue(int x, int y)
{
}
return playArea[x][y];
2
//初始化游戏板
//前两个数字表示棋子的宽和长,后两个数字是棋子的左上角位置
//最后是引用图片
playBoard = new PlayBoard(4, 5);
Fragment.setPlayBoard(playBoard);
Fragment.addFragment(new Fragment("Cao Cao", Color.WHITE, 2, 2, 1, 0,
R.drawable.role_caocao));
Fragment.addFragment(new Fragment("Zhang Fei", Color.BLUE, 1, 2, 0, 0,
R.drawable.role_zhangfei));
Fragment.addFragment(new Fragment("Huang Zhong", Color.YELLOW, 1, 2, 3, 0,
R.drawable.role_huangzhong));
Fragment.addFragment(new Fragment("Ma Chao", Color.RED, 1, 2, 0, 2,
R.drawable.role_machao));
Fragment.addFragment(new Fragment("Zhao Yun", Color.MAGENTA , 1, 2, 3, 2,
R.drawable.role_zhaoyun));
Fragment.addFragment(new Fragment("Guan Yu", Color.GREEN, 2, 1, 1, 2,
R.drawable.role_guanyu));
Fragment.addFragment(new Fragment("Soldier1", 1, 1, 1, 0, 4,
R.drawable.role_soldier1));
Fragment.addFragment(new Fragment("Soldier2", 2, 1, 1, 3, 4,
R.drawable.role_soldier2));
Fragment.addFragment(new Fragment("Soldier3", 3, 1, 1, 1, 3,
R.drawable.role_soldier3));
Fragment.addFragment(new Fragment("Soldier4", 4, 1, 1, 2, 3,
R.drawable.role_soldier4));
//人物的移动及位置的记录
public Fragment move(int direction)
{
if(playBoard.isFragmentCanBeMoved(this, direction))
switch(direction)
{
case Fragment.DIRECTION_UP:
{
}
this.setyPos(this.getyPos() - 1);
break;
case Fragment.DIRECTION_DOWN:
{
}
this.setyPos(this.getyPos() + 1);
break;
case Fragment.DIRECTION_LEFT:
{
3
this.setxPos(this.getxPos() - 1);
break;
}
case Fragment.DIRECTION_RIGHT:
{
}
this.setxPos(this.getxPos() + 1);
break;
}
playBoard.moveFragment(this);
return this;
}
public String getName() {
return name;
}
public int getHeight() {
return height;
}
public int getLength() {
return length;
}
public void setxPos(int xPos) {
this.xPos = xPos;
}
public void setyPos(int yPos) {
this.yPos = yPos;
}
public int getxPos() {
return xPos;
}
public int getyPos() {
return yPos;
}
public void setValue(int value) {
this.value = value;
}
4
public int getValue() {
return this.value;
}
public int getPicture() {
return this.mPicture;
}
}
2.4 游戏打包工具
本游戏的运行及打包都是用的是 Android studio 程序。在程序的运行无误后,在
Android studio 程序下打开想要生成 APK 文件的项目,点击工具栏上的“Builder”之后
在下拉菜单里面可以看到“Genarate Singed APK”,之后会要求开发者输入相关的密钥
文件和密码,一般使用默认的设置即可。
图 4 用 Android Studio 打包程序
5