?? one.java
字號:
public class One extends Root//第一個方塊
{
private GameTable gTable;//創建游戲桌子
private int x,y;//方塊坐上角現在在桌子上的位置
private int direct=1;//第一個角度
private int[] store;//儲存待判斷是否可以移動的周圍必要的坐標標志
public One()
{
store=new int[15];//15足夠大了
}
public boolean begin()//初始化顯示
{
//判斷用于初始化的坐標是否被占用
if((gTable.myTable[(gTable.x-1)/2][0]==0)&&(gTable.myTable[(gTable.x-1)/2][1]==0)&&
(gTable.myTable[(gTable.x-1)/2][2]==0)&&(gTable.myTable[(gTable.x-1)/2][3]==0))
{
x=(gTable.x-1)/2;//記錄坐上角坐標
y=0;
gTable.myTable[x][y]=1;//設置占用標志
gTable.myTable[x][y+1]=1;
gTable.myTable[x][y+2]=1;
gTable.myTable[x][y+3]=1;
return true;
}
else
{
return false;//初始化失敗
}
}
public boolean down()//向下移動
{
switch(direct)//根據角度標志,其他方塊有的有2個角度,有的有4個角度
{
case 1:if(y<=gTable.y-5)//是否在邊緣
{
store[0]=gTable.myTable[x][y+4];//儲存待判斷坐標
if(isGo(1))//判斷是否可移
{
gTable.myTable[x][y]=0;//將被移動坐標置0
gTable.myTable[x][y+4]=1;//將目標坐標置1
y+=1;//坐上角坐標移動
return true;
}
else
{
return false;//移動失敗
}
}
else
{
return false;//移動失敗
}
case 2:if(y<=gTable.y-2)//同case 1
{
store[0]=gTable.myTable[x][y+1];
store[1]=gTable.myTable[x+1][y+1];
store[2]=gTable.myTable[x+2][y+1];
store[3]=gTable.myTable[x+3][y+1];
if(isGo(4))
{
gTable.myTable[x][y]=0;
gTable.myTable[x+1][y]=0;
gTable.myTable[x+2][y]=0;
gTable.myTable[x+3][y]=0;
gTable.myTable[x][y+1]=1;
gTable.myTable[x+1][y+1]=1;
gTable.myTable[x+2][y+1]=1;
gTable.myTable[x+3][y+1]=1;
y+=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
default:return false;
}
}
public boolean left()//同down()
{
switch(direct)
{
case 1:if(x>=1)
{
store[0]=gTable.myTable[x-1][y];
store[1]=gTable.myTable[x-1][y+1];
store[2]=gTable.myTable[x-1][y+2];
store[3]=gTable.myTable[x-1][y+3];
if(isGo(4))
{
gTable.myTable[x][y]=0;
gTable.myTable[x][y+1]=0;
gTable.myTable[x][y+2]=0;
gTable.myTable[x][y+3]=0;
gTable.myTable[x-1][y]=1;
gTable.myTable[x-1][y+1]=1;
gTable.myTable[x-1][y+2]=1;
gTable.myTable[x-1][y+3]=1;
x-=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
case 2:if(x>=1)
{
store[0]=gTable.myTable[x-1][y];
if(isGo(1))
{
gTable.myTable[x+3][y]=0;
gTable.myTable[x-1][y]=1;
x-=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
default:return false;
}
}
public boolean right()//同down()
{
switch(direct)
{
case 1:if(x<=gTable.x-2)
{
store[0]=gTable.myTable[x+1][y];
store[1]=gTable.myTable[x+1][y+1];
store[2]=gTable.myTable[x+1][y+2];
store[3]=gTable.myTable[x+1][y+3];
if(isGo(4))
{
gTable.myTable[x][y]=0;
gTable.myTable[x][y+1]=0;
gTable.myTable[x][y+2]=0;
gTable.myTable[x][y+3]=0;
gTable.myTable[x+1][y]=1;
gTable.myTable[x+1][y+1]=1;
gTable.myTable[x+1][y+2]=1;
gTable.myTable[x+1][y+3]=1;
x+=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
case 2:if(x<=gTable.x-5)
{
store[0]=gTable.myTable[x+4][y];
if(isGo(1))
{
gTable.myTable[x][y]=0;
gTable.myTable[x+4][y]=1;
x+=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
default:return false;
}
}
public boolean change()//同down()
{
switch(direct)
{
case 1:if(x<=gTable.x-4)
{
store[0]=gTable.myTable[x+1][y];
store[1]=gTable.myTable[x+1][y+1];
store[2]=gTable.myTable[x+1][y+2];
store[3]=gTable.myTable[x+1][y+3];
store[4]=gTable.myTable[x+2][y];
store[5]=gTable.myTable[x+2][y+1];
store[6]=gTable.myTable[x+2][y+2];
store[7]=gTable.myTable[x+2][y+3];
store[8]=gTable.myTable[x+3][y];
store[9]=gTable.myTable[x+3][y+1];
store[10]=gTable.myTable[x+3][y+2];
store[11]=gTable.myTable[x+3][y+3];
if(isGo(12))
{
gTable.myTable[x][y]=0;
gTable.myTable[x][y+1]=0;
gTable.myTable[x][y+2]=0;
gTable.myTable[x+1][y+3]=1;
gTable.myTable[x+2][y+3]=1;
gTable.myTable[x+3][y+3]=1;
y+=3;
direct=2;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
case 2:if(true)
{
store[0]=gTable.myTable[x][y-1];
store[1]=gTable.myTable[x][y-2];
store[2]=gTable.myTable[x][y-3];
store[3]=gTable.myTable[x+1][y-1];
store[4]=gTable.myTable[x+1][y-2];
store[5]=gTable.myTable[x+1][y-3];
store[6]=gTable.myTable[x+2][y-1];
store[7]=gTable.myTable[x+2][y-2];
store[8]=gTable.myTable[x+2][y-3];
store[9]=gTable.myTable[x+3][y-1];
store[10]=gTable.myTable[x+3][y-2];
store[11]=gTable.myTable[x+3][y-3];
if(isGo(12))
{
gTable.myTable[x+1][y]=0;
gTable.myTable[x+2][y]=0;
gTable.myTable[x+3][y]=0;
gTable.myTable[x][y-3]=1;
gTable.myTable[x][y-2]=1;
gTable.myTable[x][y-1]=1;
y-=3;
direct=1;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
default:return false;
}
}
public void downTo()
{
boolean canDown=true;
while(canDown)
{
canDown=down();//循環向下移動一格
}
}
public boolean isGo(int n)
{
for(int i=0;i<=(n-1);i++)
{
if(store[i]!=0)//如果有占位則失敗
return false;
}
return true;
}
public static void main(String args[])
{
new One();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -