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

📄 mamakgame.java

📁 第一次突破千行代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package Mamak.games.eluosi; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.lang.*; 
////////////////////////////////////////////////////////////////////////////////
class systemStatus 
{
	public systemStatus(int tmpX,int tmpY)
	{
		origin=new Point(tmpX,tmpY);
		iSystemStatus=0;
	}
	public void drawSystemStatus(Graphics g)
	{
		g.setColor(Color.black);
		String strSystemStatus;
		switch(iSystemStatus)
		{
			case 0:
			strSystemStatus="初始化完成...\"S\"键开始.";
			break;
			case 1:
			strSystemStatus="游戏进行中...\"D\"键暂停,\"S\"键重新开始.";
			break;
			case 2:
			strSystemStatus="游戏暂停中...\"D\"键恢复,\"S\"键重新开始.";
			break;
			case 3:
			strSystemStatus="GAMEOVER...\"S\"键重新开始.";
			break;
			default:
			strSystemStatus="系统发生严重异常...请立即退出!!!";
			break;
		}
	g.drawString(strSystemStatus,origin.x,origin.y); 
	}
	public int getSystemStatus()
	{
		return iSystemStatus;
	}
	public void setSystemStatus(int iTmp)
	{
		iSystemStatus=iTmp;
	} 
	private Point origin;
	private final int ROWINTERVAL=15;
	private int iSystemStatus;
} 
////////////////////////////////////////////////////////////////////////////////
class copyright 
{
	public copyright(int tmpX,int tmpY)
	{
		origin=new Point(tmpX,tmpY);
	} 
	public void drawCopyright(Graphics g)
	{
		String strCopyright;
		strCopyright="暂停";
		g.drawString(strCopyright,origin.x,origin.y);
		strCopyright="D";
		g.drawString(strCopyright,origin.x,origin.y+ROWINTERVAL);
		strCopyright="翻转:";
		g.drawString(strCopyright,origin.x,origin.y+2*ROWINTERVAL);
		strCopyright="空 格 键";
		g.drawString(strCopyright,origin.x,origin.y+3*ROWINTERVAL);
		strCopyright="版本号:";
		g.drawString(strCopyright,origin.x,origin.y+4*ROWINTERVAL);
		strCopyright=" 1.0r";
		g.drawString(strCopyright,origin.x,origin.y+5*ROWINTERVAL);
		strCopyright="qq";
		g.drawString(strCopyright,origin.x,origin.y+6*ROWINTERVAL);
		strCopyright="42557253";
		g.drawString(strCopyright,origin.x,origin.y+7*ROWINTERVAL);
	}
	private final int ROWINTERVAL=15;
	private Point origin; 
} 



class score
{
	public score(int tmpX,int tmpY)
	{
		origin=new Point(tmpX,tmpY);
		iScore=0;
	} 
	public void restart()
	{
		iScore=0;
	} 
	public void drawScore(Graphics g)
	{
		g.setColor(Color.black);
		String strScore;
		strScore="得分:";
		g.drawString(strScore,origin.x,origin.y);
		strScore=" "+iScore;
		g.drawString(strScore,origin.x,origin.y+ROWINTERVAL);
	}
	public void addScore(int tmpLineNum)
	{
		switch(tmpLineNum)
		{
			case 1:
			iScore+=100;
			break;
			case 2:
			iScore+=300;
			break;
			case 3:
			iScore+=600;
			break;
			case 4:
			iScore+=1000;
			break;
		}
	} 

private final int ROWINTERVAL=15; 

private Point origin; 

private int iScore; 
} 

