请问这段代码用到哪些知识?哪里有介绍? nobody????????????????????????????????????????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只能给一部分大家看看://方块的设计与方法package jbterris;//创建包//?import java.awt.*;class Block//方块类{ static int[][] pattern={ {0x0f00,0x4444,0x0f00,0x4444}, {0x04e0,0x0464,0x00e4,0x04c4}, {0x4620,0x6c00,0x4620,0x6c00}, {0x2640,0xc600,0x2640,0xc600}, {0x6220,0x1700,0x2230,0x0740}, {0x6440,0x0e20,0x44c0,0x8e00}, {0x0660,0x0660,0x0660,0x0660} };//? int blockType;//方块类型 int turnState;//方块旋转状态 int blockState;//方块的状态:1-falling |2-land int row,col; GameCanvas scr; Block(GameCanvas scr)//构造函数 { this.scr=scr; blockType=(int)(Math.random()*1000)%7;//随机确定方块类型//? turnState=(int)(Math.random()*1000)%4;//随机确定方块旋转状态 blockState=1;//方块的初始状态为1 row=scr.getInitRow();//行数为scr的初始行数 col=scr.getInitCol();//列数为scr的初始列数 } public void reset()//产生新的方块 { blockType=(int)(Math.random()*1000)%7;//随机确定方块类型 turnState=(int)(Math.random()*1000)%4;//随机确定方块旋转状态 blockState=1;//方块的初始状态为1 row=scr.getInitRow();//返回初始行数 col=scr.getInitCol();//返回初始列数 dispBlock(1); } public void leftTurn()//逆时针旋转 { if(assertValid(blockType,(turnState+1)%4,row,col)) { dispBlock(0); turnState=(turnState+1)%4; dispBlock(1); } } public void leftMove() { if(assertValid(blockType,turnState,row,col-1)) { dispBlock(0); col--; dispBlock(1); } } public void rightMove() { if(assertValid(blockType,turnState,row,col+1)) { dispBlock(0); col++; dispBlock(1); }} public boolean fallDown() { if(blockState==2)return (false); if(assertValid(blockType,turnState,row-1,col)) { dispBlock(0); row--; dispBlock(1); return(true); } else { blockState=2; dispBlock(2); return false; } } boolean assertValid(int t,int s,int row,int col) { int k=0x8000; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { if((int)(pattern[t][s]&k)!=0) { int temp=scr.getScrArrXY(row-i,col+j); if(temp<0||temp==2) return false; } k=k>>1; } } return true; } public synchronized void dispBlock(int s)//synchronized修饰一个非静态方法,则这个方法在被调用执行前,将把当前对象加锁 //画出方块 { int k=0x8000;//? for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { if(((int)pattern[blockType][turnState]&k)!=0) { scr.drawUnit(row-i,col+j,s); } k=k>>1; } } }} netbeans使用 高手帮忙啊!!!! RMI 中客户端程序能和服务端程序保持 长链接吗? 象netbeans一样,窗口可以随意变大变小,收起来后可以边上显示的窗口是怎么做的啊? 一个在线考试系统要求实现数据库的导入导出 一个eclipse问题 java 中如何直接创建二进制文件 求swing电子书 一个关于多线程的初级问题 Timer和TimerTask问题 JAVA菜鸟的疑问:开发环境!!!!!!!!!! 在登录时,系统会提示你是否保存密码,请问怎么将此提示去掉
//方块的设计与方法
package jbterris;//创建包//?import java.awt.*;class Block//方块类
{
static int[][] pattern={
{0x0f00,0x4444,0x0f00,0x4444},
{0x04e0,0x0464,0x00e4,0x04c4},
{0x4620,0x6c00,0x4620,0x6c00},
{0x2640,0xc600,0x2640,0xc600},
{0x6220,0x1700,0x2230,0x0740},
{0x6440,0x0e20,0x44c0,0x8e00},
{0x0660,0x0660,0x0660,0x0660}
};//? int blockType;//方块类型
int turnState;//方块旋转状态
int blockState;//方块的状态:1-falling |2-land
int row,col;
GameCanvas scr; Block(GameCanvas scr)//构造函数
{
this.scr=scr;
blockType=(int)(Math.random()*1000)%7;//随机确定方块类型//?
turnState=(int)(Math.random()*1000)%4;//随机确定方块旋转状态
blockState=1;//方块的初始状态为1
row=scr.getInitRow();//行数为scr的初始行数
col=scr.getInitCol();//列数为scr的初始列数
} public void reset()//产生新的方块
{
blockType=(int)(Math.random()*1000)%7;//随机确定方块类型
turnState=(int)(Math.random()*1000)%4;//随机确定方块旋转状态
blockState=1;//方块的初始状态为1
row=scr.getInitRow();//返回初始行数
col=scr.getInitCol();//返回初始列数
dispBlock(1);
} public void leftTurn()//逆时针旋转
{
if(assertValid(blockType,(turnState+1)%4,row,col))
{
dispBlock(0);
turnState=(turnState+1)%4;
dispBlock(1);
}
} public void leftMove()
{
if(assertValid(blockType,turnState,row,col-1))
{
dispBlock(0);
col--;
dispBlock(1);
}
} public void rightMove()
{
if(assertValid(blockType,turnState,row,col+1))
{
dispBlock(0);
col++;
dispBlock(1);
}
} public boolean fallDown()
{
if(blockState==2)return (false);
if(assertValid(blockType,turnState,row-1,col))
{
dispBlock(0);
row--;
dispBlock(1);
return(true);
}
else
{
blockState=2;
dispBlock(2);
return false;
}
} boolean assertValid(int t,int s,int row,int col)
{
int k=0x8000;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if((int)(pattern[t][s]&k)!=0)
{
int temp=scr.getScrArrXY(row-i,col+j);
if(temp<0||temp==2)
return false;
}
k=k>>1;
}
}
return true;
} public synchronized void dispBlock(int s)//synchronized修饰一个非静态方法,则这个方法在被调用执行前,将把当前对象加锁
//画出方块
{
int k=0x8000;//?
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(((int)pattern[blockType][turnState]&k)!=0)
{
scr.drawUnit(row-i,col+j,s);
}
k=k>>1;
}
}
}
}