📄 five.java
字号:
x = x - displace_x;
}
if(count >= 5)
{
GameState = 3;
winner = check;
ThreadStart();
} else
if(direction != -1)
WinCheck2();
}
public void ReStart()
{
for(int i = 0; i < length; i++)
{
for(int j = 0; j < length; j++)
{
grids[i][j].Initial();
powerP[i][j] = 0;
powerC[i][j] = 0;
flag[i][j] = "0";
comboP[i][j] = 0;
comboC[i][j] = 0;
}
}
winner = 0;
steps.clear();
GameState = 2;
StepCount = 0;
dialog.setVisible(turn);
}
public void FiveRandom()
{
displace_y = 0;
do
{
displace_x = (int)(Math.random() * 8D);
x = locX + dir[displace_x][0];
y = locY + dir[displace_x][1];
if(!dir2[displace_x])
{
displace_y = displace_y + 1;
dir2[displace_x] = true;
}
} while((x < 0 || x >= length || y < 0 || y >= length || grid[x][y] != 0) && displace_y < 8);
for(int i = 0; i < 8; i++)
dir2[i] = false;
if(x >= 0 && x < length && y >= 0 && y < length && grid[x][y] == 0)
setMark(x, y);
else
FiveRandom2();
}
public void FiveRandom2()
{
do
{
x = (int)(Math.random() * (double)length);
y = (int)(Math.random() * (double)length);
} while(grid[x][y] != 0);
setMark(x, y);
}
public void FiveAI()
{
for(int i = 0; i < length; i++)
{
for(int j = 0; j < length; j++)
{
if(flag[i][j] != "0")
continue;
if(j + 4 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).append(flag[i][j + 3]).append(flag[i][j + 4]).toString();
isEqual(i, j, line);
}
if(j - 1 >= 0 && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i][j - 1]).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).append(flag[i][j + 3]).toString();
isEqual(i, j, line);
}
if(j - 2 >= 0 && j + 2 <= boarder)
{
line = (new StringBuilder()).append(flag[i][j - 2]).append(flag[i][j - 1]).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).append(flag[i + 3][j]).append(flag[i + 4][j]).toString();
isEqual(i, j, line);
}
if(i - 1 >= 0 && i + 3 <= boarder && !turn)
{
line = (new StringBuilder()).append(flag[i - 1][j]).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).append(flag[i + 3][j]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && i + 2 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 2][j]).append(flag[i - 1][j]).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).append(flag[i - 3][j]).append(flag[i - 4][j]).toString();
isEqual(i, j, line);
}
if(i + 1 <= boarder && i - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i + 1][j]).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).append(flag[i - 3][j]).toString();
isEqual(i, j, line);
}
if(i + 2 <= boarder && i - 2 >= 0)
{
line = (new StringBuilder()).append(flag[i + 2][j]).append(flag[i + 1][j]).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).toString();
isEqual(i, j, line);
}
if(j - 4 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).append(flag[i][j - 3]).append(flag[i][j - 4]).toString();
isEqual(i, j, line);
}
if(j + 1 <= boarder && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i][j + 1]).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).append(flag[i][j - 3]).toString();
isEqual(i, j, line);
}
if(j + 2 <= boarder && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i][j + 2]).append(flag[i][j + 1]).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0 && j + 4 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).append(flag[i - 3][j + 3]).append(flag[i - 4][j + 4]).toString();
isEqual(i, j, line);
}
if(i + 1 <= length - 1 && j - 1 >= 0 && i - 3 >= 0 && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i + 1][j - 1]).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).append(flag[i - 3][j + 3]).toString();
isEqual(i, j, line);
}
if(i + 2 <= length - 1 && j - 2 >= 0 && i - 2 >= 0 && j + 2 <= boarder)
{
line = (new StringBuilder()).append(flag[i + 2][j - 2]).append(flag[i + 1][j - 1]).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0 && j - 4 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).append(flag[i - 3][j - 3]).append(flag[i - 4][j - 4]).toString();
isEqual(i, j, line);
}
if(i + 1 <= boarder && j + 1 <= boarder && i - 3 >= 0 && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i + 1][j + 1]).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).append(flag[i - 3][j - 3]).toString();
isEqual(i, j, line);
}
if(i + 2 <= boarder && j + 2 <= boarder && i - 2 >= 0 && j - 2 >= 0)
{
line = (new StringBuilder()).append(flag[i + 2][j + 2]).append(flag[i + 1][j + 1]).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder && j + 4 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).append(flag[i + 3][j + 3]).append(flag[i + 4][j + 4]).toString();
isEqual(i, j, line);
}
if(i - 1 >= 0 && j - 1 >= 0 && i + 3 <= boarder && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 1][j - 1]).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).append(flag[i + 3][j + 3]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && j - 2 >= 0 && i + 2 <= boarder && j + 2 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 2][j - 2]).append(flag[i - 1][j - 1]).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder && j - 4 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).append(flag[i + 3][j - 3]).append(flag[i + 4][j - 4]).toString();
isEqual(i, j, line);
}
if(i - 1 >= 0 && j + 1 <= boarder && i + 3 <= boarder && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i - 1][j + 1]).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).append(flag[i + 3][j - 3]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && j + 2 <= boarder && i + 2 <= boarder && j - 2 >= 0)
{
line = (new StringBuilder()).append(flag[i - 2][j + 2]).append(flag[i - 1][j + 1]).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).toString();
isEqual(i, j, line);
}
if(j + 5 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).append(flag[i][j + 3]).append(flag[i][j + 4]).append(flag[i][j + 5]).toString();
isEqual(i, j, line);
}
if(j + 4 <= boarder && j - 1 >= 0)
{
line = (new StringBuilder()).append(flag[i][j - 1]).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).append(flag[i][j + 3]).append(flag[i][j + 4]).toString();
isEqual(i, j, line);
}
if(j - 2 >= 0 && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i][j - 2]).append(flag[i][j - 1]).append("X").append(flag[i][j + 1]).append(flag[i][j + 2]).append(flag[i][j + 3]).toString();
isEqual(i, j, line);
}
if(i + 5 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).append(flag[i + 3][j]).append(flag[i + 4][j]).append(flag[i + 5][j]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder && i - 1 >= 0)
{
line = (new StringBuilder()).append(flag[i - 1][j]).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).append(flag[i + 3][j]).append(flag[i + 4][j]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && i + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 2][j]).append(flag[i - 1][j]).append("X").append(flag[i + 1][j]).append(flag[i + 2][j]).append(flag[i + 3][j]).toString();
isEqual(i, j, line);
}
if(i - 5 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).append(flag[i - 3][j]).append(flag[i - 4][j]).append(flag[i - 5][j]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0 && i + 1 <= boarder)
{
line = (new StringBuilder()).append(flag[i + 1][j]).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).append(flag[i - 3][j]).append(flag[i - 4][j]).toString();
isEqual(i, j, line);
}
if(i + 2 <= boarder && i - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i + 2][j]).append(flag[i + 1][j]).append("X").append(flag[i - 1][j]).append(flag[i - 2][j]).append(flag[i - 3][j]).toString();
isEqual(i, j, line);
}
if(j - 5 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).append(flag[i][j - 3]).append(flag[i][j - 4]).append(flag[i][j - 5]).toString();
isEqual(i, j, line);
}
if(j - 4 >= 0 && j + 1 <= length - 1)
{
line = (new StringBuilder()).append(flag[i][j + 1]).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).append(flag[i][j - 3]).append(flag[i][j - 4]).toString();
isEqual(i, j, line);
}
if(j + 2 <= boarder && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i][j + 2]).append(flag[i][j + 1]).append("X").append(flag[i][j - 1]).append(flag[i][j - 2]).append(flag[i][j - 3]).toString();
isEqual(i, j, line);
}
if(i - 5 >= 0 && j + 5 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).append(flag[i - 3][j + 3]).append(flag[i - 4][j + 4]).append(flag[i - 5][j + 5]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0 && j + 4 <= boarder && i + 1 <= boarder && j - 1 >= 0)
{
line = (new StringBuilder()).append(flag[i + 1][j - 1]).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).append(flag[i - 3][j + 3]).append(flag[i - 4][j + 4]).toString();
isEqual(i, j, line);
}
if(i + 2 <= boarder && j - 2 >= 0 && i - 3 >= 0 && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i + 2][j - 2]).append(flag[i + 1][j - 1]).append("X").append(flag[i - 1][j + 1]).append(flag[i - 2][j + 2]).append(flag[i - 3][j + 3]).toString();
isEqual(i, j, line);
}
if(i - 5 >= 0 && j - 5 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).append(flag[i - 3][j - 3]).append(flag[i - 4][j - 4]).append(flag[i - 5][j - 5]).toString();
isEqual(i, j, line);
}
if(i - 4 >= 0 && j - 4 >= 0 && i + 1 <= boarder && j + 1 <= boarder)
{
line = (new StringBuilder()).append(flag[i + 1][j + 1]).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).append(flag[i - 3][j - 3]).append(flag[i - 4][j - 4]).toString();
isEqual(i, j, line);
}
if(j + 2 <= boarder && i + 2 <= boarder && i - 3 >= 0 && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i + 2][j + 2]).append(flag[i + 1][j + 1]).append("X").append(flag[i - 1][j - 1]).append(flag[i - 2][j - 2]).append(flag[i - 3][j - 3]).toString();
isEqual(i, j, line);
}
if(i + 5 <= boarder && j + 5 <= boarder)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).append(flag[i + 3][j + 3]).append(flag[i + 4][j + 4]).append(flag[i + 5][j + 5]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder && j + 4 <= boarder && i - 1 >= 0 && j - 1 >= 0)
{
line = (new StringBuilder()).append(flag[i - 1][j - 1]).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).append(flag[i + 3][j + 3]).append(flag[i + 4][j + 4]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && j - 2 >= 0 && i + 3 <= boarder && j + 3 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 2][j - 2]).append(flag[i - 1][j - 1]).append("X").append(flag[i + 1][j + 1]).append(flag[i + 2][j + 2]).append(flag[i + 3][j + 3]).toString();
isEqual(i, j, line);
}
if(i + 5 <= boarder && j - 5 >= 0)
{
line = (new StringBuilder()).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).append(flag[i + 3][j - 3]).append(flag[i + 4][j - 4]).append(flag[i + 5][j - 5]).toString();
isEqual(i, j, line);
}
if(i + 4 <= boarder && j - 4 >= 0 && i - 1 >= 0 && j + 1 <= boarder)
{
line = (new StringBuilder()).append(flag[i - 1][j + 1]).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).append(flag[i + 3][j - 3]).append(flag[i + 4][j - 4]).toString();
isEqual(i, j, line);
}
if(i - 2 >= 0 && j + 2 <= boarder && i + 3 <= boarder && j - 3 >= 0)
{
line = (new StringBuilder()).append(flag[i - 2][j + 2]).append(flag[i - 1][j + 1]).append("X").append(flag[i + 1][j - 1]).append(flag[i + 2][j - 2]).append(flag[i + 3][j - 3]).toString();
isEqual(i, j, line);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -