博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打字母的游戏
阅读量:4289 次
发布时间:2019-05-27

本文共 2033 字,大约阅读时间需要 6 分钟。

问题:

在一个300*400的窗体上,有10个随机产生的字母向下落,在键盘上敲字母,如果对了就消掉,初始成绩为1000分,每敲对一个字母加10分,如果字母落到屏幕下方或者敲错扣100分。

我们先来进行步骤划分吧。第一步,做满天星星;第二步,将星星改成10个随机字母;第三步,让字母下落,如果落出屏幕就产生新的字母,并从屏幕上方重新出现;第四步,接收键盘输入并消除匹配的字母;第五步,积分程序。

 

import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Panel;import java.awt.event.KeyEvent;public class MyTest{   public static void main(String args[]){	   Frame w=new Frame();	   w.setSize(300,400);	   MyPanel mp=new MyPanel();	   w.add(mp);	  	   Thread t=new Thread(mp);	   t.start();	   w.setVisible(true);      }}class MyPanel extends Panel implements Runnable{	      int x[]=new int[10];      int y[]=new int[10];      char c[]=new char[10];      int score=1000;      MyPanel(){    	  for(int i=0;i<10;i++){    		  x[i]=(int)(Math.random()*300);    		  y[i]=(int)(Math.random()*400);    		  c[i]=(char)(Math.random()*26+97);	      	  }      }      public void paint(Graphics g){    	  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,15);    		      	  }      }            public void run(){    	  while(true){    		try{    			for(int i=0;i<10;i++){    				y[i]++;    				 if(y[i]>400){        				 y[i]=0;        				 x[i]=(int)(Math.random()*300);        				 c[i]=(char)(Math.random()*26+97);        				 score-=100;        			 }    			}    			Thread.sleep(100);    		}catch(Exception e){}    		repaint();    	  }	  		  	         }      public void keyPressed(KeyEvent arg0){    	  //将用户输入的字符存入keyC中    	  char keyC=arg0.getKeyChar();    	  boolean mark=false;    	  //扫描整个数组,看有没有匹配的字符    	  for(int i=0;i<10;i++){    		  if(keyC==c[i]){    			  //找到了    			  y[i]=0;    			  x[i]=(int)(Math.random()*300);    			  c[i]=(char)(Math.random()*26+97);    			  mark=true;    			      			  break;//防止屏幕上同时有多个相同字符被一次性消掉      		  }    		 if(mark){    			 score+=100;    		      		      		  }else{    			  score-=100;    		  }    	  }    			     	      	        }                  }

 

转载地址:http://epqgi.baihongyu.com/

你可能感兴趣的文章
如何将util.Date转化为sql.Date
查看>>
Java笔试题及答案
查看>>
这是一个挺有意思的Java讨论话题
查看>>
没错!java中private字段也是可以访问D!
查看>>
安卓:文本框TextView/EditText的开源库清单
查看>>
Android中Xposed框架篇---利用Xposed框架实现拦截系统方法
查看>>
腾讯老司机的RecyclerView局部刷新爬坑之路
查看>>
JavaScript null 和 undefined
查看>>
JavaScript 里的splice()与slice()
查看>>
Javascript替代eval方法
查看>>
Android开发UI布局必备基础知识
查看>>
程序员面试以及工作中真实问题汇编!
查看>>
浅谈java中的数学运算
查看>>
用大白话聊聊JavaSE
查看>>
Android 手把手带你玩转自定义相机
查看>>
仿墨迹天气的折线图控件,效果杠杠滴
查看>>
移动端防止被抓包
查看>>
Android异步批量压缩图片
查看>>
仿主流APP功能实现
查看>>
Java读取文件夹大小的6种方法及代码
查看>>