logo资料库

java课设代码.docx

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
package kaishi; import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.Random; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Test extends JApplet{ private static final int UP=0,DOWN=1,LEFT=2,RIGHT=3;
private static final int WID=150,SP=10; private int scores=0; private static JLabel scoreLabel; private boolean change,CheckMode=false,gameOverFlag=false,successFlag=false; private int[] label={2,4,8,16,32,64,128}; private Color[] clo={ new Color(200,200,200),new Color(228,228,160),new Color(214,163,92), new Color(234,124,72),new Color(240,84,77),new Color(255,68,53),new Color(200,200,64) }; private Map cmap=new HashMap(); public static RectObject[][] rset=new RectObject[4][4]; public RectObject[][] list=new RectObject[4][4]; private My2048Panel myp; private LinkedList> saveList=new LinkedList>(); private JButton goBackButton; KeyListener kl=new KeyListener(){ public void keyPressed(KeyEvent e){ saveTheStep(); goBackButton.setVisible(true); if(gameOverFlag==true){ return; } if(!aDirAble()){ gameOver(); } int key=e.getKeyCode(); switch(key){
case KeyEvent.VK_UP: change=false; moveUp(true); if(change==true){ getARandomRect(); //saveTheStep(); } break; case KeyEvent.VK_DOWN: change=false; moveDown(true); if(change==true){ getARandomRect(); //saveTheStep(); } break; case KeyEvent.VK_LEFT: change=false; moveLeft(true); if(change==true){ getARandomRect(); //saveTheStep(); } break; case KeyEvent.VK_RIGHT: change=false; moveRight(true); if(change==true){ getARandomRect(); //saveTheStep(); } break; }
//saveTheStep(); } public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} }; class RectObject{ private int value; public RectObject(){ value=0; } public RectObject(RectObject obj){ value=obj.value; } public boolean equals(Object inobj){ RectObject obj=(RectObject)inobj; if(obj.value==value){ return true; } return false; } } class Point{ int x; int y; public Point(int i,int j){ x=i; y=j; } } class My2048Panel extends JPanel{ private int[] xindex={SP,2*SP+WID,3*SP+2*WID,4*SP+3*WID};
private int[] yindex={SP,2*SP+WID,3*SP+2*WID,4*SP+3*WID}; public void paintComponent(Graphics g){ //background super.paintComponent(g); for(int i=0;i
Font("TimesRoman",Font.BOLD,50); g.setFont(font); @SuppressWarnings("deprecation") FontMetrics fm=Toolkit.getDefaultToolkit().getFontMetrics(font); int len=fm.stringWidth(""+rset[i][j].value); int hg=fm.getHeight(); g.drawString(""+rset[i][j].value, yindex[j]+WID/2-len/2, xindex[i]+WID/2+hg/4); if(rset[i][j].value==2048 && successFlag==false){ successFlag=true; gameSuccess(); } } } } } } class GameOverPane extends JPanel{ public GameOverPane(int w,int h){ setSize(w,h); //setOpaque(false); } public void paintComponent(Graphics g){ super.paintComponent(g); Font font=new Font("TimesRoman",Font.BOLD,80); g.setFont(font); @SuppressWarnings("deprecation") FontMetrics fm=Toolkit.getDefaultToolkit().getFontMetrics(font);
int width=fm.stringWidth("Game Over"); int height=fm.getHeight(); g.setColor(new Color(255,0,0)); g.drawString("Game Over!", getWidth()/2-width/2, getHeight()/2-height/2); } } class SuccessPane extends JPanel{ public SuccessPane(int w,int h){ setSize(w,h); //setOpaque(false); } public void paintComponent(Graphics g){ super.paintComponent(g); Font font=new Font("TimesRoman",Font.BOLD,80); g.setFont(font); @SuppressWarnings("deprecation") FontMetrics fm=Toolkit.getDefaultToolkit().getFontMetrics(font); int width=fm.stringWidth("Success!"); int height=fm.getHeight(); g.setColor(new Color(255,0,0)); g.drawString("Success!", getWidth()/2-width/2, getHeight()/2-height/2); } } class LOGO extends JPanel{ public LOGO(int w ,int h){ setSize(w,h); } public void paintComponent(Graphics g){
super.paintComponent(g); Font font=new Font("TimesRoman",Font.BOLD,30); g.setFont(font); @SuppressWarnings("deprecation") FontMetrics fm=Toolkit.getDefaultToolkit().getFontMetrics(font); fm.stringWidth("2048"); fm.getHeight(); g.setColor(new Color(255,0,0)); g.drawString("郭泽民的2048", 20, getHeight()/2+20); } } public class goBackListener implements ActionListener{ public void actionPerformed(ActionEvent e){ if(saveList.size()==0){ goBackButton.setVisible(false); return; } ArrayList arr=(ArrayList)saveList.getLast(); scoreLabel.setText(""+arr.get(0)); for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ int num=(int)arr.get(4*i+j+1); if(num!=0){ rset[i][j]=new RectObject(); rset[i][j].value=num; }else{ rset[i][j]=null; } } } saveList.removeLast();
分享到:
收藏