⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 建筑体.java

📁 为移动电话写的俄罗斯方块游戏,没什么特别的,模块化设计是本程序的特色,也是我至今保留着它的原因,当时让我兴奋不已,得益于模块化设计,该程序的编写和改动都非常快捷,我只用了几个小时就完成编写和后期改动,
💻 JAVA
字号:
//package 方块;
/**
建筑体.java
功能:记录方块堆积情况的对象的类
@author Joedan hongguangming@sohu.com
*/
import java.awt.*;

class 建筑体
{
	public static int 建筑物宽 = 12;
	public static int 建筑物长 = 20;
	private 二维布尔型数组 数据 = new 二维布尔型数组(建筑物长, 建筑物宽);
	private 二维Color数组 颜色 = new 二维Color数组(建筑物长, 建筑物宽);
	public boolean 取得位置状态(int 行号, int 列号)
	{
		if (行号 < 0 || 行号 >= 建筑物长 ||
		    列号 < 0 || 列号 >= 建筑物宽)//元素位置不合法,返回false
			return false;
		return 数据.取得元素(行号, 列号);
	}
	public Color 取得位置颜色(int 行号, int 列号)
	{
		if (行号 < 0 || 行号 >= 建筑物长 ||
		    列号 < 0 || 列号 >= 建筑物宽)//元素位置不合法,返回null
			return null;
		return 颜色.取得元素(行号, 列号);
	}
//*
	public void 设置位置状态(int 行号, int 列号, boolean 状态值)
	{
		if (行号 < 0 || 行号 >= 建筑物长 ||
		    列号 < 0 || 列号 >= 建筑物宽)//元素位置不合法,直接返回
			return;
		数据.设置元素(行号, 列号, 状态值);
	}
	public void 设置位置颜色(int 行号, int 列号, Color 颜色值)
	{
		if (行号 < 0 || 行号 >= 建筑物长 ||
		    列号 < 0 || 列号 >= 建筑物宽)//元素位置不合法,直接返回
			return;
		颜色.设置元素(行号, 列号, 颜色值);
	}//
//*/
	public void 删除某行(int 行号)
	{
		if (行号 < 0 || 行号 >= 建筑物长)//行号不合法,直接返回
			return;
//数据.列印();颜色.列印();
		数据._删除某行(行号);
		颜色._删除某行(行号);
//数据.列印();颜色.列印();
	}//
	public int 取得行数()
	{
		return 建筑物长;
	}//
	public int 取得列数()
	{
		return 建筑物宽;
	}//
	//将停止运动的活动方块加入建筑体
	public void 加入方块(活动方块 方块数据)
	{
		//取得赖以修改建筑体内容的数据
		二维布尔型数组 当前形状序列数据 = 方块数据.取得当前形状序列();
		//遍历活动方块,按非空块的位置设置建筑体的内容
		for (int i = 0; i < 方块.方块长度; i++)
			for (int j = 0; j < 方块.方块高度; j++)
				if (当前形状序列数据.取得元素(i, j))
				{
					数据.设置元素(方块数据.取得y坐标() + i, 方块数据.取得x坐标() + j, true);
					颜色.设置元素(方块数据.取得y坐标() + i, 方块数据.取得x坐标() + j, 方块数据.取得颜色());
				}
	}//
	//画块
	private void 画块(Graphics g, int x, int y, int width, int height, Color color)
	{
		//横间段大小
		int w = width / 6;
		//竖间段大小
		int h = height / 6;
		//准备画笔颜色
		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)
	{
		//取得块的大小参数
		int 块宽 = (int)(g.getClipBounds().getWidth() / 建筑物宽),
		    块高 = (int)(g.getClipBounds().getHeight() / 建筑物长);
		//画方块;遍历整个建筑体,将有块的位置用相应的颜色画出
		for (int i = 0; i < 建筑物长; i++)//遍历行
			for (int j = 0; j < 建筑物宽; j++)//遍历列
				if (数据.取得元素(i, j))//该位置是否有块
					画块(g, j * 块宽, i * 块高, 块宽, 块高, 颜色.取得元素(i, j));//画块
	}//
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -