仿金山打字通游戏 Java代码

Code:
  1. import javax.swing.* ;  
  2. import java.awt.* ;  
  3. import java.awt.event.* ;  
  4.   
  5. public class ZiMu extends JFrame {  
  6. ZiMu(){  
  7.   this.setSize(300 , 600) ;  
  8.   this.setResizable(false) ;  
  9.   this.setTitle("打字游戏") ;  
  10.   this.setBackground(Color.BLACK) ;  
  11.     
  12.   MyPanel mp = new MyPanel() ;  
  13.   this.add(mp) ;  
  14.   this.addKeyListener(mp) ;  
  15.     
  16.   Thread t = new Thread (mp) ;  
  17.   t.start() ;  
  18.  }  
  19.     
  20.  public static void main(String args[]){  
  21.   ZiMu w = new ZiMu () ;  
  22.   w.setVisible(true) ;  
  23.       
  24.  }  
  25. }  
  26. class MyPanel extends JPanel implements Runnable, KeyListener {  
  27.  int x[] = new int[10] ;  
  28.  int y[] = new int[10] ;  
  29.  int sum = 0 ;  
  30.  String z[] = new String[10] ;  
  31.    
  32.  MyPanel(){  
  33.   for(int i=0;i<10;i++){  
  34.    x[i] = (int)(Math.random()*300) ;  
  35.    y[i] = (int)(Math.random()*300) ;  
  36.    z[i] = new String(""+(char)(Math.random()*25+65)) ;  
  37.   }  
  38.  }  
  39.  public void paint(Graphics g) {  
  40.   super.paint(g) ;  
  41.     
  42.   this.setBackground(Color.black) ;  
  43.   g.setColor(Color.WHITE) ;  
  44.   g.drawString("一分钟正确打对的字母: "+sum , 10 , 560) ;  
  45.   for(int i=0;i<10;i++){  
  46.    g.drawString(z[i] , x[i] , y[i]) ;   
  47.   }    
  48.  }  
  49.  public void run(){  
  50.   long g = System.currentTimeMillis() ;  
  51.     
  52.   while(System.currentTimeMillis()-g<=60000) {  
  53.     
  54.      
  55.    for(int i=0;i<10;i++){  
  56.     y[i] ++ ;      
  57.     if(y[i]>= 600){  
  58.      sum -= 1 ;  
  59.      y[i] = (int)(Math.random()*50) ;  
  60.      x[i] = (int)(Math.random()*280) ;  
  61.      z[i] = new String(""+(char)(Math.random()*25+65)) ;  
  62.     }  
  63.    }  
  64.    try{  
  65.     Thread.sleep(20) ;  
  66.    }  
  67.    catch(Exception e){  
  68.    }  
  69.    this.repaint() ;  
  70.   }  
  71.    
  72.  }  
  73.  public void keyTyped(KeyEvent e) {  
  74.   // TODO: Add your code here  
  75.  }  
  76.   
  77.  public void keyPressed(KeyEvent e) {  
  78.   String keychar = new String(""+e.getKeyChar()) ;  
  79.   int yy = 0 ;  
  80.   int j = -1 ;  
  81.     
  82.   for(int i=0;i<10;i++){  
  83.    if(keychar.equals(z[i])){  
  84.     if(yy
  85.      yy = y[i] ;  
  86.      j = i ;  
  87.     }  
  88.    }  
  89.   }  
  90.   if(j!=-1){  
  91.    z[j] = new String(""+(char)(Math.random()*25+65)) ;  
  92.    y[j] = 0 ;  
  93.      
  94.    sum += 1 ;  
  95.      
  96.   }else{  
  97.    sum -= 1 ;  
  98.   }    
  99.  }  
  100.  public void keyReleased(KeyEvent e) {  
  101.   // TODO: Add your code here  
  102.  }  
  103. }  

 

 

你可能感兴趣的:(仿金山打字通游戏 Java代码)