java实现打字游戏小程序

本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下

一、设计思路

1.创建一个窗体
2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自动下落
3.设置得分扣分机制
4.在面板上添加键盘监听器,输入正确得分,输入错误则扣分
ps:面板和监听器用一个类实现(这样简单方便)

二、具体实现

MyPanel.java

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; /** * 继承Panel类,Panel是Java中的面板类。基本上要操作窗体都会继承此类 * */
public class MyPanel extends Panel implements KeyListener{
 int x[] = new int[10];//储存随机字母x轴
 int y[] = new int[10];//储存随机字母y轴
 char c[] = new char[10];//储存随机字母
 int integral =1000;//初始1000积分
 Color p[] =new Color[10];//用来存储颜色
 public MyPanel() {
 for (int i = 0; i < 10; i++) {
 x[i]=(int)(Math.random()*300);//0-300
 y[i]=(int)(Math.random()*50);//0-50
 c[i]=(char)(Math.random()*26+97);//随机字母
 p[i]=getRandColorCode();//获取十六进制的颜色代码.例如 "#6E36B4"
 }
 } /** * 复写Panel类的paint方法 */ 

 public void paint(Graphics g) {
 if (integral>0) {//如果成绩>0,才能进来
 for (int i = 0; i < 10; i++) {//十个英文字母
 g.setColor(p[i]);//设置元素颜色
 g.setFont(new Font("TimesRoman", Font.PLAIN, 20)); //设置字体,大小 //1.出现的元素,2.元素的x轴,3.元素的y轴
 g.drawString(new
 Character(c[i]).toString().toUpperCase(),x[i],y[i]);//画出面板上的字母图像
 }
 //显示积分在屏幕上
 g.setColor(Color.red);
 g.setFont(new Font("TimesRoman", Font.PLAIN, 20));
 g.drawString("你的成绩是:"+integral, 10, 30);
 donghua();
 }else {//成绩<0,游戏结束
 g.setColor(Color.red);
 g.setFont(new Font("TimesRoman", Font.PLAIN, 30));
 g.drawString("GAME OVER", 50, 170);
 }
 } 

 public void donghua() {
 for (int i = 0; i < 10; i++) {//对十个字母一直检测,如果没有超过面板就纵坐标+1,若超过了从顶部就重新生成字母
 y[i]++;//字母的y轴 加1,既往下移动1个位置
 if (y[i]>370) {//窗体边框占有一部分像素,所以设置370即可
 y[i]=0;//设置该字母的纵坐标为0
 x[i]=(int)(Math.random()*300);
 c[i]=(char)(Math.random()*26+97);
 integral-=100;//积分-100
 }
 try {
 Thread.sleep(5);//暂停5毫秒,控制字母下落的速度,
 }
 catch (InterruptedException e) {}
 repaint();//重新绘制画面
 }
 } //键盘监听器 

 public void keyPressed(KeyEvent e) {
 char keyC = e.getKeyChar();
 int stat=-1;//存储最下面字母的值
 int nowIndex=-1;//存储最下面字母的下标
 for (int i = 0; i < 10; i++) {//找出所有匹配字母处于最下面的字母
 if (keyC==c[i]) {
 if (y[i]>stat) {//第一次进来时,必定大于,
 stat=y[i];//记录坐标值
 nowIndex=i;//记录字母的下标
 }
 }
 }
 if (nowIndex!=-1) {//如果!=-1,证明输入正确,nowIndex为最下面的字母的下标,重新生成。积分+100
 y[nowIndex]=0;
 x[nowIndex]=(int)(Math.random()*300);
 c[nowIndex]=(char)(Math.random()*26+97);
 integral+=100;//积分+100
 }else {//如果==-1,证明输错了。积分-100
 integral-=100;//积分-100
 }
 } 

/**  * 获取十六进制的颜色代码.例如 "#6E36B4" ,  * @return String  */ 

 public static Color getRandColorCode(){
 int r,b,g;
 r=(int)(Math.random()*250);
 b=(int)(Math.random()*250);
 g=(int)(Math.random()*250);
 Color c =new Color(r, b, g);
 return c; } 

 public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }
 public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }}

MyTyping.java

import java.awt.Frame;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class MyTyping {
/** 思路:
1.一个窗体
2.在窗体绘制元素(随机出现的字母)
3.加入键盘事件
4.加入计数器(分数)
5.匹配键盘录入字母和屏幕上的字母
一致:消除,并且从最上面重新生成.积分+
不一致:不消除,积分-
没录入:不消除,积分-
6.积分<0,游戏结束 */ 

public static void main(String[] args) {
JFrame f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击x关闭退出程序
f.setLocationRelativeTo(null);//窗体置中
f.setSize(300, 400);//设置窗体大小
MyPanel p = new MyPanel();
f.add(p);//将面板放入窗体中
f.addKeyListener(p);//注册键盘事件
p.addKeyListener(p);//注册键盘事件
f.setVisible(true);//显示窗体
}

三、运行截图

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java类与对象案例之打字游戏

    类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类似的简易版. 首先对于这个案例,我们要解决的是如何生成随机的字符串,如何判断生成的字符串和输入的字符串是否相等. 一.玩家类 package com.yc.oop6.hc0705; public class Player { private int score; //积分 private long

  • java实现快速打字游戏

    本文实例为大家分享了java实现打字游戏的具体代码,供大家参考,具体内容如下 import java.util.Random; import java.util.Scanner; public class Game { public Game(Player player) { } public Game() { } public String printStr(Player player) { StringBuffer a=new StringBuffer(); for(int i=0;i<Le

  • Java实现打字游戏

    本文实例为大家分享了Java实现打字游戏的具体代码,供大家参考,具体内容如下 新建一个项目,然后在src里面建一个MyGame.java文件, 把代码粘到刚才新建的MyGame.java, 然后把两张图放到src下,就行了 一.代码 import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; import java.a

  • java实现打字游戏小程序

    本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下 一.设计思路 1.创建一个窗体 2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自动下落 3.设置得分扣分机制 4.在面板上添加键盘监听器,输入正确得分,输入错误则扣分 ps:面板和监听器用一个类实现(这样简单方便) 二.具体实现 MyPanel.java import java.awt.Color; import java.awt.Font; import java.awt.G

  • java实现扫雷游戏入门程序

    本文实例为大家分享了java实现扫雷游戏入门程序的具体代码,供大家参考,具体内容如下 分析: 1.首先布一个10*10的雷阵,即二维数组map,每个地方都为0 2.再在雷阵中随机选取10个位置设置为雷,雷用-1表示,即map[i][j] = -1; 3.计算雷周围的数.这里有两种方法. 第一种是用一个二维数组保存所有雷的位置,然后遍历所有的雷,查看雷周围的8个位置,如果是值-1就不做++,如果值不是-1就做++. 第二种是遍历所有不为雷的地方,然后再计算它周围的雷的数目,周围的雷的数目就是该位置

  • Python编写打字训练小程序

    你眼中的程序猿 别人眼中的程序猿,是什么样子?打字如飞,各种炫酷的页面切换,一个个好似黑客般的网站破解.可现实呢? 二指禅的敲键盘,写一行代码,查半天百度-那么如何能让我们从外表上变得更像一个程序猿呢?当然是训练我们的打字速度了啊! 训练打字 很羡慕那些盲打速度炒鸡快的人,看起来就比较炫酷.但很多IT男打字速度并不快,甚至还有些二指禅的朋友们,太影响装13效果了.那么今天我们就来使用Python写一个打字训练的小工具吧.先来看看使用效果- 我们使用Python内置的GUI模块Tkinter来编写

  • java仿windows记事本小程序

    本文实例为大家分享了java仿windows记事本小程序的具体代码,供大家参考,具体内容如下 import java.awt.CheckboxMenuItem; import java.awt.Font; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.TextA

  • 基于java socket实现 聊天小程序

    服务器 package demo04; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.DataInputStream; import java.io.DataOutp

  • Java后台与微信小程序的数据交互实现

    想把自己写的一个小项目转成微信小程序,主要是因为小程序比较火,而且自己想学一下小程序的东西,所以抱着初学者的心态开始了这个痛苦的旅程.看过小程序的一点视频,个人感觉和HTML,css,js差不多,甚至比前端更简单一些,可能是微信小程序做不出来那些炫酷的动态效果. 首先,要从Java后台查询出一组数据,然后转成json串返回.我总共总结了2种方法返回数据.一种非常简单,一种显得繁琐. 第一种通过springmvc的组件@ResponseBod返回数据 /* * 查询用户 * 通过springmvc

  • Java实现简单计算器小程序

    本文实例为大家分享了Java实现简单计算器小程序的具体代码,供大家参考,具体内容如下 这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练. 由于期末来了,没太多时间,所以暂时就实现最简单的功能. 个人不喜欢用大量文字记叙程序,而且该程序也相对简单,所以直接画了张程序框架图,再配合代码的注释,就明白程序的原理了. 图 计算器程序框架 代码如下: package tst.jframe; import java.awt.EventQueue; i

  • java gui实现计算器小程序

    本文实例为大家分享了java gui实现计算器小程序的具体代码,供大家参考,具体内容如下 废话不多说 , 直接贴代码 , 有详细的注释 , 我也是刚学GUI没多久 这个是效果图 : 代码: package gui; /** * 导入所需要的包 **/ import java.awt.*; // 这个是java的gui编程里面一个很重要的包 import java.awt.event.*; // 用来处理事件所需要 import java.util.Stack; // 栈 , 我用来处理运算的 p

  • 五步完成unity与微信(游戏)小程序交互创建视频

    本文基于minigame-unity-webgl-transform方案,此方案支持大部分Unity组件及方法,比较可惜的是目前版本不支持任何形式的Video播放(不管是MovieoTexture.VideoPlayer还是其他第三方的视频播放插件,比如AVPro.EasyMovieTexture). 而且当前版本中也无法通过微信的sdk来创建视频 通过unity与微信小程序交互的方式调用微信小程序原生sdk来创建视频 (目前仅支持覆盖在游戏界面上播放,无法做到类似videoplayer那样在场

随机推荐