欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年10月26日 15:25:10   作者:xxxxxxxdl  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)打字游戲小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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

1.創(chuàng)建一個窗體
2.在窗體上放置一個面板,用paint方法畫出英文字母,隨機(jī)放置字母位置,并隨時間自動下落
3.設(shè)置得分扣分機(jī)制
4.在面板上添加鍵盤監(jiān)聽器,輸入正確得分,輸入錯誤則扣分
ps:面板和監(jiān)聽器用一個類實(shí)現(xià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中的面板類?;旧弦僮鞔绑w都會繼承此類 * */
public class MyPanel extends Panel implements KeyListener{ 
 int x[] = new int[10];//儲存隨機(jī)字母x軸 
 int y[] = new int[10];//儲存隨機(jī)字母y軸 
 char c[] = new char[10];//儲存隨機(jī)字母 
 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);//隨機(jī)字母 
 p[i]=getRandColorCode();//獲取十六進(jìn)制的顏色代碼.例如 "#6E36B4" 
 } 
 } /** * 復(fù)寫Panel類的paint方法 */ 

 public void paint(Graphics g) { 
 if (integral>0) {//如果成績>0,才能進(jìn)來 
 for (int i = 0; i < 10; i++) {//十個英文字母 
 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("你的成績是:"+integral, 10, 30);   
 donghua();  
 }else {//成績<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++) {//對十個字母一直檢測,如果沒有超過面板就縱坐標(biāo)+1,若超過了從頂部就重新生成字母 
 y[i]++;//字母的y軸 加1,既往下移動1個位置 
 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)聽器 

 public void keyPressed(KeyEvent e) { 
 char keyC = e.getKeyChar(); 
 int stat=-1;//存儲最下面字母的值 
 int nowIndex=-1;//存儲最下面字母的下標(biāo) 
 for (int i = 0; i < 10; i++) {//找出所有匹配字母處于最下面的字母 
 if (keyC==c[i]) { 
 if (y[i]>stat) {//第一次進(jìn)來時,必定大于,  
 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,證明輸錯了。積分-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.一個窗體 
2.在窗體繪制元素(隨機(jī)出現(xiàn)的字母) 
3.加入鍵盤事件 
4.加入計(jì)數(shù)器(分?jǐn)?shù))  
5.匹配鍵盤錄入字母和屏幕上的字母 
一致:消除,并且從最上面重新生成.積分+ 
不一致:不消除,積分- 
沒錄入:不消除,積分- 
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);//注冊鍵盤事件 
p.addKeyListener(p);//注冊鍵盤事件 
f.setVisible(true);//顯示窗體  
}

三、運(yùn)行截圖

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

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

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

python俄羅斯方塊游戲集合

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • PowerJob的UserService工作流程源碼解讀

    PowerJob的UserService工作流程源碼解讀

    這篇文章主要介紹了PowerJob的UserService工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 如何使用JavaMail發(fā)送郵件

    如何使用JavaMail發(fā)送郵件

    這篇文章主要教大家如何使用JavaMail發(fā)送郵件在web應(yīng)用中,實(shí)現(xiàn)用戶注冊成功之后,將用戶的注冊信息以Email的形式發(fā)送到用戶的注冊郵箱當(dāng)中,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Java實(shí)現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的方法

    Java實(shí)現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,每一個鏈表都包含多個節(jié)點(diǎn),節(jié)點(diǎn)又包含兩個部分,一個是數(shù)據(jù)域(儲存節(jié)點(diǎn)含有的信息),一個是引用域(儲存下一個節(jié)點(diǎn)或者上一個節(jié)點(diǎn)的地址),需要的朋友可以參考下
    2022-01-01
  • Java數(shù)據(jù)結(jié)構(gòu)之線段樹中的懶操作詳解

    Java數(shù)據(jù)結(jié)構(gòu)之線段樹中的懶操作詳解

    對于線段樹,若要求對區(qū)間中的所有點(diǎn)都進(jìn)行更新,可以引入懶操作。懶操作包括區(qū)間更新和區(qū)間查詢操作。本文將通過一個示例和大家詳細(xì)聊聊線段樹中的懶操作,需要的可以參考一下
    2022-10-10
  • 詳解Java中的四種引用類型(強(qiáng)軟弱虛)

    詳解Java中的四種引用類型(強(qiáng)軟弱虛)

    Java中的引用類型主要分為四種,分別是強(qiáng)引用、軟引用、弱引用和虛引用,這篇文章主要為大家詳細(xì)介紹了四者的使用與區(qū)別,需要的小伙伴可以參考下
    2023-10-10
  • Spring Boot日志收集及鏈路追蹤實(shí)現(xiàn)示例

    Spring Boot日志收集及鏈路追蹤實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Spring Boot日志收集及鏈路追蹤實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java實(shí)現(xiàn)簡易生產(chǎn)者消費(fèi)者模型過程解析

    Java實(shí)現(xiàn)簡易生產(chǎn)者消費(fèi)者模型過程解析

    這篇文章主要介紹了Java實(shí)現(xiàn)簡易生產(chǎn)者消費(fèi)者模型過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 教你怎么用IDEA快速生成注釋文檔

    教你怎么用IDEA快速生成注釋文檔

    這篇文章主要介紹了教你怎么用IDEA快速生成注釋文檔,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)IDEA操作的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • 用SpringMVC編寫一個HelloWorld的詳細(xì)過程

    用SpringMVC編寫一個HelloWorld的詳細(xì)過程

    SpringMVC是Spring的一個后續(xù)產(chǎn)品,是Spring的一個子項(xiàng)目<BR>SpringMVC?是?Spring?為表述層開發(fā)提供的一整套完備的解決方案,本文我們將用SpringMVC編寫一個HelloWorld,文中有詳細(xì)的編寫過程,需要的朋友可以參考下
    2023-08-08
  • SpringBoot接口如何統(tǒng)一異常處理

    SpringBoot接口如何統(tǒng)一異常處理

    這篇文章主要介紹了SpringBoot接口如何統(tǒng)一異常處理,SpringBoot接口如何對異常進(jìn)行統(tǒng)一封裝,并統(tǒng)一返回呢?以下文的參數(shù)校驗(yàn)為例,如何優(yōu)雅的將參數(shù)校驗(yàn)的錯誤信息統(tǒng)一處理并封裝返回呢,感興趣的下下伙伴可以一同參考一下
    2022-07-07

最新評論