?? map.java
字號:
package lianliankan;
import java.util.Random;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
public class Map {
public int iconnum=120; //圖片個數
public int time;
public Random random = new Random();
public int[] iconblack = new int[170]; //圖片顯示數組
public int[] buttonblack = new int[170]; //背景數組
public int corner=0;
public int cornerx=0;
public int cornery=0;
public int corner1x=0;
public int corner1y=0;
public int corner2x=0;
public int corner2y=0;
Line line;
public Map(){
for(int i=0;i<170;i++){
iconblack[i]=-1;
buttonblack[i]=0;
}
}
public void chushihua(){
for(int i=0;i<170;i++){
iconblack[i]=-1;
buttonblack[i]=0;
}
for(int j=0;j<MainFrame.clomu;j++){
for(int i=0;i<MainFrame.row;i++)
MainFrame.black[i][j]=0;
}
}
public void buttonblack(int iconnum){
int n=1;int i=1;
buttonblack[0]=random.nextInt(170);
loop:while(i<iconnum){
buttonblack[i]=random.nextInt(170);
for(int j=i-1;j>=0;j--){
if(buttonblack[i]==buttonblack[j])
continue loop;
else n=0;
}
if(n==0)i++;
}
}
public void iconblack(int iconnum){
for(int i=0;i<iconnum/2;i++){
iconblack[i]=random.nextInt(39);
}
for(int i=0;i<iconnum/2;i++){
iconblack[i+(iconnum/2)]=iconblack[i];
}
}
public int diretion(int upiconbuttonx,int iconbuttonx,int upiconbuttony,int iconbuttony){
if(upiconbuttonx==iconbuttonx)
return(0);
else if(upiconbuttony==iconbuttony)
return(1);
else return(2);
}
public boolean det(int direction,int upiconbuttonx,int iconbuttonx,int upiconbuttony,int iconbuttony,boolean test){
boolean candet=false;
switch(direction){
case 0:candet=det4(iconbuttonx,iconbuttony,upiconbuttony);
if(candet&&!test){
line = new Line();
line.start0x(iconbuttonx,upiconbuttony,iconbuttony,line);
}
if(!candet){
candet=det0(upiconbuttonx,iconbuttonx,iconbuttony,upiconbuttony);
if(candet&&!test){
line = new Line();
line.start2(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,corner1x,corner1y,corner2x,corner2y,line);
}
}
break;
case 1:candet=det3(iconbuttony,iconbuttonx,upiconbuttonx);
if(candet&&!test){
line = new Line();
line.start0y(iconbuttony,upiconbuttonx,iconbuttonx,line);
}
if(!candet){
candet=det1(upiconbuttony,iconbuttony,iconbuttonx,upiconbuttonx);
if(candet&&!test){
line = new Line();
line.start2(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,corner1x,corner1y,corner2x,corner2y,line);
}
}
break;
case 2:
System.out.println("tiaoyong2");
candet=det2(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,test);
break;
}
return(candet);
}
public boolean det0(int upiconbuttonx,int iconbuttonx,int iconbuttony,int upiconbuttony){
boolean candet=false;int i=0;
if(!candet){
for(i=1;i<=17;i++){
corner1x=i;corner1y=iconbuttony;
corner2x=i;corner2y=upiconbuttony;
if(MainFrame.black[corner1x-1][corner1y-1]==1||MainFrame.black[corner2x-1][corner2y-1]==1){
}else if(det4(corner1x,corner1y,corner2y)&&
det3(corner1y,corner1x,iconbuttonx)&&
det3(corner2y,corner2x,upiconbuttonx)){
System.out.println("corner1x:"+corner1x+"corner1y:"+corner1y+"corner2x:"+corner2x+"corner2y:"+corner2y);
candet=true;
corner=2;
break;
}
}
}
return(candet);
}
public boolean det1(int upiconbuttony,int iconbuttony,int iconbuttonx,int upiconbuttonx){
int i=0;boolean candet=false;
if(!candet){
for(i=1;i<=10;i++){
corner1x=iconbuttonx;corner1y=i;
corner2x=upiconbuttonx;corner2y=i;
if(MainFrame.black[corner1x-1][corner1y-1]==1||MainFrame.black[corner2x-1][corner2y-1]==1){
}else if(det3(corner1y,corner1x,corner2x)&&
det4(corner1x,corner1y,iconbuttony)&&
det4(corner2x,corner2y,upiconbuttony)){
candet=true;
corner=2;
System.out.println("corner1x:"+corner1x+"corner1y:"+corner1y+"corner2x:"+corner2x+"corner2y:"+corner2y);
break;
}
}
}
return(candet);
}
public boolean det3(int iconbuttony,int iconbuttonx,int upiconbuttonx){ //heng
int i=0,j=0;boolean candet=true;
if(iconbuttonx>upiconbuttonx){
i=upiconbuttonx-1;j=iconbuttonx-1;
}else {
i=iconbuttonx-1;j=upiconbuttonx-1;
}
if(i==(j-1)){
candet=true;
}
else{
for(i=i+1;i<j;i++){
if(MainFrame.black[i][iconbuttony-1]==1){
candet=false;break;
}
}
}
return(candet);
}
public boolean det4(int iconbuttonx,int iconbuttony,int upiconbuttony){ //shu
int i=0,j=0;boolean candet=true;
if(iconbuttony>upiconbuttony){
i=upiconbuttony-1;j=iconbuttony-1;
}else {
i=iconbuttony-1;j=upiconbuttony-1;
}
if(i==(j-1)){
candet=true;
}
else{
for(i=i+1;i<j;i++){
if(MainFrame.black[iconbuttonx-1][i]==1){
candet=false;break;
}
}
}
return(candet);
}
public boolean det2(int upiconbuttonx,int iconbuttonx,int upiconbuttony,int iconbuttony,boolean test){
boolean heng=false;
boolean shu=false;
boolean shu1=false;
cornerx=upiconbuttonx;cornery=iconbuttony;
System.out.println("cornerx:"+cornerx+"cornery:"+cornery);
if(MainFrame.black[cornerx-1][cornery-1]!=1){
heng=det3(cornery,cornerx,iconbuttonx);
shu=det4(cornerx,upiconbuttony,cornery);
System.out.println("10");
if(heng&&shu){
corner=1;
if(!test){
line = new Line();
line.start1(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,cornerx,cornery,line);
}
System.out.println("11");
System.out.println("corner:"+corner);
return true;
}
} cornerx=iconbuttonx;cornery=upiconbuttony;
System.out.println("cornerx:"+cornerx+"cornery:"+cornery);
if(MainFrame.black[cornerx-1][cornery-1]!=1){
heng=det3(cornery,cornerx,upiconbuttonx);
shu=det4(cornerx,cornery,iconbuttony);
System.out.println("20");
if(heng&&shu){
corner=1;
if(!test){
line = new Line();
line.start1(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,cornerx,cornery,line);
}
System.out.println("21");
System.out.println("corner:"+corner);
return true;
}
}
for(int i=1;i<=10;i++){
heng=true;shu=true;shu1=true;
corner1x=iconbuttonx;corner1y=i;
corner2x=upiconbuttonx;corner2y=i;
System.out.println("coner1:"+MainFrame.black[corner1x-1][corner1y-1]);
System.out.println("coner2:"+MainFrame.black[corner2x-1][corner2y-1]);
if(MainFrame.black[corner1x-1][corner1y-1]==1||MainFrame.black[corner2x-1][corner2y-1]==1){
heng=false;shu=false;
System.out.println("xiaoqu");
System.out.println("coner1:"+MainFrame.black[corner1x-1][corner1y-1]);
System.out.println("coner2:"+MainFrame.black[corner2x-1][corner2y-1]);
}else{
heng=det3(corner1y,corner1x,corner2x);
shu=det4(corner1x,corner1y,iconbuttony);
shu1=det4(corner2x,corner2y,upiconbuttony);
System.out.println("30");
}
if(heng&&shu&&shu1){
corner=2;
if(!test){
line = new Line();
line.start2(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,corner1x,corner1y,corner2x,corner2y,line);
}
System.out.println("31");
System.out.println("corner:"+corner);
System.out.println("corner1x:"+corner1x+"corner1y:"+corner1y+"corner2x:"+corner2x+"corner2y:"+corner2y);
return true;
}
}
for(int i=1;i<=17;i++){
heng=true;shu=true;shu1=true;
corner1x=i;corner1y=iconbuttony;
corner2x=i;corner2y=upiconbuttony;
System.out.println("coner1:"+MainFrame.black[corner1x-1][corner1y-1]);
System.out.println("coner2:"+MainFrame.black[corner2x-1][corner2y-1]);
if(MainFrame.black[corner1x-1][corner1y-1]==1||MainFrame.black[corner2x-1][corner2y-1]==1){
heng=false;shu=false;
System.out.println("xiaoqu");
System.out.println("coner1:"+MainFrame.black[corner1x-1][corner1y-1]);
System.out.println("coner2:"+MainFrame.black[corner2x-1][corner2y-1]);
}else{
heng=det4(corner1x,corner1y,corner2y);
shu=det3(corner1y,corner1x,iconbuttonx);
shu1=det3(corner2y,corner2x,upiconbuttonx);
System.out.println("40");
}
if(heng&&shu&&shu1)
{
corner=2;
if(!test){
line = new Line();
line.start2(upiconbuttonx,iconbuttonx,upiconbuttony,iconbuttony,corner1x,corner1y,corner2x,corner2y,line);
}
System.out.println("corner:"+corner);
System.out.println("41");
return true;
}
}
return false;
}
}
class Line extends Thread{
int m_iconbuttonx;
int m_upiconbuttonx;
int m_iconbuttony;
int m_upiconbuttony;
int m_corner;
int m_cornerx;
int m_cornery;
int m_corner1x;
int m_corner1y;
int m_corner2x;
int m_corner2y;
int j=0;
int line[] = new int[44];
ImageIcon icondong = new ImageIcon("images/dots.gif");
public void start0x(int iconbuttonx,int upiconbuttony,int iconbuttony,Line th){
m_corner=1;
m_upiconbuttony=upiconbuttony;
m_iconbuttony=iconbuttony;
m_iconbuttonx=iconbuttonx;
System.out.println("m_upiconbuttony:"+m_upiconbuttony);
th.start();
}
public void start0y(int iconbuttony,int upiconbuttonx,int iconbuttonx,Line th){
m_corner=2;
m_iconbuttony=iconbuttony;
m_upiconbuttonx=upiconbuttonx;
m_iconbuttonx=iconbuttonx;
System.out.println("m_upiconbuttonx:"+m_upiconbuttonx);
th.start();
}
public void start1(int upiconbuttonx,int iconbuttonx,int upiconbuttony,int iconbuttony,
int cornerx,int cornery,Line th){
m_corner=3;
m_iconbuttony=iconbuttony;
m_upiconbuttonx=upiconbuttonx;
m_iconbuttonx=iconbuttonx;
m_upiconbuttony=upiconbuttony;
m_cornerx=cornerx;
m_cornery=cornery;
th.start();
}
public void start2(int upiconbuttonx,int iconbuttonx,int upiconbuttony,int iconbuttony,
int corner1x,int corner1y,int corner2x,int corner2y,Line th){
m_corner=4;
m_iconbuttony=iconbuttony;
m_upiconbuttonx=upiconbuttonx;
m_iconbuttonx=iconbuttonx;
m_upiconbuttony=upiconbuttony;
m_corner1x=corner1x;
m_corner1y=corner1y;
m_corner2x=corner2x;
m_corner2y=corner2y;
th.start();
}
public void run(){
switch(m_corner){
case 1:shu(m_upiconbuttony,m_iconbuttony,m_iconbuttonx);donghua();chushihua();break;
case 2:heng(m_upiconbuttonx,m_iconbuttonx,m_iconbuttony);donghua();chushihua();break;
case 3:if(m_cornerx==m_upiconbuttonx){
shu(m_upiconbuttony,m_cornery,m_cornerx);j=j-1;
heng(m_cornerx,m_iconbuttonx,m_cornery);
donghua();chushihua();
}else{
heng(m_upiconbuttonx,m_cornerx,m_cornery);j=j-1;
shu(m_cornery,m_iconbuttony,m_cornerx);
donghua();chushihua();
}break;
case 4:
if(m_upiconbuttonx==m_iconbuttonx){
heng(m_upiconbuttonx,m_corner2x,m_upiconbuttony);j=j-1;
shu(m_corner2y,m_corner1y,m_corner1x);j=j-1;
heng(m_corner1x,m_iconbuttonx,m_iconbuttony);
donghua();chushihua();
}else{ if(m_upiconbuttony!=m_iconbuttony){
if(m_corner1x==m_corner2x){
heng(m_upiconbuttonx,m_corner2x,m_corner2y);j--;
shu(m_corner2y,m_corner1y,m_corner2x);j--;
heng(m_corner1x,m_iconbuttonx,m_iconbuttony);
donghua();chushihua();
}else{
shu(m_upiconbuttony,m_corner2y,m_corner2x);j--;
heng(m_corner2x,m_corner1x,m_corner1y);j--;
shu(m_corner1y,m_iconbuttony,m_corner1x);
donghua();chushihua();
}
}else{
shu(m_upiconbuttony,m_corner2y,m_corner2x);j=j-1;
heng(m_corner2x,m_corner1x,m_corner2y);j=j-1;
shu(m_corner1y,m_iconbuttony,m_iconbuttonx);
donghua();chushihua();
}
}
break;
default:break;
}
}
public void donghua(){
for(int i=0;i<j;i++){
MainFrame.iconbutton[line[i]].setVisible(true);
MainFrame.iconbutton[line[i]].setOpaque(false);
MainFrame.iconbutton[line[i]].setIcon(icondong);
MainFrame.iconbutton[line[i]].setBorder(BorderFactory.createRaisedBevelBorder());
try {
sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for(int i=0;i<j;i++){
MainFrame.iconbutton[line[i]].setVisible(false);
try {
sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void heng(int m_upiconbuttonx,int m_iconbuttonx,int m_iconbuttony){
if(m_upiconbuttonx>m_iconbuttonx){
for(int i=m_upiconbuttonx;i>=m_iconbuttonx;i--){
line[j]=i-1+(m_iconbuttony-1)*17;
j++;
}
}else{
for(int i=m_upiconbuttonx;i<=m_iconbuttonx;i++){
line[j]=i-1+(m_iconbuttony-1)*17;
j++;
}
}
}
public void shu(int m_upiconbuttony,int m_iconbuttony,int m_iconbuttonx){
if(m_upiconbuttony>m_iconbuttony){
for(int i=m_upiconbuttony;i>=m_iconbuttony;i--){
line[j]=m_iconbuttonx-1+(i-1)*17;
j++;
}
}else{
for(int i=m_upiconbuttony;i<=m_iconbuttony;i++){
line[j]=m_iconbuttonx-1+(i-1)*17;
j++;
}
}
}
public void chushihua(){
for(int i=0;i<j;i++){
//System.out.println("line["+i+"]:"+line[i]);
line[i]=0;
}
j=0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -