/*
游戏开始,从天上掉下10个有标号(字母)的炸弹,
下面有10颗子弹(就是可以按10个字母).
如果所按字母包含在炸弹中,就找到相应的炸弹并
消灭它,消灭后返回继续利用.如果没有就一直飞到天上最后才返回.
*/
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class paodan extends Applet implements Runnable,KeyListener
{
private Image bgImage;
private Graphics bg;
static Thread myThread;
static JFrame md;
String pd[]={"a","a","a","a","a","a","a","a","a","a"}; //用来存储10个字母做落下的炮弹
String fj[]={"","","","","","","","","",""}; //用来存储10个字母做反击的防空
int x[]=new int[10];
int y[]=new int[10];
//炸弹的坐标
int x1[]=new int[10];
int y1[]=new int[10];
//火箭的坐标
int life=100; //生命
Toolkit KIT=this.getToolkit();
Image paodan=KIT.createImage("paodan.jpg");
Image huojian=KIT.createImage("huojian.jpg");
}
public void cushi() //初始各种数据,如炮弹与火箭的坐标.
try
{URL u1=this.getClass().getResource("huishou.wav");
ac1=Applet.newAudioClip(u1);
}catch(Exception e){}
for (int i=0;i10;i++)
{pd[i]=noRepeat();
x[i]=noHit(i,10);
else
{ for(int i=0;i10;i++)
if (life==0) System.exit(0);
md.setTitle("打字训练室 你的生命为"+life+" 提示:白色的字母表示未按,粉红色的表示已按.");
public void fk() //防空程序,用来击毁落下的炸弹
{ int i=0,j=0;
for (i=0;i10;i++)
{ if (!fj[i].equals(""))
for (j=0;j10;j++)
if (fj[i].equals(pd[j]))
if (x1[i]x[j])
if (y1[i]y[j])
break;
public void paint(Graphics g)
//根据相应的坐标在屏幕上画炸弹和吃炸弹的娃娃,并保证白色的字母表示未按,粉红色的表示已按
{int i=0,j=0;
for(;ipd.length;i++)
{ for (j=0;jfj.length;j++)
if (pd[i].equals(fj[j]))
g.drawImage(paodan,x[i],y[i],this);
if (j==fj.length)
g.drawImage(huojian,x1[i],y1[i],this);
//没有按的显红色,按了的显白色
public void keyPressed(KeyEvent k) //当用户按的是字母时,就生成一个防空字母.
{char z=k.getKeyChar();
int i=0,j=0;
if ((z='A' z='Z') || (z='a' z='z'))
String zc=""+z;
for(;ifj.length;i++)
{ if (zc.equals(fj[i])) break;
} //保证字母不重复
if (i==fj.length)
for(i=0;ifj.length;i++)
if (fj[i].equals("")) {fj[i]=zc;break;}
public void keyReleased(KeyEvent k){}
public void keyTyped(KeyEvent k){}
public String noRepeat() //生成一个不重复的字母.
{int zc,i;
String xinx;
while(true)
for(i=0;i10;i++)
if (pd[i].equals(xinx)) break;
if(i==10) return xinx;
int noHit(int i,int langth) //让字母保持车距.
while (true)
for(j=0;j10;j++)
{ if (tmpX+widthx[j] || tmpXx[j]+width) continue; //如果欲生成的位置不与当前J所占的位置相交就判断下一个J.
if ((tmpX=x[j] tmpX=x[j]+width) || (tmpX+width=x[j] tmpX+width=x[j]+width)) break;
//如果欲生成的位置与当前x[j]所占据的范围相交就结束循环,重新生成一个起始位置.
if (j==10) {return tmpX;}
public void update(Graphics g)
{if (bgImage==null)
{bgImage=createImage(this.getSize().width,this.getSize().height);
bg=bgImage.getGraphics();
bg.setColor(getBackground());
bg.fillRect(0,0,this.getSize().width,this.getSize().height);
//bg.setColor(getForeground());
paint(bg);
g.drawImage(bgImage,0,0,this);
public void run() //用线程循环更改Y值,并根据新的坐标在屏幕上重画pd[I];
{fk();
panduan();
repaint();
public static void main(String args[])
{paodan m=new paodan();
md=new JFrame("打字训练室");
md.addKeyListener(m);
md.getContentPane().add(m);
m.cushi();
md.setVisible(true);
md.setResizable(false);
myThread=new Thread(m);
myThread.start();
注:源代码取自编程中国
本人一点建议:其实你这样学Java是没用的,你应该知道你做的项目思想,先做什么后做什么,然后在亲自动手去敲代码!一点建议!
编好了,你自己运行下:
import java.util.Random;
import java.util.Scanner;
public class Test
public static Random r = new Random();
public static void printMenu()
System.out.println("(1) play another round");
System.out.print("Selection:");
public static void main(String[] args) throws Exception
String content = null;
Scanner scan = new Scanner(System.in);
printMenu();
content = scan.nextLine();
System.out.println();
if(content.equals("1"))
System.out.print("Text to Match: ");
char[] letters = new char[count];
for(int i=0;icount;i++)
System.out.print(letters[i]);
System.out.print("\n ");
long startTime = System.currentTimeMillis();
int correctCount = 0;
if(content.charAt(i) == letters[i])
correctCount++;
long endTime = System.currentTimeMillis();
int time = (int)((endTime - startTime) / 1000);
if(correctCount == 0)
System.out.println("INCORRECTLY TYPED, YOU GET A SPEED OF 0!");
System.out.println("共花了" + time + "秒,正确率为:" + ((int)(((double)correctCount/count))*100) + "%");
具体如下:
连连看的小源码
package Lianliankan;
public class lianliankan implements ActionListener
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0"); //分数标签
JButton firstButton,secondButton; //
static boolean pressInformation=false; //判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标
int i,j,k,n;//消除方法控制
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系.
虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同.如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页.如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失.
以上就是土嘎嘎小编为大家整理的java简打字游戏源代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!