class preview 
{ 
public preview(int tmpX,int tmpY,int tmpHeightGrid,int tmpWidthGrid,int tmpHeight,int tmpWidth) 
{ 
origin=new Point(tmpX,tmpY+tmpHeight); 
iHeightGrid=tmpHeightGrid; 
iWidthGrid=tmpWidthGrid; 
iHeight=tmpHeight; 
iWidth=tmpWidth; 
aryGrids=new grid[iHeightGrid][iWidthGrid]; 
calGridToPosition(); 
} 


public void calGridToPosition() 

{ 

for(int i=0;i<iHeightGrid;i++) 
{ 
for(int j=0;j<iWidthGrid;j++) 
{ 
aryGrids[i][j]=new grid(iHeight/iHeightGrid,iWidth/iWidthGrid,origin.x+j*(iWidth/iWidthGrid),origin.y-i*(iHeight/iHeightGrid),1,1,0); 
} 
} 
} 

public void drawGrids(Graphics g,int[][] tmpRowColNos) 

{ 


for(int i=0;i<tmpRowColNos.length;i++) 
if((tmpRowColNos[i][0]!=-1)&&(tmpRowColNos[i][1]!=-1)) 
aryGrids[tmpRowColNos[i][0]][tmpRowColNos[i][1]].drawDiamonds(g); 


} 

public void drawGridFrame(Graphics g) 
{ 

g.setColor(Color.lightGray); 

for(int i=1;i<iWidthGrid;i++) 
{ 
g.drawLine(origin.x+i*(iWidth/iWidthGrid),origin.y,origin.x+i*(iWidth/iWidthGrid),origin.y-iHeight); 
} 

for(int i=1;i<iHeightGrid;i++) 
{ 
g.drawLine(origin.x,origin.y-i*(iHeight/iHeightGrid),origin.x+iWidth,origin.y-i*(iHeight/iHeightGrid)); 
} 


g.setColor(Color.black); 

g.drawRect(origin.x,origin.y-iHeight,iWidth,iHeight); 
} 


private Point origin; 

private int iHeightGrid; 
private int iWidthGrid; 
private int iHeight; 
private int iWidth; 
private grid[][] aryGrids; 


} 
class diamonds 
{ 
public diamonds(int tmpRowNo,int tmpColNo) 
{ 
initDiamondsTable(); 
referPoint[0]=tmpRowNo; 
referPoint[1]=tmpColNo; 
orgReferPoint[0]=tmpRowNo; 
orgReferPoint[1]=tmpColNo; 
createNew(); 
iPreStatusNo=iStatusNo; 


} 

public void restart() 
{ 
referPoint[0]=orgReferPoint[0]; 
referPoint[1]=orgReferPoint[1]; 

} 


public void unCircumrotate() 
{ 
referPoint[0]=preReferPoint[0]; 
referPoint[1]=preReferPoint[1]; 
iStatusNo=iPreStatusNo; 
setAryDiamonds(); 
} 

public void circumrotate() 
{ 
preReferPoint[0]=referPoint[0]; 
preReferPoint[1]=referPoint[1]; 
iPreStatusNo=iStatusNo; 
iStatusNo=diamondsTable[iSortNo][iStatusNo]; 
setAryDiamonds(); 
} 


public void createNew() 
{ 

iSortNo=(int)(Math.random()*100)%SORTNUM; 

iStatusNo=(int)(Math.random()*100)%diamondsTable[iSortNo].length; 

setAryDiamonds(); 

} 
public int[] getRowNos() 
{ 
int[] rtnRowNos=new int[iHeightGrid]; 


for(int i=0;i<iHeightGrid;i++) 
{ 
rtnRowNos[i]=referPoint[0]+(iHeightGrid-i-1); 
} 

return rtnRowNos; 
} 




public int[][] diamondsPosition() 
{ 
int[][] rtnRowColNos=new int[iHeightGrid*iWidthGrid][2]; 

for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(aryDiamonds[i][j]==1) 
{ 
rtnRowColNos[i*iWidthGrid+j][0]=referPoint[0]+i; 
rtnRowColNos[i*iWidthGrid+j][1]=referPoint[1]+j; 
} 
else 

{ 
rtnRowColNos[i*iWidthGrid+j][0]=-1; 
rtnRowColNos[i*iWidthGrid+j][1]=-1; 
} 

return(rtnRowColNos); 
} 


public int[][] leftTouchGrids() 
{ 
int[][] rtnRowColNos=new int[iHeightGrid][2]; 

for(int i=0;i<iHeightGrid;i++) 
{ 
for(int j=0;j<iWidthGrid;j++) 
{ 
if(aryDiamonds[i][j]==1) 
{ 
rtnRowColNos[i][0]=referPoint[0]+i; 
rtnRowColNos[i][1]=referPoint[1]+j; 
break; 
} 
} 
} 


return rtnRowColNos; 
} 


public int[][] rightTouchGrids() 
{ 
int[][] rtnRowColNos=new int[iHeightGrid][2]; 
for(int i=0;i<iHeightGrid;i++) 
{ 
for(int j=iWidthGrid-1;j>=0;j--) 
{ 
if(aryDiamonds[i][j]==1) 
{ 
rtnRowColNos[i][0]=referPoint[0]+i; 
rtnRowColNos[i][1]=referPoint[1]+j; 
break; 
} 
} 
} 

return rtnRowColNos; 
} 


public int[][] downTouchGrids() 
{ 
int[][] rtnRowColNos=new int[iWidthGrid][2]; 
for(int i=0;i<iWidthGrid;i++) 
{ 
for(int j=0;j<iHeightGrid;j++) 
{ 
if(aryDiamonds[j][i]==1) 
{ 
rtnRowColNos[i][0]=referPoint[0]+j; 
rtnRowColNos[i][1]=referPoint[1]+i; 
break; 
} 
} 
} 

return rtnRowColNos; 
} 

public void initDiamondsTable() 
{ 
diamondsTable=new int[SORTNUM][]; 
diamondsTable[0]=new int[2]; 
diamondsTable[1]=new int[4]; 
diamondsTable[2]=new int[4]; 
diamondsTable[3]=new int[2]; 
diamondsTable[4]=new int[2]; 
diamondsTable[5]=new int[1]; 
diamondsTable[6]=new int[4]; 


for(int i=0;i<diamondsTable.length;i++) 
for(int j=0;j<diamondsTable[i].length;j++) 
if(j==diamondsTable[i].length-1) 
diamondsTable[i][j]=0; 
else 
diamondsTable[i][j]=j+1; 

} 

public void setAryDiamonds() 
{ 
switch(iSortNo) 
{ 
case 0: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=4; 
iWidthGrid=1; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
aryDiamonds[i][j]=1; 

break; 
case 1: 
iHeightGrid=1; 
iWidthGrid=4; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
case 1: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==1)&&(j==1))||((i==2)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 1: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==1))||((i==0)&&(j==2))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 2: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==1)&&(j==0))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 3: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==1)&&(j==0))||((i==1)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
case 2: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==1)&&(j==0))||((i==2)&&(j==0))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 1: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==1)&&(j==1))||((i==1)&&(j==2))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 2: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==1))||((i==1)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 3: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==0)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
case 3: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==2)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 1: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==2))||((i==1)&&(j==0))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
case 4: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==1))||((i==2)&&(j==0))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 1: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==1)&&(j==2))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
case 5: 
iHeightGrid=2; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
aryDiamonds[i][j]=1; 
break; 
case 6: 
switch(iStatusNo) 
{ 
case 0: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==1)&&(j==0))||((i==1)&&(j==2))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 1: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==1))||((i==2)&&(j==1))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 2: 
iHeightGrid=2; 
iWidthGrid=3; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==0)&&(j==2))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
case 3: 
iHeightGrid=3; 
iWidthGrid=2; 
aryDiamonds=new int[iHeightGrid][iWidthGrid]; 
for(int i=0;i<iHeightGrid;i++) 
for(int j=0;j<iWidthGrid;j++) 
if(((i==0)&&(j==0))||((i==2)&&(j==0))) 
aryDiamonds[i][j]=0; 
else 
aryDiamonds[i][j]=1; 
break; 
} 
break; 
} 
} 

