
一、求一個簡單又有趣的JAVA小游戲代碼
具體如下:
連連看的小源碼
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame;//主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel;//子面板
JButton diamondsButton[][]= new JButton[6][5];//游戲按鈕數組
JButton exitButton,resetButton,newlyButton;//退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0");//分數標簽
JButton firstButton,secondButton;//
分別記錄兩次62616964757a686964616fe59b9ee7ad9431333335326239被選中的按鈕
int grid[][]= new int[8][7];//儲存游戲按鈕位置
static boolean pressInformation=false;//判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV;//游戲按鈕的位置坐標
int i,j,k,n;//消除方法控制
代碼(code)是程序員用開發工具所支持的語言寫出來的源文件,是一組由字符、符號或信號碼元以離散形式表示信息的明確的規則體系。
對于字符和Unicode數據的位模式的定義,此模式代表特定字母、數字或符號(例如 0x20代表一個空格,而 0x74代表字符“t”)。一些數據類型每個字符使用一個字節;每個字節可以具有 256個不同的位模式中的一個模式。
在計算機中,字符由不同的位模式(ON或 OFF)表示。每個字節有 8位,這 8位可以有 256種不同的 ON和 OFF組合模式。對于使用 1個字節存儲每個字符的程序,通過給每個位模式指派字符可表示最多 256個不同的字符。2個字節有 16位,這 16位可以有 65,536種唯一的 ON和 OFF組合模式。使用 2個字節表示每個字符的程序可表示最多 65,536個字符。
單字節代碼頁是字符定義,這些字符映射到每個字節可能有的 256種位模式中的每一種。代碼頁定義大小寫字符、數字、符號以及!、@、#、%等特殊字符的位模式。每種歐洲語言(如德語和西班牙語)都有各自的單字節代碼頁。
雖然用于表示 A到 Z拉丁字母表字符的位模式在所有的代碼頁中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代碼頁中卻不同。如果在運行不同代碼頁的計算機間交換數據,必須將所有字符數據由發送計算機的代碼頁轉換為接收計算機的代碼頁。如果源數據中的擴展字符在接收計算機的代碼頁中未定義,那么數據將丟失。
如果某個數據庫為來自許多不同國家的客戶端提供服務,則很難為該數據庫選擇這樣一種代碼頁,使其包括所有客戶端計算機所需的全部擴展字符。在代碼頁間不停地轉換需要花費大量的處理時間。
二、幾個Java小游戲代碼
package reduce;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioSystem;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JSlider;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.util.Vector;
public class Frame extends JFrame implements Runnable{
JPanel contentPane;
JPanel jPanel1= new JPanel();
JButton jButton1= new JButton();
JSlider jSlider1= new JSlider();
JLabel jLabel1= new JLabel();
JButton jButton2= new JButton();
JLabel jLabel2= new JLabel();
int count= 1, rapidity= 80;// count當前進行的個數, rapidity游標的位置
int zhengque= 0, cuowu= 0;
int rush[]={ 10,20,30};//游戲每關的個數可以自由添加.列{ 10,20,30,40,50}
int rush_count= 0;//記錄關數
char list[]={'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y',
'Z','1','2','3','4','5','6','7','8','9'};//隨機出現的數字可以自由添加
Vector number= new Vector();
String paiduan="true";
AudioClip Musci_anjian, Music_shibai, Music_chenggong;
public Frame(){
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);
//-----------------聲音文件---------------------
Musci_anjian= Applet.newAudioClip(new File("sounds//anjian.wav")
.toURL());
Music_shibai= Applet.newAudioClip(new File("sounds//shibai.wav")
.toURL());
Music_chenggong= Applet.newAudioClip(new File(
"sounds//chenggong.wav").toURL());
//---------------------------------------
jbInit();
} catch(Exception exception){
exception.printStackTrace();
}
}
/**
* Component initialization.
*
*@throws java.lang.Exception
*/
private void jbInit() throws Exception{
contentPane=(JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(588, 530));
setTitle("Frame Title");
jPanel1.setBorder(BorderFactory.createEtchedBorder());
jPanel1.setBounds(new Rectangle(4, 4, 573, 419));
jPanel1.setLayout(null);
jButton1.setBounds(new Rectangle(277, 442, 89, 31));
jButton1.setText("開始");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
jSlider1.setBounds(new Rectangle(83, 448, 164, 21));
jSlider1.setMaximum(100);
jSlider1.setMinimum(1);
jSlider1.setValue(50);
jLabel1.setText("速度");
jLabel1.setBounds(new Rectangle(35, 451, 39, 18));
jButton2.setBounds(new Rectangle(408, 442, 89, 31));
jButton2.setText("結束");
jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
jLabel2.setText("第一關:100個");
jLabel2.setBounds(new Rectangle(414, 473, 171, 21));
contentPane.add(jPanel1);
contentPane.add(jButton2);
contentPane.add(jButton1);
contentPane.add(jSlider1);
contentPane.add(jLabel1);
contentPane.add(jLabel2);
this.addKeyListener(new MyListener());
jButton1.addKeyListener(new MyListener());
jSlider1.addKeyListener(new MyListener());
jSlider1.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e){
rapidity= jSlider1.getValue();
}
});
}
public void run(){
number.clear();
zhengque= 0;
cuowu= 0;
paiduan="true";
while(count<= rush[rush_count]){
try{
Thread t= new Thread(new Tthread());
t.start();
count+= 1;
Thread.sleep(1000+(int)(Math.random()* 2000));//生產下組停頓時間
//最快1快.最慢2秒
} catch(InterruptedException e){
e.printStackTrace();
}
}
while(true){//等待最后一個字符消失
if(number.size()== 0){
break;
}
}
if(zhengque== 0){//為了以后相除..如果全部正確或者錯誤就會出現錯誤.所以..
zhengque= 1;
}
if(cuowu== 0){
cuowu= 1;
}
if(paiduan.equals("true")){//判斷是否是自然結束
if(zhengque/ cuowu>= 2){
JOptionPane.showMessageDialog(null,"恭喜你過關了");
rush_count+= 1;//自動加1關
if(rush_count< rush.length){
if(rapidity> 10){//當速度大于10的時候在-5提加速度.怕速度太快
rapidity-= 5;//速度自動減10毫秒
jSlider1.setValue(rapidity);//選擇位置
}
Thread t= new Thread(this);
t.start();
} else{
JOptionPane.showMessageDialog(null,"牛B...你通關了..");
rush_count= 0;
count= 0;
}
} else{
JOptionPane.showMessageDialog(null,"請再接再勵");
rush_count= 0;
count= 0;
}
} else{
rush_count= 0;
count= 0;
}
}
public void jButton1_actionPerformed(ActionEvent e){
Thread t= new Thread(this);
t.start();
}
public void jButton2_actionPerformed(ActionEvent e){
count= rush[rush_count]+ 1;
paiduan="flase";
}
class Tthread implements Runnable{
public void run(){
boolean fo= true;
int Y= 0, X= 0;
JLabel show= new JLabel();
show.setFont(new java.awt.Font("宋體", Font.PLAIN, 33));
jPanel1.add(show);
X= 10+(int)(Math.random()* 400);
String parameter= list[(int)(Math.random()* list.length)]+"";
Bean bean= new Bean();
bean.setParameter(parameter);
bean.setShow(show);
number.add(bean);
show.setText(parameter);
while(fo){
//---------------------數字下移--------------------
show.setBounds(new Rectangle(X, Y+= 2, 33, 33));
try{
Thread.sleep(rapidity);
} catch(InterruptedException e){
e.printStackTrace();
}
if(Y>= 419){
fo= false;
for(int i= number.size()- 1; i>= 0; i--){
Bean bn=((Bean) number.get(i));
if(parameter.equalsIgnoreCase(bn.getParameter())){
cuowu+= 1;
jLabel2.setText("正確:"+ zhengque+"個,錯誤:"+ cuowu
+"個");
number.removeElementAt(i);
Music_shibai.play();
break;
}
}
}
}
}
}
class MyListener extends KeyAdapter{
public void keyPressed(KeyEvent e){
String uu= e.getKeyChar()+"";
for(int i= 0; i< number.size(); i++){
Bean bean=((Bean) number.get(i));
if(uu.equalsIgnoreCase(bean.getParameter())){
zhengque+= 1;
number.removeElementAt(i);
bean.getShow().setVisible(false);
jLabel2.setText("正確:"+ zhengque+"個,錯誤:"+ cuowu+"個");
Music_chenggong.play();
break;
}
}
Musci_anjian.play();
}
}
public static void main(String[] args){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception exception){
exception.printStackTrace();
}
Frame frame= new Frame();
Dimension screenSize= Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize= frame.getSize();
if(frameSize.height> screenSize.height){
frameSize.height= screenSize.height;
}
if(frameSize.width> screenSize.width){
frameSize.width= screenSize.width;
}
frame.setLocation((screenSize.width- frameSize.width)/ 2,
(screenSize.height- frameSize.height)/ 2);
frame.setVisible(true);
}
}
class Frame1_jButton2_actionAdapter implements ActionListener{
private Frame adaptee;
Frame1_jButton2_actionAdapter(Frame adaptee){
this.adaptee= adaptee;
}
public void actionPerformed(ActionEvent e){
adaptee.jButton2_actionPerformed(e);
}
}
class Frame1_jButton1_actionAdapter implements ActionListener{
private Frame adaptee;
Frame1_jButton1_actionAdapter(Frame adaptee){
this.adaptee= adaptee;
}
public void actionPerformed(ActionEvent e){
adaptee.jButton1_actionPerformed(e);
}
}
class Bean{
String parameter= null;
JLabel show= null;
public JLabel getShow(){
return show;
}
public void setShow(JLabel show){
this.show= show;
}
public String getParameter(){
return parameter;
}
public void setParameter(String parameter){
this.parameter= parameter;
}
}
我只有一個打字母小游戲
三、諾基亞java單機游戲盤點:你玩過哪些
作為智能手機的前身,諾基亞的java手機曾經風靡全球。雖然在如今的手機市場上已經被淘汰,但是那個年代的諾基亞手機許多人依然難忘。回憶一下,當年諾基亞的java單機游戲,你玩過哪些?
諾基亞java單機游戲第一彈:推箱子
1994年,日本工程師中森明夫發明了推箱子游戲。顧名思義,就是利用豆腐塊和箱子來構成一個迷宮,在規定次數之內將所有的箱子推到指定位置,這種智力小游戲盛行于全球。而在諾基亞手機上,這款小游戲也非常受歡迎。
諾基亞java單機游戲第二彈:貪吃蛇
貪吃蛇作為一款經典游戲,在諾基亞手機上也有著不錯的表現。玩法簡單,就是利用箭頭控制蛇頭吃食物,蛇身隨之變長,不能碰到墻壁或身體,讓人上癮。不過對于善于挑戰操作難度的玩家而言,貪吃蛇的高級難度也是絕對不容小覷的。
諾基亞java單機游戲第三彈:拼圖
拼圖游戲是一種經典的娛樂方式,固有的樂趣和挑戰程度使得它成為全球最受歡迎的單機游戲之一。在諾基亞手機上,拼圖游戲也被廣泛播撒。不同于傳統的紙質版拼圖,手機拼圖要求玩家集中注意力,配合快速操作,還能夠在有限的時間內完成拼圖任務。
諾基亞java單機游戲第四彈:解密游戲
解謎游戲是智力類游戲中常見的類型,對于愛好思考的玩家而言,是一種尋找靈感和挑戰自己的愉悅方式。在諾基亞手機上,也有不少這樣的游戲,比如“神秘島”、“魔力方塊”等等。玩家需要在游戲中尋找線索和道具,通過不同的操作,解開謎題,完成游戲。
諾基亞java單機游戲第五彈:推石頭
推石頭是一款相對較新的智力類單機游戲,邏輯清晰,玩法簡單,需要玩家利用不同角色的特殊功能,推動障礙物,達到一個特定的目標。在諾基亞的java手機上,這款游戲也掀起過一股玩家熱潮。
諾基亞java單機游戲第六彈:水果連連看
水果連連看是一款十分經典的益智游戲,在手機上也有諸多變體。玩家需要自由選擇兩個相同的水果進行匹配,直到將所有的水果都消除,這需要玩家敏捷的眼力和反應能力。在當年的諾基亞手機上,水果連連看也是爆紅游戲之一。
諾基亞java單機游戲第七彈:坦克大戰
坦克大戰作為一款較為經典的游戲,在諾基亞手機上也有不小的市場。玩家需要操縱一輛坦克,擊敗敵軍,奪取旗幟。操作簡單,但是勝負卻要看玩家的策略和技巧。
諾基亞java單機游戲第八彈:綠巨人
綠巨人是一款速度快、挑戰性高的經典游戲,也是許多諾基亞手機用戶的經典回憶之一。作為一款重力小游戲,玩家需要控制主角躲避障礙,收集金幣,一路爬到最高的高度。
諾基亞java單機游戲第九彈:保齡球
保齡球作為一種經典的室內運動,自然成為了java單機游戲的一個不可或缺的一份子。在諾基亞的java手機上,保齡球游戲也經常出現。玩家只需要原地作球,在規定軌跡上試著將球投進十個瓶子中就行??雌饋砗唵危枰婕揖珳实耐肚蚣寄?。
諾基亞java單機游戲第十彈:脫逃游戲
脫逃游戲是比較另類的解謎游戲,玩法是一些趣味和難度比較高的解謎游戲。在智能手機出現之前,它曾是手機單機游戲的另一種風格。脫逃游戲有各種各樣的難度,還有各種背景故事,它可以讓你的心跳加速而且并不簡單。











