?? 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 + -