public int getWidthGrid() 
{ 
return iWidthGrid; 
} 

public int getStatusNo() 
{ 
return iStatusNo; 
} 

public void setStatusNo(int tmpStatusNo) 
{ 
iStatusNo=tmpStatusNo; 
} 

public int getSortNo() 
{ 
return iSortNo; 
} 

public void setSortNo(int tmpSortNo) 
{ 
iSortNo=tmpSortNo; 
} 

public int[] getReferPoint() 
{ 
return(referPoint); 
} 

public void setReferPoint(int tmpRowNo,int tmpColNo) 
{ 
referPoint[0]=tmpRowNo; 
referPoint[1]=tmpColNo; 
} 

private final int SORTNUM=7; 

private int[] orgReferPoint=new int[2]; 

private int[] preReferPoint=new int[2]; 

private int[] referPoint=new int[2]; 

private int iHeightGrid; 

private int iWidthGrid; 
private int[][] aryDiamonds; 
private int iSortNo; 

private int iStatusNo; 

private int[][] diamondsTable; 

private int iPreStatusNo; 


} 

class grid 
{ 
public grid(int tmpHeight,int tmpWidth,int tmpX,int tmpY,int tmpDiffX,int tmpDiffY,int tmpInUse) 
{ 
iHeight=tmpHeight; 
iWidth=tmpWidth; 
XYPosition=new Point(tmpX,tmpY-tmpHeight); 
diffX=tmpDiffX; 

⌨️ 快捷键说明

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