import java.awt.*; import java.awt.event.*; import java.awt.font.*; import java.awt.print.*; import javax.swing.*; public class typewrite { public static void main(String[] args) { JFrame w = new JFrame("typewrite game"); w.setSize(300, 400); w.setFont(new Font("",10,100000)); w.setBackground(Color.RED); MyPanel mp = new MyPanel(); w.add(mp); w.addKeyListener(mp); mp.addKeyListener(mp); Thread t = new Thread(mp); t.start(); w.setVisible(true); } } class MyPanel extends JPanel implements Runnable, KeyListener ,MouseListener{ private static final long serialVersionUID = 1L; int x[] = new int[10]; int y[] = new int[10]; char c[] = new char[10]; int sum = 1000; public MyPanel() { for (int i = 0; i < 10; i++) { x[i] = (int) (Math.random() * 260); y[i] = (int) (Math.random() * 300); c[i] = (char) (Math.random() * 26 + 97); } } public void paint(Graphics g) { g.clearRect(0, 0, 300, 400); g.setColor(Color.BLACK); for (int i = 0; i < 10; i++) { g.drawString("" + c[i], x[i], y[i]); } g.setColor(Color.GREEN); g.drawString("score: " + sum, 20, 10); if (sum < 0) { g.clearRect(0, 0, 300, 400); g.drawString("GAME OVER", 100, 200); } } public void run() { while (true) { for (int i = 0; i < 10; i++) { y[i]++; if (y[i] > 400) { y[i] = 0; x[i] = (int) (Math.random() * 260); c[i] = (char) (Math.random() * 27 + 97); sum -= 100; } } if (sum < 0) return; try { Thread.sleep(40); } catch (InterruptedException e) { e.printStackTrace(); } repaint(); } } @Override public void keyPressed(KeyEvent e) { char cc = e.getKeyChar(); int yy = -1; int index = -1; for (int i = 0; i < 10; i++) { if (cc == c[i]) { if (y[i] > yy) { yy = y[i]; index = i; } } } if(index>-1){ y[index]=0; x[index]=(int)(Math.random()*260); c[index]=(char)(Math.random()*26+97); sum+=10; }else{ sum-=100; } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } @Override public void mouseClicked(MouseEvent arg0) { } @Override public void mouseEntered(MouseEvent arg0) { } @Override public void mouseExited(MouseEvent arg0) { } @Override public void mousePressed(MouseEvent arg0) { } @Override public void mouseReleased(MouseEvent arg0) { } }
相关推荐
在指法练习小游戏中,事件监听器将捕捉用户的键盘操作事件,当用户正确或错误地敲击指定的字母按键时,程序会根据事件触发相应的逻辑,更新分数或执行其他游戏动作。Java Swing中事件处理通常通过实现ActionListener...
同时,开发者在测试跨平台兼容性时,也需要32位JRE来确保软件在32位环境下的正常运行。 总结来说,32位的Java Runtime Environment在32位操作系统中起着至关重要的作用,为运行Java应用程序提供必要环境。随着技术...
JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA 练习,小游戏!JAVA 练习,小游戏! JAVA 练习,小游戏!JAVA ...
java图形界面,贪吃蛇游戏练习.zipjava图形界面,贪吃蛇游戏练习.zip java图形界面,贪吃蛇游戏练习.zipjava图形界面,贪吃蛇游戏练习.zip java图形界面,贪吃蛇游戏练习.zipjava图形界面,贪吃蛇游戏练习.zip java图形...
本项目以"JAVA项目坦克大战小游戏练习"为主题,旨在帮助开发者通过实际操作,深入理解和应用JAVA编程语言。 一、JAVA基础应用 该项目首先需要掌握JAVA的基础语法,包括类、对象、继承、多态等面向对象编程概念。...
在本案例中,我们关注的是一个名为“简易指法练习程序”的项目。 1. **键盘指法基础**:指法练习程序的核心是教用户如何正确分配手指在键盘上的位置,以便在不看键盘的情况下快速输入。标准的指法策略是将左手小指...
java面向对象初学者练习小游戏.zipjava面向对象初学者练习小游戏.zip java面向对象初学者练习小游戏.zipjava面向对象初学者练习小游戏.zip java面向对象初学者练习小游戏.zipjava面向对象初学者练习小游戏.zip java...
Java JDK 32位是Java开发环境中不可或缺的部分,主要用于32位操作...总之,Java JDK 32位在进行Java和Android开发时扮演着重要角色,尤其是在处理旧项目或配合其他旧版工具时。确保正确安装和配置,是高效开发的基础。
在Java中,学习如何创建、实例化类和调用方法是基础中的基础。例如,`main`方法是每个Java应用程序的入口点,`System.out.println`用于输出文本到控制台。 2. **界面设计**: Java提供了图形用户界面(GUI)组件,...
在开发过程中,开发者需要考虑多平台兼容性,确保游戏能在不同的操作系统上正常运行。Java的“一次编写,到处运行”特性在这里发挥了重要作用。"Mouse.jar"已经过多平台测试,证明了这一点。 此外,游戏的优化也是...
一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合框架练习 一个扑克游戏,用于Java集合框架练习一个扑克游戏,用于Java集合...
1. **基础语法**:在书中,读者会遇到关于类、对象、封装、继承、多态等基础知识的练习题。解答这部分问题时,你需要理解Java如何创建和使用类,以及如何通过对象进行交互。 2. **异常处理**:Java中的异常处理是...
如果Java应用程序是在64位JVM下运行,即使程序本身是32位的,也必须使用64位的串口驱动。同样,32位JVM需要32位的驱动。 在实际开发中,为了确保兼容性和稳定性,开发者应该测试应用程序在不同的操作系统和硬件配置...
本次项目设计主要是完成《贪吃蛇》游戏的基本操作,需要满足以下几点要求:(1)构建适当的窗口大小,设置键盘监听功能,按下空格键游戏开始,使用方向键来改变蛇的运行轨迹,使蛇可以吃到食物。(2) 使用Random函数来...
在练习题中,可能会涉及对这些概念的理解和应用,例如编写简单的计算器或判断逻辑。 面向对象编程是Java的核心特性,包括类、对象、封装、继承、多态等概念。在练习中,你可能需要设计类和对象,实现类之间的继承...
在描述中提到,“随着毕老师的java基础视频教程的进度写的一些代码”,这暗示了这些源码文件是按照教程的章节顺序编写的,可能包括了每一课的重点示例和练习。通过这些源码,学习者可以加深对Java语言的理解,实践...