Java模板游戏代码Word文档格式.docx
《Java模板游戏代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java模板游戏代码Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
数字玩法=newJRadioButton("
数字玩法"
true);
图像玩法=newJRadioButton("
图像玩法"
false);
group.add(数字玩法);
group.add(图像玩法);
puzzlePad=newPuzzlePad(3,3,50,50);
con=getContentPane();
con.add(puzzlePad,BorderLayout.CENTER);
JPanelpNorth=newJPanel();
pNorth.add(数字玩法);
pNorth.add(图像玩法);
pNorth.add(开始);
con.add(pNorth,BorderLayout.NORTH);
con.validate();
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
System.exit(0);
}
});
setVisible(true);
setBounds(100,50,440,360);
validate();
publicvoidactionPerformed(ActionEvente)
{if(e.getSource()==开始)
if(数字玩法.isSelected())
puzzlePad.随机排列数字();
elseif(图像玩法.isSelected())
puzzlePad.随机排列图像();
}
elseif(e.getSource()==初级)
con.remove(puzzlePad);
this.validate();
elseif(e.getSource()==高级)
puzzlePad=newPuzzlePad(4,4,50,50);
publicstaticvoidmain(Stringargs[])
newPuzzleFrame();
}
MobanFrame类:
importjava.awt.*;
importjava.awt.event.*;
import.*;
importjava.applet.Applet;
importjavax.imageio.ImageIO;
importjava.io.File;
importjava.awt.image.*;
importjavax.swing.JOptionPane;
publicclassMobanFrameextendsFrameimplementsActionListener,MouseListener,ItemListener
MobanSquare[][]position;
PointstartPoint=newPoint(100,130);
PointrightStartPoint=newPoint(400,90);
int[]num;
Point[]pointMove;
inttotalStep=0;
StringselectedImage="
狗"
;
StringgamingImage="
"
booleanstartGame=false;
intsquareNumber=3;
intlevel=1;
intsquareSize=80;
ImagesourceImage;
ImagespaceSourceImage;
ImagespaceImage;
Image[]myImage;
Graphics2Dggg;
/*--------------------*/
/*显示在界面上的一些组件*/
TextFieldtfx;
TextFieldtfy;
MenuBarmnbMyMenuBar;
MenumnChooseLevel;
MenuItemmniLevel1,mniLevel2;
LabellbStep;
LabellbSuccess=newLabel("
"
ButtonbtnStartGame;
ChoicechChoiceImage;
publicMobanFrame()
super("
pointMove=newPoint[4];
pointMove[0]=newPoint(-1,0);
pointMove[1]=newPoint(1,0);
pointMove[2]=newPoint(0,-1);
pointMove[3]=newPoint(0,1);
setLayout(newFlowLayout());
chChoiceImage=newChoice();
chChoiceImage.add("
鸡"
鱼"
熊猫"
大象"
长颈鹿"
牛"
小猫"
小猫2"
羊"
猴"
数字"
mniLevel1=newMenuItem("
简单"
mniLevel2=newMenuItem("
困难"
mnChooseLevel=newMenu("
难度"
mnbMyMenuBar=newMenuBar();
tfx=newTextField(8);
tfy=newTextField(8);
tfx.setText("
0"
tfy.setText("
1"
tfx.setVisible(false);
tfy.setVisible(false);
lbStep=newLabel("
已走步数:
+Integer.toString(totalStep));
btnStartGame=newButton("
开始游戏"
mnChooseLevel.add(mniLevel1);
mnChooseLevel.add(mniLevel2);
mnbMyMenuBar.add(mnChooseLevel);
this.setMenuBar(mnbMyMenuBar);
add(tfx);
add(tfy);
add(lbSuccess);
add(lbStep);
add(chChoiceImage);
add(btnStartGame);
mniLevel1.addActionListener(this);
mniLevel2.addActionListener(this);
btnStartGame.addActionListener(this);
chChoiceImage.addItemListener(this);
this.addMouseListener(this);
addWindowListener(newWindowAdapter()
{
publicvoidwindowClosing(WindowEvente)
}
});
ProInit();
GetImage();
GetRandom();
setSize(600,300);
setVisible(true);
publicvoidGetImage()
myImage=newImage[squareNumber*squareNumber];
ImageFiltercropFilter1;
ImageFiltercropFilter2;
ImageFiltercropFilter3;
Toolkittool=getToolkit();
sourceImage=tool.createImage(selectedImage+"
.jpg"
spaceSourceImage=tool.createImage("
space.jpg"
sourceImage=sourceImage.getScaledInstance(squareSize*squareNumber,squareSize*squareNumber,Image.SCALE_DEFAULT);
cropFilter1=newCropImageFilter(0,0,squareSize*squareNumber,squareSize*squareNumber);
sourceImage=createImage(newFilteredImageSource(sourceImage.getSource(),cropFilter1));
for(inti=0;
i<
squareNumber*squareNumber;
i++)
{
cropFilter2=newCropImageFilter((i%squareNumber)*squareSize,(i/squareNumber)*squareSize,squareSize,squareSize);
myImage[i]=createImage(newFilteredImageSource(sourceImage.getSource(),cropFilter2));
cropFilter3=newCropImageFilter(0,0,squareSize,squareSize);
spaceImage=createImage(newFilteredImageSource(spaceSourceImage.getSource(),cropFilter3));
myImage[squareNumber*squareNumber-1]=spaceImage;
publicvoidProInit()
num=newint[squareNumber*squareNumber];
position=newMobanSquare[squareNumber+2][squareNumber+2];
publicvoidpaint(Graphicsg)
booleanshowSuccess=true;
lbStep.setText("
if(startGame)
for(inti=1;
squareNumber+1;
i++)
{
for(intj=1;
j<
j++)
{
g.drawImage(position[i][j].GetImage(),startPoint.x+(position[i][j].y-1)*squareSize,startPoint.y+(position[i][j].x-1)*squareSize,this);
//绘制左边打乱的方块
}
}
g.setColor(Color.cyan);
for(inti=0;
{
g.drawLine(startPoint.x+squareSize*i,startPoint.y,startPoint.x+squareSize*i,startPoint.y+squareNumber*squareSize);
g.drawLine(startPoint.x,startPoint.y+squareSize*i,startPoint.x+squareNumber*squareSize,startPoint.y+squareSize*i);
}
g.drawImage(sourceImage,rightStartPoint.x,rightStartPoint.y,this);
//g.drawImage(spaceImage,rightStartPoint.x+(squareNumber-1)*squareSize,rightStartPoint.y+(squareNumber-1)*squareSize,this);
for(inti=1;
for(intj=1;
if(position[i][j].GetOrder()!
=(i-1)*squareNumber+(j-1))
showSuccess=false;
if(showSuccess)
showSuccess=false;
lbSuccess.setText("
恭喜您,成功完成"
publicvoidGetRandom()
intk=squareNumber*squareNumber;
booleannumExist=false;
inttotal=0;
for(intj=0;
num[j]=-1;
while(total<
squareNumber*squareNumber)
k=((int)(Math.random()*10)+(int)(Math.random()*10))%(squareNumber*squareNumber);
for(intj=0;
total;
if(k==num[j])
numExist=true;
break;
if(!
numExist)
num[total]=k;
total++;
numExist=false;
squareNumber+2;
if(i==0||i==squareNumber+1||j==0||j==squareNumber+1)
this.position[i][j]=newMobanSquare(i,j,-1,squareNumber*squareNumber-1);
this.position[i][j]=newMobanSquare(i,j,num[(i-1)*squareNumber+j-1],squareNumber*squareNumber-1);
this.position[i][j].SetImage(myImage[this.position[i][j].GetOrder()]);
publicvoidMove(intx,inty)
intsquare_X,square_Y,order_Old,order_New;
square_X=(y-1-startPoint.y)/squareSize+1;
square_Y=(x-1-startPoint.x)/squareSize+1;
for(inti=0;
4;
if(position[square_X+pointMove[i].x][square_Y+pointMove[i].y].arrive)
this.totalStep++;
PointnewPoint=newPoint(square_X+pointMove[i].x,square_Y+pointMove[i].y);
order_Old=position[square_X][square_Y].GetOrder();
order_New=position[newPoint.x][newPoint.y].GetOrder();
position[square_X][square_Y].SetOrder(order_New);
position[square_X][square_Y].SetImage(myImage[order_New]);
position[newPoint.x][newPoint.y].SetOrder(order_Old);
position[newPoint.x][newPoint.y].SetImage(myImage[order_Old]);
repaint();
break;
if(e.getSource()==btnStartGame)
lbSuccess.setText("
totalStep=0;
if(level==1)
squareNumber=3;
if(level==2)
squareNumber=4;
startGame=true;
gamingImage=selectedImage;
ProInit();
GetImage();
GetRandom();
repaint();
if(e.getSource()==mniLevel1)
level=1;
startPoint=newPoint(110,120);
rightStartPoint=newPoint(450,120);
if(e.getSource()==mniLevel2)
level=2;
startPoint=newPoint(40,100);
rightStartPoint=newPoint(440,100);
publicvoiditemStateChanged(ItemEvente)
if(e.getItemSelectable()instanceofChoice)
selectedImage=((Choice)e.getItemSelectable()).getSelectedItem();
tfx.setText(selectedImage);
tfy.setText(gamingImage);
if(selectedImage!
=gamingImage)
GetImage();
startGame=false;
publicvoidmouseClicked(MouseEvente)
intclick_X,click_Y;
click_X=e.getX();
click_Y=e.getY();
tfx.setText(Integer.toString((e.getY()-1-startPoint.x)/squareSize+1));
tfy.setText(Integer.toString((e.getX()-1-startPoint.y)/squareSize+1));
if