?? piecesselect.java
字號:
//System.out.print(gr[i][j] + " ");
if(gr[i][j] == 1){
br[(int)cy + i][(int)rx + j] = temp.getpColor();
}
}
}
setCanPut(false);
game.setBoardGrid(br);
temp.setOnBoard(true);
game.setPOnMouse(false);
setOnMouse(false);
//game.repaint();
finishP = true;
//System.out.println("InputSe:" + this.turn);
}else{
setCanPut(false);
finishP = false;
System.out.println("InputSe:" + this.turn);
return 0;
}
return 1;
}
//鼠標滾輪事件
public void mouseWheelMoved(MouseWheelEvent e){
int x = e.getX();
int y = e.getY();
//System.out.println("aa");
if(e.getWheelRotation() > 0 && onMouse == true){
Pieces t = this.temp;
int[][] gr = t.getGrid();
int s = t.getScore();
int[][] tr = new int[s][s];
for(int i = 0; i < s; i ++)
for(int j = 0; j < s; j ++)
tr[j][s - 1 - i] = gr[i][j];
t.setGrid(tr);
game.setPx(x);
game.setPy(y);
game.setTemp(t);
game.setCir(1);
game.repaint();
}
else if(e.getWheelRotation() < 0 && onMouse == true){
Pieces t = this.temp;
int[][] gr = t.getGrid();
int s = t.getScore();
int[][] tr = new int[s][s];
for(int i = 0; i < s; i ++)
for(int j = 0; j < s; j ++)
tr[s - 1 - j][i] = gr[i][j];
t.setGrid(tr);
game.setPx(x);
game.setPy(y);
game.setTemp(t);
game.setCir(1);
game.repaint();
}
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void setOnMouse(boolean onMouse){
this.onMouse = onMouse;
}
public boolean getOnMouse(){
return onMouse;
}
private void setCanPut(boolean can){
this.canPut = can;
}
private void setTemp(Pieces temp){
this.temp = temp;
}
private Pieces getTemp(){
return temp;
}
//自動運行
private void autoRun(int tr){
LinkedList l = new LinkedList();
Random r = new Random();
boolean finish = false;
int ro = 0;
int rd = 0;
int[][] boardT = new int[21][21];
int[] b3 = new int[2]; b3[0] = 0; b3[1] = 0;
int[] b4 = new int[5]; b4[0] = 0; b4[1] = 0; b4[2] = 0; b4[3] = 0; b4[4] = 0;
int[] b5 = new int[12];
int[] c2 = new int[6];
c2[0] = 0; c2[1] = 0; c2[2] = 0; c2[3] = 0; c2[4] = 0; c2[5] = 0;
for(int i = 0; i < 12; i ++)
b5[i] = 10 + i;
for(int i = 0; i < 21; i ++)
for(int j = 0; j < 21; j ++)
boardT[i][j] = game.getBoardGrid()[i][j];
rd = r.nextInt(5);
for(int i = 0; i < 6; i ++){
if((rd + i) > 5)
c2[i] = c1[(rd + i ) - 6];
else
c2[i] = c1[rd + i];
}
rd = r.nextInt(1);
b3[0] = a3[rd];
b3[1] = a3[1 - rd];
rd = r.nextInt(4);
for(int i = 0; i < 5; i ++){
if((rd + i) > 4)
b4[i] = a4[(rd + i ) - 5];
else
b4[i] = a4[rd + i];
}
rd = r.nextInt(11);
for(int i = 0; i < 12; i ++){
if((rd + i) > 11)
b5[i] = a5[(rd + i ) - 12];
else
b5[i] = a5[rd + i];
//System.out.print(b5[i]+" ");
}
//System.out.println();
switch(tr){
case 1: l = game.getBluePieces().getImagePieces();
break;
case 2: l = game.getYellowPieces().getImagePieces();
break;
case 3: l = game.getRedPieces().getImagePieces();
break;
case 4: l = game.getGreenPieces().getImagePieces();
break;
default: {
System.out.println("Default");
l = game.getBluePieces().getImagePieces();
}
break;
}
for(int i = 0; i < 12; i ++){
Iterator ite = l.iterator();
while(ite.hasNext() && finish == false){
Pieces p = (Pieces)ite.next();
ro = 0;
if(p.getTypeNo() == b5[i] && p.getOnBoard() == false && p.getInUse() == true){
while( finish == false && ro < 6){
if(checkBoard(p,boardT,c2[ro]) == true){
p.setOnBoard(true);
finish = true;
}
ro ++;
}
/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
System.out.println(b5[i]);
p.setOnBoard(true);
finish = true;
}*/
}
}
}
if(finish == false)
for(int i = 0; i < 5; i ++){
Iterator ite = l.iterator();
while(ite.hasNext() && finish == false){
Pieces p = (Pieces)ite.next();
ro = 0;
if(p.getTypeNo() == b4[i] && p.getOnBoard() == false && p.getInUse() == true){
while(finish == false && ro < 6){
if(checkBoard(p,boardT,c2[ro]) == true){
p.setOnBoard(true);
finish = true;
}
ro ++;
}
/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
System.out.println(b4[i]);
p.setOnBoard(true);
finish = true;
}*/
}
}
}
if(finish == false)
for(int i = 0; i < 2; i ++){
Iterator ite = l.iterator();
while(ite.hasNext() && finish == false){
Pieces p = (Pieces)ite.next();
ro = 0;
if(p.getTypeNo() == b3[i] && p.getOnBoard() == false && p.getInUse() == true){
while(finish == false && ro < 6){
if(checkBoard(p,boardT,c2[ro]) == true){
p.setOnBoard(true);
finish = true;
}
ro ++;
}
/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
System.out.println(b3[i]);
p.setOnBoard(true);
finish = true;
}*/
}
}
}
if(finish == false)
for(int i = 0; i < 1; i ++){
Iterator ite = l.iterator();
while(ite.hasNext() && finish == false){
Pieces p = (Pieces)ite.next();
ro = 0;
if(p.getTypeNo() == a2 && p.getOnBoard() == false && p.getInUse() == true){
while(finish == false && ro < 6){
if(checkBoard(p,boardT,c2[ro]) == true){
p.setOnBoard(true);
finish = true;
}
ro ++;
}
/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}
else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
System.out.println(a2);
p.setOnBoard(true);
finish = true;
}*/
}
}
}
if(finish == false)
for(int i = 0; i < 1; i ++){
Iterator ite = l.iterator();
while(ite.hasNext() && finish == false){
Pieces p = (Pieces)ite.next();
if(p.getTypeNo() == a1 && p.getOnBoard() == false && p.getInUse() == true){
if(checkBoard(p,boardT,c2[0]) == true && finish == false){
//System.out.println(a1);
p.setOnBoard(true);
finish = true;
}
}
}
}
if(finish == true)
switch(tr){
case 1: {turn = 2; game.setYl(180); game.repaint();}
break;
case 2: {turn = 3; game.setYl(360); game.repaint();}
break;
case 3: {turn = 4; game.setYl(540); game.repaint();}
break;
case 4: {turn = 1; game.setYl(0); game.repaint();}
break;
default:
break;
}
else
switch(tr){
case 1: {turn = 2; skipB = true; game.setYl(180); game.repaint();}
break;
case 2: {turn = 3; skipY = true; game.setYl(360); game.repaint();}
break;
case 3: {turn = 4; skipR = true; game.setYl(540); game.repaint();}
break;
case 4: {turn = 1; skipG = true; game.setYl(0); game.repaint();}
break;
default:
break;
}
if(skipB == true && skipY == true && skipR == true && skipG == true){
end = true;
}
}
//檢查棋盤
private boolean checkBoard(Pieces p, int[][] boardT,int type){
int[][] gridT;//= new int[p.getScore()][p.getScore()];
int minR = 0,minC = 0,maxR = 0,maxC = 0;
int minBr = 0, minBc = 0, maxBr = 0, maxBc = 0, mit = 0;
gridT = makeTempMatrix(p,type);
boolean canP = true;
minR = minRow(gridT,1);
minC = minColum(gridT,1);
maxR = maxRow(gridT,1);
maxC = maxColum(gridT,1);
if(p.getpColor() == 1){
maxBr = maxRow(boardT,1);
maxBc = maxColum(boardT,1);
mit = (maxBr + maxBc) / 4;
if(maxBr > 10 && maxBc > 10)
mit = 10;
//System.out.println("mit:" + mit);
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;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -