色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java實(shí)現(xiàn)打字游戲小程序

瀏覽:79日期:2022-08-22 08:23:27

本文實(shí)例為大家分享了java實(shí)現(xiàn)打字游戲小程序的具體代碼,供大家參考,具體內(nèi)容如下

一、設(shè)計(jì)思路

1.創(chuàng)建一個(gè)窗體2.在窗體上放置一個(gè)面板,用paint方法畫出英文字母,隨機(jī)放置字母位置,并隨時(shí)間自動(dòng)下落3.設(shè)置得分扣分機(jī)制4.在面板上添加鍵盤監(jiān)聽(tīng)器,輸入正確得分,輸入錯(cuò)誤則扣分ps:面板和監(jiān)聽(tīng)器用一個(gè)類實(shí)現(xiàn)(這樣簡(jiǎn)單方便)

二、具體實(shí)現(xiàn)

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中的面板類。基本上要操作窗體都會(huì)繼承此類 * */public class MyPanel extends Panel implements KeyListener{ int x[] = new int[10];//儲(chǔ)存隨機(jī)字母x軸 int y[] = new int[10];//儲(chǔ)存隨機(jī)字母y軸 char c[] = new char[10];//儲(chǔ)存隨機(jī)字母 int integral =1000;//初始1000積分 Color p[] =new Color[10];//用來(lái)存儲(chǔ)顏色 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);//隨機(jī)字母 p[i]=getRandColorCode();//獲取十六進(jìn)制的顏色代碼.例如 '#6E36B4' } } /** * 復(fù)寫Panel類的paint方法 */ public void paint(Graphics g) { if (integral>0) {//如果成績(jī)>0,才能進(jìn)來(lái) for (int i = 0; i < 10; i++) {//十個(gè)英文字母 g.setColor(p[i]);//設(shè)置元素顏色 g.setFont(new Font('TimesRoman', Font.PLAIN, 20)); //設(shè)置字體,大小 //1.出現(xiàn)的元素,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('你的成績(jī)是:'+integral, 10, 30); donghua(); }else {//成績(jī)<0,游戲結(jié)束 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++) {//對(duì)十個(gè)字母一直檢測(cè),如果沒(méi)有超過(guò)面板就縱坐標(biāo)+1,若超過(guò)了從頂部就重新生成字母 y[i]++;//字母的y軸 加1,既往下移動(dòng)1個(gè)位置 if (y[i]>370) {//窗體邊框占有一部分像素,所以設(shè)置370即可 y[i]=0;//設(shè)置該字母的縱坐標(biāo)為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();//重新繪制畫面 } } //鍵盤監(jiān)聽(tīng)器 public void keyPressed(KeyEvent e) { char keyC = e.getKeyChar(); int stat=-1;//存儲(chǔ)最下面字母的值 int nowIndex=-1;//存儲(chǔ)最下面字母的下標(biāo) for (int i = 0; i < 10; i++) {//找出所有匹配字母處于最下面的字母 if (keyC==c[i]) { if (y[i]>stat) {//第一次進(jìn)來(lái)時(shí),必定大于, stat=y[i];//記錄坐標(biāo)值 nowIndex=i;//記錄字母的下標(biāo) } } } if (nowIndex!=-1) {//如果!=-1,證明輸入正確,nowIndex為最下面的字母的下標(biāo),重新生成。積分+100 y[nowIndex]=0; x[nowIndex]=(int)(Math.random()*300); c[nowIndex]=(char)(Math.random()*26+97); integral+=100;//積分+100 }else {//如果==-1,證明輸錯(cuò)了。積分-100 integral-=100;//積分-100 } } /** * 獲取十六進(jìn)制的顏色代碼.例如 '#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.一個(gè)窗體 2.在窗體繪制元素(隨機(jī)出現(xiàn)的字母) 3.加入鍵盤事件 4.加入計(jì)數(shù)器(分?jǐn)?shù)) 5.匹配鍵盤錄入字母和屏幕上的字母 一致:消除,并且從最上面重新生成.積分+ 不一致:不消除,積分- 沒(méi)錄入:不消除,積分- 6.積分<0,游戲結(jié)束 */ public static void main(String[] args) { JFrame f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置點(diǎn)擊x關(guān)閉退出程序 f.setLocationRelativeTo(null);//窗體置中 f.setSize(300, 400);//設(shè)置窗體大小 MyPanel p = new MyPanel(); f.add(p);//將面板放入窗體中 f.addKeyListener(p);//注冊(cè)鍵盤事件 p.addKeyListener(p);//注冊(cè)鍵盤事件 f.setVisible(true);//顯示窗體 }

三、運(yùn)行截圖

java實(shí)現(xiàn)打字游戲小程序

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

javascript經(jīng)典小游戲匯總

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲香蕉一区二区三区在线观看 | 一区二区三区在线观看免费 | 久草网在线观看 | 一级做性色a爱片久久片 | 一级毛片视频在线 | 伊人久久综合热青草 | 久久精品国产欧美日韩亚洲 | 怡红院视频在线 | 九九九九在线精品免费视频 | 8050网午夜一级毛片免费不卡 | 亚洲中文字幕特级毛片 | 杨幂精品国产专区91在线 | 加勒比在线视频 | 日韩一中文字幕 | 九九精品视频在线观看九九 | 三级黄色在线播放 | 欧美一级免费看 | 欧美三级毛片 | 国产一区精品在线观看 | 国产日韩美国成人 | 一区二区精品在线 | 香蕉视频一级片 | 成人综合在线视频 | 国产成人亚洲精品91专区高清 | 欧美丝袜xxxxx在线播放 | 特级av毛片免费观看 | 欧美日韩在线观看视频 | 免费成年人在线观看视频 | 成年男女免费视频 | 全球成人网 | 日本欧美一区二区三区不卡视频 | 国产午夜久久影院 | 日韩在线中文 | 久久爽久久爽久久免费观看 | 一级成人a毛片免费播放 | 亚洲一级视频在线观看 | 亚洲精品视频在线观看视频 | 国产一级做a爰片久久毛片男 | 亚洲欧美日本视频 | 亚洲男人的天堂在线观看 | 国产高清片 |