`
gonglil
  • 浏览: 31456 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

java写的打字游戏

    博客分类:
  • java
阅读更多
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
//public class Test1 {
// public static void main(String[] args) {
//  Dazi dazi = new Dazi();
//  dazi.setFrame();
// }
//}
public class Dazi implements KeyListener,Runnable{
JFrame jf;// 主框架;
JMenuBar mainBar;
Thread t = null;
JPanel jp1;// 三位数字
JPanel jp5;// 级数线宽面板
JPanel jp6; // 得分的线宽面板
JLabel jtf;// 显示得分信息
JMenu fileMenu;
JMenu helpMenu;
JLabel jl1 = new JLabel();
JLabel jl2 = new JLabel();
JLabel jl3 = new JLabel();
JLabel jl4 = new JLabel();
int x[]={160,220,280,340};
int y[]={20,20,20,20};
String[][] str4 = new String[4][2];

String tempStr= "";

int flagCount = 0;

int score = 0;

int jibie = 10;

boolean startFlag = false;
public String getstring() {
  int x = (int) (10 * Math.random());
  int y = (int) (10 * Math.random());
  int z = (int) (10 * Math.random());
  String str = "" + x + y + z;
  return str;
}
public void setFrame() {
  jf = new JFrame("dz");
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  jf.setBounds(100, 100, 500, 500);
  jf.setLayout(null);
  set4Str();
  jf.addKeyListener(this);
  jf.setVisible(true);
//  jp1 = new JPanel();
//  jl2 = new JLabel();
//  jl3 = new JLabel();
//  jl4 = new JLabel();
  showMenu(); // 设置菜单
  showTool(); // 设置工具条
  showScore();
  jf.setResizable(false);
  //xunhuan();
//  jp1.setBounds(120, 0, 370, 450);
 
}

private void set4Str() {
  String str = getstring();
  str4[0][0] = str;
  str4[0][1] = "" + 0;
  jl1.setText(str);
    str = getstring();
  str4[1][0] = str;
  str4[1][1] = "" + 0;
  jl2.setText(str);
    str = getstring();
  str4[2][0] = str;
  str4[2][1] = "" + 0;
  jl3.setText(str);
    str = getstring();
  str4[3][0] = str;
  str4[3][1] = "" + 0;
  jl4.setText(str);
}

public void xunHuan(){
  while(y[0]<=500){
   try {
    Thread.sleep(459);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   for(int i=0;i<4;i++){
    y+=jibie;   
   }
   if(!isLive()) {
    if(getDisapperStr().equals("1")) {
     String str = getstring();
     str4[0][0] = str;
     str4[0][1] = "" + 0;
     jl1.setText(str);
     y[0] = 20;
     jl1.setBounds(new Rectangle(x[0], y[0], 50, 50));
    }else if(getDisapperStr().equals("2")) {
     String str = getstring();
     str4[1][0] = str;
     str4[1][1] = "" + 0;
     jl2.setText(str);
     y[1] = 20;
     jl2.setBounds(new Rectangle(x[1], y[1], 50, 50));
    }else if(getDisapperStr().equals("3")) {
     String str = getstring();
     str4[2][0] = str;
     str4[2][1] = "" + 0;
     jl3.setText(str);
     y[2] = 20;
     jl3.setBounds(new Rectangle(x[2], y[2], 50, 50));
    }else{
     String str = getstring();
     str4[3][0] = str;
     str4[3][1] = "" + 0;
     jl4.setText(str);
     y[3] = 20;
     jl4.setBounds(new Rectangle(x[3], y[3], 50, 50));
    }
    //加分
    score += 10;
    String scoreStr = "得分:" + score;
    jtf.setText(scoreStr);
   
   }else {
    if(isOver()) {
     for(int i=0; i<y.length; i++) {
      y = 20;
     }
     set4Str();
     JOptionPane.showMessageDialog(jf, "游戏结束!", "提示",
       JOptionPane.INFORMATION_MESSAGE);
     return;
    }
    jl1.setBounds(new Rectangle(x[0], y[0], 50, 50));
    jl2.setBounds(new Rectangle(x[1], y[1], 50, 50));
    jl3.setBounds(new Rectangle(x[2], y[2], 50, 50));
    jl4.setBounds(new Rectangle(x[3], y[3], 50, 50));
   }
   jf.add(jl1);
   jf.add(jl2);
   jf.add(jl3);
   jf.add(jl4);
  }
}

/**
  * 判断四个串是否存在
  * @return 若存在 返回true 否则false
  */
private boolean isLive() {
  boolean flag = true;
  for(int i=0; i<str4.length; i++) {
   if(!str4[1].equals("0")) {
    flag = false;
   }
  }
  return flag;
}

private String getDisapperStr() {
  String str = "";
  for(int i=0; i<str4.length; i++) {
   if(!str4[1].equals("0")) {
    str = str4[1];
    break;
   }
  }
  return str;
}


private boolean isOver() {
  boolean overFalg = false;
  for(int i=0; i<y.length; i++) {
   if(y >= 430) {
    overFalg = true;
   }
  }
  return overFalg;
}

public void showMenu() {
  mainBar = new JMenuBar();
  fileMenu = new JMenu("游戏"); // 设置菜单栏选项
  helpMenu = new JMenu("帮助");// 设置菜单栏选项
  // jf.setJMenuBar(mainBar);//将菜单栏添加到主框架里面
  JMenuItem startItem = new JMenuItem("开始游戏(O)", 'O'); // 设置游戏里面的开始选项
  JMenuItem exitItem = new JMenuItem("结束游戏(X)", 'X');// 设置游戏里面的结束选项
  startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
    InputEvent.CTRL_MASK));// 设置开始选项的快捷键
  startItem.addActionListener(
    new ActionListener() {
     public void actionPerformed(ActionEvent e) {
      startFlag = true;
      //System.out.println("begin");
     }
    }
  );
  exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
    InputEvent.CTRL_MASK));// 设置退出选项的快捷键
  exitItem.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(jf, "你应经结束游戏了", "提示",
      JOptionPane.INFORMATION_MESSAGE);
    System.exit(0);
   }
  });
  JMenuItem aboutItem = new JMenuItem("关于(A)", 'A');// 设置帮助里的关于选项
  aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
    InputEvent.CTRL_MASK));// 设置关于选项的快捷键
  aboutItem.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    JOptionPane.showMessageDialog(jf, "这是一个简单的打字游戏", "提示",
      JOptionPane.INFORMATION_MESSAGE);
   }
  });
  mainBar.add(fileMenu);// 将游戏菜单添加到主菜单中
  mainBar.add(helpMenu);// 将帮助菜单添加到主菜单中
  fileMenu.add(startItem);// 将开始菜单添加到游戏菜单中
  fileMenu.add(exitItem);// 将退出菜单添加到游戏菜单中
  helpMenu.add(aboutItem);// 将关于菜单添加到帮助菜单中
  jf.setJMenuBar(mainBar);
}
public void showTool() {
  Container contentPane = jf.getContentPane();
  JToolBar jtb = new JToolBar(); // 设置工具条
  jtb.setSize(125, 350);
  contentPane.add(jtb, BorderLayout.WEST);
  mainBar = new JMenuBar();// 定义主菜单
  JRadioButton[] buttons = new JRadioButton[10];
  jp5 = new JPanel();
  jp5.setSize(100, 300);
  jp5.setBorder(BorderFactory.createTitledBorder("选择级数"));
  jp5.setLayout(new GridLayout(9, 1));
  ButtonGroup bg = new ButtonGroup();
  JRadioButton b1 = new JRadioButton("1", true);
  b1.addItemListener(
    new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      if(e.getStateChange() == e.SELECTED) {
       setJibie(1);
      }
     }
    }
  );
  bg.add(b1);
  jp5.add(b1);
  JRadioButton b2 = new JRadioButton("2");
  b2.addItemListener(
    new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      if(e.getStateChange() == e.SELECTED) {
       setJibie(2);
      }
     }
    }
  );
  bg.add(b2);
  jp5.add(b2);
  JRadioButton b3 = new JRadioButton("3");
  b3.addItemListener(
    new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      if(e.getStateChange() == e.SELECTED) {
       setJibie(3);
      }
     }
    }
  );
  bg.add(b3);
  jp5.add(b3);
  JRadioButton b4 = new JRadioButton("4");
  b4.addItemListener(
    new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      if(e.getStateChange() == e.SELECTED) {
       setJibie(4);
      }
     }
    }
  );
  bg.add(b4);
  jp5.add(b4);
  JRadioButton b5 = new JRadioButton("5");
  b5.addItemListener(
    new ItemListener() {
     public void itemStateChanged(ItemEvent e) {
      if(e.getStateChange() == e.SELECTED) {
       setJibie(5);
      }
     }
    }
  );
  bg.add(b5);
  jp5.add(b5);
//  for (int i = 2; i < buttons.length; i++) {
//   buttons = new JRadioButton("" + i);
//   bg.add(buttons);
//   jp5.add(buttons);
//   buttons.addItemListener(new ItemListener() {
//
//    public void itemStateChanged(ItemEvent e) {
//     if(e.getStateChange() == e.SELECTED) {
//     }
//    }
//   });
//  }
  jtb.add(jp5);
}
public void showScore() {
  jp6 = new JPanel();
  jp6.setBounds(30, 350, 100, 30);
  jtf = new JLabel("得分:00");
  jp6.add(jtf);
  jf.add(jp6);
  jf.setVisible(true);
}
public void keyPressed(KeyEvent e) { 
   tempStr +=e.getKeyChar();
   flagCount ++;
  if(flagCount == 3) {
   for(int i=0; i<str4.length; i++) {
    if(tempStr.equals(str4[0])) {
     str4[1] = "" + (i+1);
     break;
    }
   }
   flagCount = 0;
   tempStr = "";
  }
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}

public static void main(String[] args) {
Dazi dazi = new Dazi();
dazi.setFrame();
new Thread(dazi).start();
}
public void setJibie(int jibie) {
  this.jibie = jibie * 10;
}
public void run() { 
  while (true) {
   try {
    if(startFlag) {
     xunHuan();
     startFlag = false;
    }
    Thread.sleep(500);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
  }
 
}
}







分享到:
评论

相关推荐

    java写的打字游戏.zip

    java写的打字游戏java写的打字游戏java写的打字游戏 java写的打字游戏java写的打字游戏java写的打字游戏 java写的打字游戏java写的打字游戏java写的打字游戏 java写的打字游戏java写的打字游戏java写的打字游戏 java...

    Java编程基础课设 Java打字游戏.zip

    Java编程基础课设 Java打字游戏.zipJava编程基础课设 Java打字游戏.zip 、Java编程基础课设 Java打字游戏.zipJava编程基础课设 Java打字游戏.zip Java编程基础课设 Java打字游戏.zipJava编程基础课设 Java打字游戏....

    java打字游戏源代码

    java打字游戏 的源代码,可以供做课程设计的代码,不过没有声音。

    用java实现打字游戏

    用java实现一个简单的打字游戏,自己编写的

    java打字小游戏

    java 打字小游戏 ,代码和说明全 游戏介绍: 这是练习打字的一款小游戏。 它可以练习打字速度,界面唯美,是一个休闲的好游戏! 代码实现: 有一个DWords类。其中用到了html知识以及panel、label等各类控件,调用...

    Java简单英文打字游戏

    非常简单的JAVA英文打字软件源码,只有一个JAVA文件,适合初学者学习。

    JAVA编写的打字游戏

    用java编写的打字游戏的源码,欢迎大家下载

    java写的打字游戏源代码

    游戏开始后,屏幕上方同时有四个数字分四列下落,每个数字由三位组成(随机生成,但首位不可相同)。玩家用键盘依次输入数字,如果输入的数字序列与某一... 作业题目,这个只是粗略写的,分享一下!希望对大家有点帮助

    JAVA写的打字游戏

    java写的打字游戏源码

    java 多线程 打字游戏

    java写的打字游戏。使用了多次按成,awt和swing,代码注释详细,适合初学者。

    java实现简单打字游戏(源码)

    java编写的简单打字游戏,以实现功能为主,适合初学者学习,很好很强大。

    Java打字游戏源代码

    Java打字游戏的源代码 学习多线程的好例子

    Java打字软件游戏

    采用Java编写的打字软件,里面还有打字训练和多个打字游戏

    java打字游戏源码+可执行程序

    用java编写的打字游戏+源码,欢迎下载哦

    JAVA程序设计打字游戏

    用JAVA程序设计语言编写一个打字游戏,考虑打字准确性与速度

    java打字游戏(附有源代码)

    用java编写的打字游戏,可以玩玩,看看!!! 有源代码!!!

Global site tag (gtag.js) - Google Analytics