import java.util.Random;
public class LLKMatrix
{
private int matrix[][];
private int VSize = 0;
private int HSize = 0;
private int SeedCount = 0;
private int Score1 = 10;
private int Score2 = 20;
private int Score3 = 50;
public int VConn = - 10;
public int HConn = - 11;
public int SConn = - 10;
public int LDConn = - 12;
public int LUConn = - 13;
public int RDConn = - 14;
public int RUConn = - 15;
public LLKMatrix(int h, int v, int s)
{
if ((v * h) % 2 == 0)
{
VSize = v;
HSize = h;
SeedCount = s;
initMatrix(HSize, VSize);
}
}
public int getAt(int x, int y)
{
if (x > HSize || x < 1 || y > VSize || y < 1)
{
return - 1;
}
else
{
return matrix[x - 1][y - 1];
}
}
public int setAt(int x, int y, int b)
{
if (x > HSize || x < 1 || y > VSize || y < 1)
{
return 0;
}
else
{
matrix[x - 1][y - 1] = b;
return 1;
}
}
public void shuffleMatrix()
{
Random r = new Random();
clearTrace();
for (int x = 0; x < HSize; x++)
{
for (int y = 0; y < VSize; y++)
{
int xx = Math.abs(r.nextInt()) % HSize;
int yy = Math.abs(r.nextInt()) % VSize;
int b = matrix[x][y];
matrix[x][y] = matrix[xx][yy];
matrix[xx][yy] = b;
}
}
}
public void clearTrace()
{
for (int x = 0; x < HSize; x++)
{
for (int y = 0; y < VSize; y++)
{
if (matrix[x][y] < - 1)
{
matrix[x][y] = - 1;
}
}
}
}
public int judge(int x, int y, int xx, int yy, boolean mark)
{
x--;
y--;
xx--;
yy--;
// outputMatrix(matrix);
if (x == xx && y == yy)
{
return 0;//同一个位置
}
if (x < 0 || x > HSize - 1 || y < 0 || y > VSize - 1 || xx < 0 || xx >
HSize - 1 || yy < 0 || yy > VSize - 1)
{
return 0;//不在区域
}
if (matrix[x][y] != matrix[xx][yy])
{
return 0;//不匹配
}
if (matrix[x][y] < 0 || matrix[xx][yy] < 0)
{
return 0;//空
}
int i;
int a;
if (x == xx)//同一列
{
if (y > yy)
{
int c = y;
y = yy;
yy = c;
}
a = 0;
for (i = y + 1; i < yy; i++)
{
a += matrix[x][i];
}
if ( - a == yy - y - 1)
{
if (mark)
{
for (i = y + 1; i < yy; i++)
{
matrix[x][i] = VConn;//纵向相连
}
}
return Score1;
}
}
if (y == yy)//同一行
{
if (x > xx)
{
int c = x;
x = xx;
xx = c;
}
a = 0;
for (i = x + 1; i < xx; i++)
{
a += matrix[i][y];
}
if ( - a == xx - x - 1)
{
if (mark)
{
for (i = x + 1; i < xx; i++)
{
matrix[i][y] = HConn;//横向相连
}
}
return Score1;
}
}//并排
a = 0;
if (x > xx)
{
int c = x;
x = xx;
xx = c;
c = y;
y = yy;
yy = c;
}
if (y < yy)
{
for (i = x + 1; i <= xx; i++)
{
a += matrix[i][y];
}
for (i = y + 1; i < yy; i++)
{
a += matrix[xx][i];
}
if ( - a == ((xx - x) + yy) - y - 1)
{
if (mark)
{
for (i = x + 1; i <= xx; i++)
{
matrix[i][y] = HConn;
}
for (i = y + 1; i < yy; i++)
{
matrix[xx][i] = VConn;
}
matrix[xx][y] = LDConn;
}
return Score2;
}
a = 0;
for (i = x; i < xx; i++)
{
a += matrix[i][yy];
}
for (i = y + 1; i < yy; i++)
{
a += matrix[x][i];
}
if ( - a == ((xx - x) + yy) - y - 1)
{
if (mark)
{
for (i = x; i < xx; i++)
{
matrix[i][yy] = HConn;
}
for (i = y + 1; i < yy; i++)
{
matrix[x][i] = VConn;
}
matrix[x][yy] = RUConn;
}
return Score2;
}
}
else
{
for (i = x + 1; i <= xx; i++)
{
a += matrix[i][y];
}
for (i = yy + 1; i < y; i++)
{
a += matrix[xx][i];
}
if ( - a == ((xx - x) + y) - yy - 1)
{
if (mark)
{
for (i = x + 1; i <= xx; i++)
{
matrix[i][y] = HConn;
}
for (i = yy + 1; i < y; i++)
{
matrix[xx][i] = VConn;
}
matrix[xx][y] = LUConn;
}
return Score2;
}
a = 0;
for (i = x; i < xx; i++)
{
a += matrix[i][yy];
}
for (i = yy + 1; i < y; i++)
{
a += matrix[x][i];
}
if ( - a == ((xx - x) + y) - yy - 1)
{
if (mark)
{
for (i = x; i < xx; i++)
{
matrix[i][yy] = HConn;
}
for (i = yy + 1; i < y; i++)
{
matrix[x][i] = VConn;
}
matrix[x][yy] = RDConn;
}
return Score2;
}
}
int y1;
int y2;
if (y > yy)
{
y1 = yy;
y2 = y;
}
else
{
y1 = y;
y2 = yy;
}
i = x;
for (int s = 0; Math.abs(s) < HSize;)
{
s = - s;
if (s >= 0)
{
s++;
}
i = x + s;
if (i < HSize && i >= 0)
{
a = 0;
for (int j = y1; j <= y2; j++)
{
a += matrix[i][j];
}
if ( - a == (y2 - y1) + 1)
{
a = 0;
if (x > i)
{
for (int c = i; c < x; c++)
{
a += ma
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
LLK.rar (98个子文件)
LLK
.project 535B
bin
5.wav 2KB
Hint.png 224B
MainMenu.class 3KB
sound3.png 132B
set.png 6KB
sound1.png 120B
LLKMIDlet.class 1KB
4.wav 5KB
TimerTask.class 489B
sound4.png 142B
1.wav 964B
help.png 7KB
wonall.png 2KB
figures.png 49KB
shuffle.png 289B
background.png 46KB
about.png 6KB
sound2.png 125B
3.wav 13KB
won.png 1KB
pause.png 1KB
2.wav 5KB
6.wav 4KB
llk.png 245B
LLKMatrix.class 11KB
gameover.png 2KB
GameWinCanvas.class 3KB
cong.png 2KB
sound0.png 118B
menu.png 17KB
LLKCanvas.class 14KB
.settings
org.eclipse.jdt.core.prefs 208B
LLK.jad 185B
src
GameWinCanvas.java 3KB
TimerTask.java 281B
LLKMIDlet.java 760B
LLKMatrix.java 30KB
LLKCanvas.java 27KB
MainMenu.java 5KB
verified
libs
classes
5.wav 2KB
Hint.png 224B
MainMenu.class 3KB
sound3.png 132B
set.png 6KB
sound1.png 120B
LLKMIDlet.class 1KB
4.wav 5KB
TimerTask.class 517B
sound4.png 142B
1.wav 964B
help.png 7KB
wonall.png 2KB
figures.png 49KB
shuffle.png 289B
background.png 46KB
about.png 6KB
sound2.png 125B
3.wav 13KB
won.png 1KB
pause.png 1KB
2.wav 5KB
6.wav 4KB
llk.png 245B
LLKMatrix.class 16KB
gameover.png 2KB
GameWinCanvas.class 3KB
cong.png 2KB
sound0.png 118B
menu.png 17KB
LLKCanvas.class 16KB
.eclipseme 219B
res
5.wav 2KB
Hint.png 224B
sound3.png 132B
set.png 6KB
sound1.png 120B
4.wav 5KB
sound4.png 142B
1.wav 964B
help.png 7KB
wonall.png 2KB
figures.png 49KB
shuffle.png 289B
background.png 46KB
about.png 6KB
sound2.png 125B
3.wav 13KB
won.png 1KB
pause.png 1KB
2.wav 5KB
6.wav 4KB
llk.png 245B
gameover.png 2KB
cong.png 2KB
sound0.png 118B
menu.png 17KB
.classpath 242B
共 98 条
- 1
资源评论
- 詹素素2017-02-19很不错的代码,适合新手学习。
- meego20112013-01-12真心不错 很好的源代码
- shaobin_cn2014-10-11很不错的代码,适合新手学习。
qq82269163
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功