简易的打字母游戏

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
public class MyChar extends JFrame{
   public MyChar(){
      MyPanel mp=new MyPanel();
      Thread t=new Thread(mp);
      t.start();
  
      mp.addKeyListener(mp);
      this.addKeyListener(mp);
      this.add(mp);
      this.setSize(300,400);
      this.setLocationRelativeTo(null);
      this.setResizable(false);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
   public static void main(String[] args){
      MyChar mc=new MyChar();
      mc.setVisible(true);
   }
}
class MyPanel extends JPanel implements Runnable,KeyListener{
   private int[] x=new int[10];
   private int[] y=new int[10];
   private char[] c=new char[10];
   private int score=1000;
   public MyPanel(){
      for(int i=0;i<10;i++){
         x[i]=(int)(Math.random()*280);
         y[i]=(int)(Math.random()*200);
         c[i]=(char)(Math.random()*26+97);
      }
   }
   public void paint(Graphics g){
      super.paint(g);
      g.setFont(new Font("黑体",Font.BOLD,20));
      for(int i=0;i<10;i++){
         g.drawString(new Character(c[i]).toString(),x[i],y[i]);
      }
      g.setColor(Color.red);
      g.drawString("你的成绩为:"+score, 5, 20);
   }
   public void keyPressed(KeyEvent e){
      int nowY=-1;
      int nowIndex=-1;
      char ch=e.getKeyChar();
      for(int i=0;i<10;i++){
         if(ch==c[i]){
            if(y[i]>nowY){
               nowY=y[i];
               nowIndex=i;
             }
         }
      }
      if(nowIndex!=-1){
         x[nowIndex]=(int)(Math.random()*280);
         y[nowIndex]=0;
         c[nowIndex]=(char)(Math.random()*26+97);
         score+=10;
      }else{
         score-=100;
      }
   }
   public void keyReleased(KeyEvent e){
  
   }
   public void keyTyped(KeyEvent e){
  
   }
   public void run(){
      while(true){
         for(int i=0;i<10;i++){
            y[i]++;
            if(y[i]>400){
               x[i]=(int)(Math.random()*280);
               y[i]=0;
               c[i]=(char)(Math.random()*26+97);
               score-=100;
            }
           if(score<0){
               score=0;
            }
         }   
         try{
            Thread.sleep(50);
         }catch(Exception e){
    
         }
         this.repaint();
      }
   }
}

时间: 2024-10-11 17:50:25

简易的打字母游戏的相关文章

从零开始学C语言,200行代码完成一个打字母游戏!

很多刚开始学习编程的同学都希望自己可以去开发一些游戏,当学习了c语言的时候却发现总是用c语言去解决一些数学问题,今天我就分享给大家一个我学习c语言时候学到的一些好玩的东西,希望可以帮助大家保持对编程的兴趣. 创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之以恒C++爱好群,如果你想要学好C++最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习

字母游戏

[问题描写叙述] peter喜欢玩字母游戏,于是他编写了一个有趣的游戏.游戏规则是在一个 (N-1) * N的表格里填写字母.规则:对于每一个输入的N,由 (N-1) * N的字母区域的左上角開始,从字母A開始逆时针填充一个字母区域,乘积若超过26继续由新一组的A.B.C??填充,不要求输出边框. [输入] 多组測试数据(数据量在100组以内). 每组測试数据仅仅有一行为一个整数N(1<=N<=30).表示表格的宽度. [输出] 对于每组输入数据.输出N-1行,为填完的表格(N-1行,每行N个

猜字母游戏

猜字母游戏 猜字母游戏——设计数据结构 猜字母游戏——设计程序结构 猜字母游戏——实现字母生成方法 猜字母游戏——实现字母检测方法 猜字母游戏——实现主方法 1 猜字母游戏——设计数据结构 1.1 问题 有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出:如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提

html5 canvas简易版捕鱼达人游戏源码

插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触发的. 找htm5,html5教程,html开发的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的,请联系涂志海,再解决,嘿嘿) 下 载 演示地址 下载说明: 1.解压密码:tuzhihai.com 2.只有部分模板会提供多页面下载,未加说明都是只有一个首页index.html模板. 3.如果

JSP简单练习-猜字母游戏

<!-- guessCharExample.jsp --> <%@ page contentType="text/html; charset=gb2312" %> <html> <head> <title>猜字母游戏</title> </head> <body> 下面,我们一起来玩一个游戏:猜字母游戏<br> 游戏规则:电脑会随机自动生成一个字母,请你猜出这个字母是什么.字母忽略

字母游戏(搜索)

问题 S: [搜索]字母游戏 时间限制: 10 Sec  内存限制: 64 MB提交: 28  解决: 17[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 一种单人玩的游戏,规则为: 在一个R行C列的方格上,每个方格中有一个A-Z的字母.游戏从左上角(第一行,第一列)位置开始,一步一步地向相邻(上.下.左.右)方格移动.唯一的限制是路径上的方格中的字母,每种字母只能出现1次. 游戏的目标是走尽可能长的路径.请你写程序算出指定棋盘上,可能走的最长步数. 输入 第1行两个整数R和C(

Java实现猜字母游戏

package day06; import java.util.Scanner; public class HomeWork { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = "GuessingGame"; System.out.println(string+"欢迎尝试猜字谜游戏!满分500分,最低分为0分!");

华为机试题【13】-wave数组找字母游戏

题目描述: Word Maze 是一个网络小游戏,你需要找到以字母标注的食物,但要求以给定单词字母的顺序吃掉.如上图,假设给定单词if,你必须先吃掉i然后才能吃掉f. 但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物. ,指定W为"SOLO",则在地图中红色标注了单词"SOLO". 注意区分英文字母大小写,你只能上下左右行走. 运行时间限制: 无限制 内存限制: 无限制 输

Java图形界面实战案例——实现打字母游戏

实现打字母的游戏 这次这个案例可以说是头几次所讲的内容的一个技术汇总,主要是 运用了几大块的知识.我们先来定义一下案例的背景:在一个300*400的窗体上,有10个随机产生的字母下落,在键盘上敲击字母,若是敲对了就消掉,初始化的成绩为1000分,每次敲对一个字母就加上10分,如果在字母落到了屏幕的下方还没有敲对的话则判定为失败,就扣除100分. 我们还是老样子,先来进行步骤的划分 1.做满天星 2.把星星改成随机的10个字母 3.让字母落下,如果字母落出了屏幕就生成新的字母,并从屏幕的上方重新出