?? 建筑體.java
字號(hào):
//package 方塊;
/**
建筑體.java
功能:記錄方塊堆積情況的對(duì)象的類
@author Joedan hongguangming@sohu.com
*/
import java.awt.*;
class 建筑體
{
public static int 建筑物寬 = 12;
public static int 建筑物長(zhǎng) = 20;
private 二維布爾型數(shù)組 數(shù)據(jù) = new 二維布爾型數(shù)組(建筑物長(zhǎng), 建筑物寬);
private 二維Color數(shù)組 顏色 = new 二維Color數(shù)組(建筑物長(zhǎng), 建筑物寬);
public boolean 取得位置狀態(tài)(int 行號(hào), int 列號(hào))
{
if (行號(hào) < 0 || 行號(hào) >= 建筑物長(zhǎng) ||
列號(hào) < 0 || 列號(hào) >= 建筑物寬)//元素位置不合法,返回false
return false;
return 數(shù)據(jù).取得元素(行號(hào), 列號(hào));
}
public Color 取得位置顏色(int 行號(hào), int 列號(hào))
{
if (行號(hào) < 0 || 行號(hào) >= 建筑物長(zhǎng) ||
列號(hào) < 0 || 列號(hào) >= 建筑物寬)//元素位置不合法,返回null
return null;
return 顏色.取得元素(行號(hào), 列號(hào));
}
//*
public void 設(shè)置位置狀態(tài)(int 行號(hào), int 列號(hào), boolean 狀態(tài)值)
{
if (行號(hào) < 0 || 行號(hào) >= 建筑物長(zhǎng) ||
列號(hào) < 0 || 列號(hào) >= 建筑物寬)//元素位置不合法,直接返回
return;
數(shù)據(jù).設(shè)置元素(行號(hào), 列號(hào), 狀態(tài)值);
}
public void 設(shè)置位置顏色(int 行號(hào), int 列號(hào), Color 顏色值)
{
if (行號(hào) < 0 || 行號(hào) >= 建筑物長(zhǎng) ||
列號(hào) < 0 || 列號(hào) >= 建筑物寬)//元素位置不合法,直接返回
return;
顏色.設(shè)置元素(行號(hào), 列號(hào), 顏色值);
}//
//*/
public void 刪除某行(int 行號(hào))
{
if (行號(hào) < 0 || 行號(hào) >= 建筑物長(zhǎng))//行號(hào)不合法,直接返回
return;
//數(shù)據(jù).列印();顏色.列印();
數(shù)據(jù)._刪除某行(行號(hào));
顏色._刪除某行(行號(hào));
//數(shù)據(jù).列印();顏色.列印();
}//
public int 取得行數(shù)()
{
return 建筑物長(zhǎng);
}//
public int 取得列數(shù)()
{
return 建筑物寬;
}//
//將停止運(yùn)動(dòng)的活動(dòng)方塊加入建筑體
public void 加入方塊(活動(dòng)方塊 方塊數(shù)據(jù))
{
//取得賴以修改建筑體內(nèi)容的數(shù)據(jù)
二維布爾型數(shù)組 當(dāng)前形狀序列數(shù)據(jù) = 方塊數(shù)據(jù).取得當(dāng)前形狀序列();
//遍歷活動(dòng)方塊,按非空塊的位置設(shè)置建筑體的內(nèi)容
for (int i = 0; i < 方塊.方塊長(zhǎng)度; i++)
for (int j = 0; j < 方塊.方塊高度; j++)
if (當(dāng)前形狀序列數(shù)據(jù).取得元素(i, j))
{
數(shù)據(jù).設(shè)置元素(方塊數(shù)據(jù).取得y坐標(biāo)() + i, 方塊數(shù)據(jù).取得x坐標(biāo)() + j, true);
顏色.設(shè)置元素(方塊數(shù)據(jù).取得y坐標(biāo)() + i, 方塊數(shù)據(jù).取得x坐標(biāo)() + j, 方塊數(shù)據(jù).取得顏色());
}
}//
//畫塊
private void 畫塊(Graphics g, int x, int y, int width, int height, Color color)
{
//橫間段大小
int w = width / 6;
//豎間段大小
int h = height / 6;
//準(zhǔn)備畫筆顏色
g.setColor(color);
g.fill3DRect(x, y, width, height, true);
g.fill3DRect(x + w, y + h, width - 2 * w, height - 2 * h, true);
g.fill3DRect(x + 2 * w, y + 2 * h, width - 4 * w, height - 4 * h, true);
}//
//在g中畫出建筑體
public void paint(Graphics g)
{
//取得塊的大小參數(shù)
int 塊寬 = (int)(g.getClipBounds().getWidth() / 建筑物寬),
塊高 = (int)(g.getClipBounds().getHeight() / 建筑物長(zhǎng));
//畫方塊;遍歷整個(gè)建筑體,將有塊的位置用相應(yīng)的顏色畫出
for (int i = 0; i < 建筑物長(zhǎng); i++)//遍歷行
for (int j = 0; j < 建筑物寬; j++)//遍歷列
if (數(shù)據(jù).取得元素(i, j))//該位置是否有塊
畫塊(g, j * 塊寬, i * 塊高, 塊寬, 塊高, 顏色.取得元素(i, j));//畫塊
}//
};
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -