Java连连看课程设计(6)

2019-01-07 14:08

信息与计算科学0601王丹平060701024

// 出现的不同图片个数 private int maxKinds = 4; public Map(){ init(); }

public int[][] getMap(){ return map; }

private void init(){

int[] tempArr = new int[Settings.ROWS * Settings.COLUMNS]; int len = tempArr.length;

// 根据图片的种类数来确定数组大小,如有64张图片,每四个为一样的,则

需要图片数为64/4=16

for (int i = 0; i < len / maxKinds; i++){ }

// 打乱一维数组内数据的排列 random(tempArr); // 填充到二维数组中

for (int i = 1; i < Settings.ROWS + 1; i++){

for (int j = 1; j < Settings.COLUMNS + 1; j++){

this.map[i][j] = tempArr[(i - 1) * Settings.COLUMNS

+ (j - 1)];

tempArr[i * 4] = i + 1; tempArr[i * 4 + 1] = i + 1; tempArr[i * 4 + 2] = i + 1; tempArr[i * 4 + 3] = i + 1;

14

信息与计算科学0601王丹平060701024

} }

}

private void random(int[] array){ Random random = new Random(); int len = array.length; for (int i = len; i > 0; i--){ } } /**

* 判断是否在一条直线上,这里不去比较两者值是否相等,主要用于后面

int j = random.nextInt(i); int temp = array[i - 1]; array[i - 1] = array[j]; array[j] = temp;

两个拐点的情况

* p1之前的点 * p2当前所点的点 * true 相通,false 不通 */

public boolean oneLineWithoutValue(ArrayPoint p1, ArrayPoint p2){ if (horizonMatch(p1, p2)){ }

else if (verticalMatch(p1, p2)){

return true; return true;

15

信息与计算科学0601王丹平060701024

}

return false; } /**

* 判断是否在一条直线上,其中包括了垂直和水平两种情况 * p1之前的点 * p2当前所点的点 * true 相通,false 不通 */

public boolean oneLine(ArrayPoint p1, ArrayPoint p2){ if (p1.value != p2.value){ }

if (oneLineWithoutValue(p1, p2)){ }

return false; } /**

* 竖线上的判断 * p1之前的点 * p2当前所点的点 * true 相通,false 不通 */

public boolean verticalMatch(ArrayPoint p1, ArrayPoint p2){ if (p1.j != p2.j){

return true; return false;

16

信息与计算科学0601王丹平060701024

}

return false;

if (p1.i > p2.i){ }

// 之间的相隔的棋子数

int spaceCount = p2.i - p1.i; // 如果相邻,直接消除

if (spaceCount == 1 && p1.value == p2.value){ }

for (int i = p1.i + 1; i < p2.i; i++){ }

return true; } /**

* 水平方向的判断 * p1之前的点

ArrayPoint point = new ArrayPoint(i, p1.j, map[i][p1.j]); // 只要其值为0就表示没有棋子 if (point.value != 0){ }

return false; return true;

ArrayPoint temp = null; temp = p1; p1 = p2; p2 = temp;

17

信息与计算科学0601王丹平060701024

* p2当前所点的点 * true 相通,false 不通 */

public boolean horizonMatch(ArrayPoint p1, ArrayPoint p2){ // 如果行行号不等的话,刚不是水平方向的结果 if (p1.i != p2.i){ }

if (p1.j > p2.j){ }

// 水平相隔棋子数

int spaceCount = p2.j - p1.j; // 如果相邻,直接消除

if (spaceCount == 1 && p1.value == p2.value){ }

for (int i = p1.j + 1; i < p2.j; i++){ }

ArrayPoint p = new ArrayPoint(p1.i, i, map[p1.i][i]); if (p.value != 0){ }

return false; return true;

ArrayPoint temp = null; temp = p1; p1 = p2; p2 = temp; return false;

18


Java连连看课程设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018东北行政伦理期末考试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: