0308软件体系结构实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南工业大学实验报告

(2015~2016学年-第2学期)

课程名称:软件体系结构课程编号:51610192 地点:6313/6316/6308/6320

一、实验目的:

验证C/S风格的工作机制。

二、实验内容:

针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。熟

悉C/S风格的工作机制,对所考察的系统进行C/S风格客户端软件体系结构设

计的验证。(针对不同的特定应用系统具体表述)。

三.编程环境

Windows 7

Visual Studio | Dev-C++

Eclipse

四.实验代码

1.画棋盘

// 画横线

for (int i = 0; i <= ROWS; i++) {

g.drawLine(MARGIN, MARGIN + i * GRID_SPAN, MARGIN + COLS *

GRID_SPAN, MARGIN + i * GRID_SPAN);

}

for (int i = 0; i <= COLS; i++) {// 画竖线

g.drawLine(MARGIN + i * GRID_SPAN, MARGIN, MARGIN + i *

GRID_SPAN, MARGIN + ROWS * GRID_SPAN);

}

2.将鼠标点击转为网格索引

public void mouseMoved(MouseEvent e) {

int x1 = (e.getX() - MARGIN + GRID_SPAN / 2) / GRID_SPAN;

// 将鼠标点击的坐标位置转成网格索引

int y1 = (e.getY() - MARGIN + GRID_SPAN / 2) / GRID_SPAN;

if (x1 < 0 || x1 > ROWS || y1 < 0 || y1 > COLS || gameOver || findChess(x1, y1))

setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

// 设置成默认状态

else

setCursor(new Cursor(Cursor.HAND_CURSOR));

}

3.增加棋子

// ********************** 增加黑色棋子

public Point[] BlackAddChess(int x, int y) {

if (!isBlack) {

String msg = String.format("黑子已经落子,轮到白子");

JOptionPane.showMessageDialog(this, msg);

return null;

} else

return addChess(x, y);

}

// ********************** 增加白色棋子

public Point[] WhiteAddChess(int x, int y) {

if (isBlack) {

String msg = String.format("白子已经落子,轮到黑子");

JOptionPane.showMessageDialog(this, msg);

return null;

} else

return addChess(x, y);

}

4.悔棋

public void goback() {

if (chessCount == 0)

return;

chessList[chessCount - 1] = null;

chessCount--;

if (chessCount > 0) {

xIndex = chessList[chessCount - 1].getX();

yIndex = chessList[chessCount - 1].getY();

}

isBlack = !isBlack;

repaint();

}

5.判断输赢(提供横向向西判断,其余方向类似)

private boolean isWin() {

int continueCount = 1;// 连续棋子的个数

// --------------横向寻找-----> 横向向西寻找

for (int x = xIndex - 1; x >= 0; x--) {

Color c = isBlack ? Color.black : Color.white;

if (getChess(x, yIndex, c) != null) {

continueCount++;

} else

break;

}}

五.实验结果

悔棋前:

悔棋后:

赢棋:

河南工业大学实验报告

(2015~2016学年-第2学期)

课程名称:软件体系结构课程编号:51610192 地点:6313/6316/6308/6320

一、实验目的:

验证C/S风格的工作机制。

二、实验内容:

针对某个应用系统,选用C/S风格作为这个系统的软件体系结构风格。熟

悉C/S风格的工作机制,对所考察的系统进行C/S风格服务器软件体系结构设

计的验证。(针对不同的特定应用系统具体表述)。

三.编程环境

Windows 7

Visual Studio | Dev-C++

Eclipse

四.实验代码

1. public Point WhiteNextStep(Point[] chessList){}:根据当前棋局,确定白子的下一个最佳位置

public Point WhiteNextStep(Point[] chessList) {

ArrayList> NextPoint = NextCandidatedPoints(chessList);

ArrayList blackList = NextPoint.get(0);

ArrayList whiteList = NextPoint.get(1);

int blackLongnum = findTheLongestChessNums(blackList.get(0), chessList);

int whiteLongnum = findTheLongestChessNums(whiteList.get(0), chessList);

if (whiteLongnum < blackLongnum) {

// 白的的连子数比黑子要少,就从黑子的候选结点中选择评价函数最高的结点

ArrayList candicatedPoint = PointEvalution(blackList, chessList, blackLongnum);

相关文档
最新文档