?? piecesselect.java
字號:
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
}
if(p.getpColor() == 2){
maxBr = maxRow(boardT,2);
maxBc = minColum(boardT,2);
mit = (maxBr + maxBc) / 2;
if(maxBr > 10 && maxBc < 10)
mit = 10;
//System.out.println("mit:" + mit);
for(int i = mit; i < 20 - maxR; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = mit; i < 20 - maxR; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
}
if(p.getpColor() == 3){
maxBr = minRow(boardT,3);
maxBc = minColum(boardT,3);
mit = (maxBr + maxBc) / 2;
if(maxBr < 10 && maxBc < 10)
mit = 10;
//System.out.println("mit:" + mit);
for(int i = 0; i < mit - maxR; i ++)
for(int j = 0; j < mit - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = mit; i < 20 - maxR; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = mit - maxR; i < 20 - maxR; i ++)
for(int j = mit - maxC; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
}
if(p.getpColor() == 4){
maxBr = minRow(boardT,4);
maxBc = maxColum(boardT,4);
mit = (maxBr + maxBc) / 2;
if(maxBr < 10 && maxBc > 10)
mit = 10;
//System.out.println("mit:" + mit);
for(int i = 0; i < mit; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = 0; i < mit; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = mit; i < 20 - maxR; i ++)
for(int j = mit; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
for(int i = mit; i < 20 - maxR; i ++)
for(int j = 0; j < mit; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
//break;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
return true;
}
}
}
if(canP == false)
for(int i = 0; i < 20 - maxR; i ++)
for(int j = 0; j < 20 - maxC; j ++)
if(boardT[i][j] == 0){
if(canDo(p,boardT,gridT,i,j) == true){
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++)
if(gridT[k][h] == 1){
if(game.getBoardGrid()[i + k][j + h] != 0){
canP = false;
return false;
//game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1 && canP == true){
game.getBoardGrid()[i + k][j + h] = p.getpColor();
}
}
System.out.println("www");
return true;
}
}
return false;
}
//是否能自動放上棋子
private boolean canDo(Pieces p, int[][] boardT, int[][] gridT, int i, int j){
boolean can = false;
for(int k = 0; k < p.getScore(); k ++)
for(int h = 0; h < p.getScore(); h ++){
if(gridT[k][h] == 1){
if(canBePutAuto(p,boardT,i + k,j + h) == true)
can = true;
if(canNotBePutAuto(p,boardT,i + k,j + h) == false)
return false;
}
}
return can;
}
//自動情況下能放棋子的情況
private boolean canBePutAuto(Pieces p, int[][] boardT, int i, int j){
int color = p.getpColor();
int m = 0, n = 0;
if(blueS == 0 || yellowS == 0 || redS == 0 || greenS == 0){
switch(turn){
case 1:{m = 0; n = 0;}
break;
case 2:{m = 0; n = 19;}
break;
case 3:{m = 19; n = 19;}
break;
case 4:{m = 19; n =0;}
break;
default:{m = 0; n = 0;}
break;
}
}
try{
if((turn == 1 && blueS == 0) || (turn == 2 && yellowS == 0)
|| (turn == 3 && redS == 0) || (turn == 4 && greenS == 0)){
if(i == m && j == n){
if(turn == 1 && blueS == 0)
blueS = 2;
else if(turn == 2 && yellowS == 0)
yellowS = 2;
else if(turn == 3 && redS == 0)
redS = 2;
else if(turn == 4 && greenS == 0)
greenS = 2;
return true;
}
else
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -