1.人员分工
组员 | 职务 | 负责模块 |
杨振鹏 | 组长 | 机器白棋落点算法,程序逻辑设计 |
傅肇杨 | 组员 | 游戏画面框架,棋子类,指示器 |
宋宇龙 | 组员 | 游戏画面,菜单功能 |
2.前期调查
根据4399小游戏上的调研,确定需如下几步:
1.绘制窗口
2.菜单
3.指示器
4.落子
5.电脑落子
a.随机落子
b.权重分设计
c.四个方向(横向,竖向,右斜,左斜)计算
d.五子情况处理
6. 菜单按键处理
3.主要功能流程图
4.UML图
5.项目运行截图
5.1进入游戏
5.2若干步后
5.3黑棋五子连珠,胜利
5.4开始新游戏
5.5白棋五子连珠,失败
6.关键代码
ai考虑下一处能下的位置
static boolean go(GamePanel gamePanel){
List<Data> datas=new ArrayList<Data>();
//循环找出黑棋,判断此棋子的1横向 2纵向 3右捺 4左撇 是否有4子的情况,
Pointer pointer;
for (int i = 0; i <gamePanel.ROWS; i++) {
for (int j = 0; j < gamePanel.COLS; j++) {
pointer = gamePanel.points[i][j];
if(pointer==null)continue;
if(pointer.getQizi()==0){//没有棋子则跳过
continue;
}
int dir=1;
for (int k = 1; k <= 4; k++) {
dir = k;
Data data = getData(pointer, d