📄 computer.java
字号:
//机器永远都执黑棋
public class Computer{
public int row,line;//记录求得的计算机下棋位置行/列
public IfWin judge;
public int power;//权值来设定难度
public int player1lines[][];//白旗在对应位置的权值
public int player2lines[][];//黑棋在对应位置的权值
public Computer(IfWin judge){
this.judge=judge;
player1lines=new int[15][15];
player2lines=new int[15][15];
power=2;//,默认为中级难度
}
//计算各点对黑白棋子分别权值
private void count(){
int i,j,k;
for(i=0;i<=14;i++)
for(j=0;j<=14;j++){
//总分数清零
player1lines[i][j]=0;
player2lines[i][j]=0;
if(judge.chess.point[i][j]==2){
for(k=0;k<572;k++){
if(judge.chess.tableplayer1[i][j][k]){
switch(judge.ifwin[0][k]){
case 1:
player1lines[i][j]+=30*power;//形成一连子时,加30分
break;
case 2:
player1lines[i][j]+=120*power;//形成二连子时,加120分
break;
case 3:
player1lines[i][j]+=300*power;//形成三连子时,加300分
break;
case 4:
player1lines[i][j]+=720*power;//形成四连子时,加720分
break;
}
switch(judge.ifwin[1][k]){
case 1:
player2lines[i][j]+=90;//形成一连子时,加30分
break;
case 2:
player2lines[i][j]+=360;//形成二连子时,加120分
break;
case 3:
player2lines[i][j]+=900;//形成三连子时,加300分
break;
case 4:
player2lines[i][j]+=2160;//形成四连子时,加720分
break;
}
}
}
}
}
}
public void location(){
int lines1max=0,lines2max=0;
int l1max_i=0,l1max_j=0;
int l2max_i=0,l2max_j=0;
count();
for(int i=0;i<15;i++)
for(int j=0;j<15;j++)
{
if(judge.chess.point[i][j]==2)
{
if(player2lines[i][j]>=lines2max){
lines2max=player2lines[i][j];
l2max_i=i;l2max_j=j;
}
if(player1lines[i][j]>=lines1max){
lines1max=player1lines[i][j];
l1max_i=i;l1max_j=j;
}
}
}
if(lines2max>lines1max)
{
row=l2max_i;line=l2max_j;
}
else
{
row=l1max_i;line=l1max_j;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -