java實現的打字遊戲下載,打字小遊戲java

本文目錄一覽:

程序設計:簡單字母打字遊戲(JAVA編寫)

/*

遊戲開始,從天上掉下10個有標號(字母)的炸彈,

下面有10顆子彈(就是可以按10個字母).

如果所按字母包含在炸彈中,就找到相應的炸彈並

消滅它,消滅後返回繼續利用.如果沒有就一直飛到天上最後才返回.

*/

import java.net.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

import javax.swing.*;

public class paodan extends Applet implements Runnable,KeyListener

{

private Image bgImage;

private Graphics bg;

static Thread myThread;

static AudioClip ac1,ac2;

static JFrame md;

String Zi26=””;

String pd[]={“a”,”a”,”a”,”a”,”a”,”a”,”a”,”a”,”a”,”a”}; //用來存儲10個字母做落下的炮彈

String fj[]={“”,””,””,””,””,””,””,””,””,””}; //用來存儲10個字母做反擊的防空

int x[]=new int[10];

int y[]=new int[10];

//炸彈的坐標

int x1[]=new int[10];

int x2[]=new int[10];

int y1[]=new int[10];

//火箭的坐標

int life=100; //生命

Toolkit KIT=this.getToolkit();

Image paodan=KIT.createImage(“paodan.jpg”);

Image huojian=KIT.createImage(“huojian.jpg”);

public paodan() //用來生成一個包含26個英文字母的字符串Zi26

{for (int i=0;i26;i++)

Zi26+=(char)((int)’A’+i);

}

public void cushi() //初始各種數據,如炮彈與火箭的坐標.

{

try

{URL u1=this.getClass().getResource(“huishou.wav”);

URL u2=this.getClass().getResource(“lanjie.wav”);

ac1=Applet.newAudioClip(u1);

ac2=Applet.newAudioClip(u2);

}catch(Exception e){}

for (int i=0;i10;i++)

{pd[i]=noRepeat();

x[i]=noHit(i,10);

if (i=5)

y[i]=5+(int)(Math.random()*50);

else

y[i]=60+(int)(Math.random()*50);

x1[i]=220+i*32+1; y1[i]=550;

x2[i]=x1[i];

}

}

public void panduan() //用來判斷pd[i]的y值是否要到達屏幕下邊,如果是就把Y值變為5,並把所有Y值加3.

{ for(int i=0;i10;i++)

{ if (y[i]=500)

{life–;ac1.play();y[i]=5;}

y[i]+=3;

if (life==0) System.exit(0);

}

y[9]+=3;

md.setTitle(“打字訓練室 你的生命為”+life+” 提示:白色的字母表示未按,粉紅色的表示已按.”);

}

public void fk() //防空程序,用來擊毀落下的炸彈

{ int i=0,j=0;

for (i=0;i10;i++)

{ if (!fj[i].equals(“”))

{

for (j=0;j10;j++)

if (fj[i].equals(pd[j]))

{ if (!(x1[i]=x[j] x1[i]=x[j]+32 || x1[i]+32=x[j] x1[i]+32=x[j]+32))

if (x1[i]x[j])

x1[i]-=4;

else x1[i]+=4;

if (!(y1[i]=y[j] y1[i]=y[j]+32 || y1[i]+32=y[j] y1[i]+32=y[j]+32))

if (y1[i]y[j])

y1[i]-=3;

else y1[i]+=4;

if (y[j]=380 Math.abs(x[j]-x1[i])5)

if (x[j]x1[i]) x1[i]+=5;

else if (x[j]x1[i]) x1[i]-=5;

if (y[j]=380 Math.abs(y[j]-y1[i])5)

if (y[j]y1[i]) y1[i]+=5;

else if (y[j]y1[i]) y1[i]-=5;

if ((x1[i]=x[j] x1[i]=x[j]+32 || x1[i]+32=x[j] x1[i]+32=x[j]+32) (y1[i]=y[j] y1[i]=y[j]+32 || y1[i]+32=y[j] y1[i]+32=y[j]+32))

{life++;ac2.play();pd[j]=noRepeat(); x[j]=noHit(i,10); y[j]=5; x1[i]=x2[i];y1[i]=550;fj[i]=””;}

break;

}

if (j==10) y1[i]-=3;

if (y1[i]=5) {y1[i]=550; fj[i]=””;}

}

}

}

public void paint(Graphics g)

//根據相應的坐標在屏幕上畫炸彈和吃炸彈的娃娃,並保證白色的字母表示未按,粉紅色的表示已按

{int i=0,j=0;

g.setFont(new Font(“Vrinda”,1,21));

for(;ipd.length;i++)

{ for (j=0;jfj.length;j++)

if (pd[i].equals(fj[j]))

{g.setColor(new Color(255,93,55));

g.drawImage(paodan,x[i],y[i],this);

g.drawString(pd[i],x[i]+11,y[i]+20);

break;

}

if (j==fj.length)

{g.setColor(new Color(255,255,255));

g.drawImage(paodan,x[i],y[i],this);

g.drawString(pd[i],x[i]+11,y[i]+20);

}

g.setColor(new Color(255,93,55));

g.drawImage(huojian,x1[i],y1[i],this);

g.drawString(fj[i],x1[i]+10,y1[i]+22);

}

}

//沒有按的顯紅色,按了的顯白色

public void keyPressed(KeyEvent k) //當用戶按的是字母時,就生成一個防空字母.

{char z=k.getKeyChar();

int i=0,j=0;

if ((z=’A’ z=’Z’) || (z=’a’ z=’z’))

{ if (z-32=65) z-=32;

String zc=””+z;

for(;ifj.length;i++)

{ if (zc.equals(fj[i])) break;

} //保證字母不重複

if (i==fj.length)

for(i=0;ifj.length;i++)

if (fj[i].equals(“”)) {fj[i]=zc;break;}

}

}

public void keyReleased(KeyEvent k){}

public void keyTyped(KeyEvent k){}

public String noRepeat() //生成一個不重複的字母.

{int zc,i;

String xinx;

while(true)

{zc=(int)(Math.random()*26);

xinx=Zi26.substring(zc,zc+1);

for(i=0;i10;i++)

if (pd[i].equals(xinx)) break;

if(i==10) return xinx;

}

}

int noHit(int i,int langth) //讓字母保持車距.

{int tmpX,j,k,width=32;

while (true)

{ tmpX=(int)(Math.random()*768)+1;

for(j=0;j10;j++)

{ if (tmpX+widthx[j] || tmpXx[j]+width) continue; //如果欲生成的位置不與當前J所佔的位置相交就判斷下一個J.

if ((tmpX=x[j] tmpX=x[j]+width) || (tmpX+width=x[j] tmpX+width=x[j]+width)) break;

//如果欲生成的位置與當前x[j]所佔據的範圍相交就結束循環,重新生成一個起始位置.

}

if (j==10) {return tmpX;}

}

}

public void update(Graphics g)

{if (bgImage==null)

{bgImage=createImage(this.getSize().width,this.getSize().height);

bg=bgImage.getGraphics();

}

bg.setColor(getBackground());

bg.fillRect(0,0,this.getSize().width,this.getSize().height);

//bg.setColor(getForeground());

paint(bg);

g.drawImage(bgImage,0,0,this);

}

public void run() //用線程循環更改Y值,並根據新的坐標在屏幕上重畫pd[I];

{

while(true)

{fk();

panduan();

repaint();

try{ myThread.sleep(50); }catch(Exception e) {}

}

}

public static void main(String args[])

{paodan m=new paodan();

md=new JFrame(“打字訓練室”);

md.setSize(800,600);

md.addKeyListener(m);

md.getContentPane().add(m);

m.cushi();

md.setVisible(true);

md.setResizable(false);

myThread=new Thread(m);

myThread.start();

}

}

註:源代碼取自編程中國

本人一點建議:其實你這樣學Java是沒用的,你應該知道你做的項目思想,先做什麼後做什麼,然後在親自動手去敲代碼!一點建議!

怎麼下載JAVA遊戲,在哪個網站?

下載的步驟是:

1,電腦或者手機輸入網址,進入當樂網

2,選擇自己的手機品牌和型號點擊搜索。

3,先把適合自己的遊戲下載到電腦桌面

4,用數據線、讀卡器、藍牙或者紅外線等方式把遊戲上傳到手機中就可以運行遊戲了(JAR格式的遊戲文件不用解壓,直接複製粘貼到手機文件夾就可以了)。

用JAVA編寫打字遊戲

//頭文件stdio.h,conio.h,time.hintmain(){//首先打印信息getch();chara,b;intt,s;s=time();//獲取系統時間,以秒為單位,存入s中for(;;){t=time();if(t-s=60)break;//假設規定時間是60秒a=(char)rand();//隨機生成數字(返回int型,需要強制轉換)/*rand每次生成的隨機數相同,需要用系統時間初始化隨機數生成器,相關內容可以到百度查*/for(a’z’)a=(char)rand();//如果不是小寫字母,重新生成printf(“%c”,a);b=getch();if(a==b);//正確elseprintf(“\b_”);//\b代表backspace,錯誤時打印_}getch();//結束}//當然,如有興趣,可以定義兩個int型變量,分別記錄總字數和敲對的字數

java打字遊戲思路

把在屏幕上出現的字母放進一個Map里

Key和Value都是那個字母

敲鍵盤時得到那個鍵

然後到map里去get

非null就是敲對了

至於移動出現那是多線程里的常見功能了,應該沒什麼難的

誰能寫一個java打字遊戲 超級簡單的源碼

編好了,你自己運行下:

import java.util.Random;

import java.util.Scanner;

public class Test

{

public static Random r = new Random();

public static void printMenu()

{

System.out.println(“(1) play another round”);

System.out.println(“(2) exit the game”);

System.out.print(“Selection:”);

}

public static void main(String[] args) throws Exception

{

String content = null;

Scanner scan = new Scanner(System.in);

while(true)

{

printMenu();

content = scan.nextLine();

System.out.println();

//輸入內容是2,則退出程序

if(content.equals(“2”)) break;

if(content.equals(“1”))

{

System.out.print(“Text to Match: “);

int count = r.nextInt(50) + 1;

char[] letters = new char[count];

for(int i=0;icount;i++)

{

letters[i] = (char)(r.nextInt(26) + 97);

System.out.print(letters[i]);

}

System.out.print(“\n “);

long startTime = System.currentTimeMillis();

int correctCount = 0;

content = scan.nextLine();

for(int i=0;icount;i++)

{

if(content.charAt(i) == letters[i])

correctCount++;

}

long endTime = System.currentTimeMillis();

int time = (int)((endTime – startTime) / 1000);

if(correctCount == 0)

System.out.println(“INCORRECTLY TYPED, YOU GET A SPEED OF 0!”);

else

{

System.out.println(“共花了” + time + “秒,正確率為:” + ((int)(((double)correctCount/count))*100) + “%”);

}

}

System.out.println();

}

}

}

原創文章,作者:AVBV,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142193.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AVBV的頭像AVBV
上一篇 2024-10-10 09:25
下一篇 2024-10-10 09:25

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論