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();
}
}

}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值