java吃豆人代碼 js吃豆人
求個(gè)簡(jiǎn)單點(diǎn)的Java程序 100行左右。 需要解釋。
貪吃蛇游戲 望采納
import java.awt.Button;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.*;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Snake extends JFrame implements KeyListener{
int Count=0;
Button[][] grid = new Button[20][20];
ArrayListPoint snake_list=new ArrayListPoint();
Point bean=new Point(-1,-1);//保存隨機(jī)豆子【坐標(biāo)】
int Direction = 1; //方向標(biāo)志 1:上 2:下 3:左 4:右
//構(gòu)造方法
public Snake()
{
//窗體初始化
this.setBounds(400,300,390,395);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout f=new GridLayout(20,20);
this.getContentPane().setBackground(Color.gray);
this.setLayout(f);
//初始化20*20個(gè)按鈕
for(int i=0;i20;i++)
for(int j=0;j20;j++)
{
grid[i][j]=new Button();
this.add(grid[i][j]);
grid[i][j].setVisible(false);
grid[i][j].addKeyListener(this);
grid[i][j].setBackground(Color.blue);
}
//蛇體初始化
grid[10][10].setVisible(true);
grid[11][10].setVisible(true);
grid[12][10].setVisible(true);
grid[13][10].setVisible(true);
grid[14][10].setVisible(true);
//在動(dòng)態(tài)數(shù)組中保存蛇體按鈕坐標(biāo)【行列】信息
snake_list.add(new Point(10,10));
snake_list.add(new Point(11,10));
snake_list.add(new Point(12,10));
snake_list.add(new Point(13,10));
snake_list.add(new Point(14,10));
this.rand_bean();
this.setTitle("總分:0");
this.setVisible(true);
}
//該方法隨機(jī)一個(gè)豆子,且不在蛇體上,并使豆子可見
public void rand_bean(){
Random rd=new Random();
do{
bean.x=rd.nextInt(20);//行
bean.y=rd.nextInt(20);//列
}while(snake_list.contains(bean));
grid[bean.x][bean.y].setVisible(true);
grid[bean.x][bean.y].setBackground(Color.red);
}
//判斷擬增蛇頭是否與自身有碰撞
public boolean is_cross(Point p){
boolean Flag=false;
for(int i=0;isnake_list.size();i++){
if(p.equals(snake_list.get(i) )){
Flag=true;break;
}
}
return Flag;
}
//判斷蛇即將前進(jìn)位置是否有豆子,有返回true,無(wú)返回false
public boolean isHaveBean(){
boolean Flag=false;
int x=snake_list.get(0).x;
int y=snake_list.get(0).y;
Point p=null;
if(Direction==1)p=new Point(x-1,y);
if(Direction==2)p=new Point(x+1,y);
if(Direction==3)p=new Point(x,y-1);
if(Direction==4)p=new Point(x,y+1);
if(bean.equals(p))Flag=true;
return Flag;
}
//前進(jìn)一格
public void snake_move(){
if(isHaveBean()==true){//////////////有豆子吃
Point p=new Point(bean.x,bean.y);//【很重要,保證吃掉的是豆子的復(fù)制對(duì)象】
snake_list.add(0,p); //吃豆子
grid[p.x][p.y].setBackground(Color.blue);
this.Count++;
this.setTitle("總分:"+Count);
this.rand_bean(); //再產(chǎn)生一個(gè)豆子
}else{///////////////////無(wú)豆子吃
//取原蛇頭坐標(biāo)
int x=snake_list.get(0).x;
int y=snake_list.get(0).y;
//根據(jù)蛇頭坐標(biāo)推算出擬新增蛇頭坐標(biāo)
Point p=null;
if(Direction==1)p=new Point(x-1,y);//計(jì)算出向上的新坐標(biāo)
if(Direction==2)p=new Point(x+1,y);//計(jì)算出向下的新坐標(biāo)
if(Direction==3)p=new Point(x,y-1);//計(jì)算出向左的新坐標(biāo)
if(Direction==4)p=new Point(x,y+1);//計(jì)算出向右的新坐標(biāo)
//若擬新增蛇頭碰壁,或纏繞則游戲結(jié)束
if(p.x0||p.x19|| p.y0||p.y19||is_cross(p)==true){
JOptionPane.showMessageDialog(null, "游戲結(jié)束!");
System.exit(0);
}
//向蛇體增加新的蛇頭坐標(biāo),并使新蛇頭可見
snake_list.add(0,p);
grid[p.x][p.y].setVisible(true);
//刪除原蛇尾坐標(biāo),使蛇尾不可見
int x1=snake_list.get(snake_list.size()-1).x;
int y1=snake_list.get(snake_list.size()-1).y;
grid[x1][y1].setVisible(false);
snake_list.remove(snake_list.size()-1);
}
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP Direction!=2) Direction=1;
if(e.getKeyCode()==KeyEvent.VK_DOWN Direction!=1) Direction=2;
if(e.getKeyCode()==KeyEvent.VK_LEFT Direction!=4) Direction=3;
if(e.getKeyCode()==KeyEvent.VK_RIGHT Direction!=3) Direction=4;
}
@Override
public void keyReleased(KeyEvent e) { }
@Override
public void keyTyped(KeyEvent e) { }
public static void main(String[] args) throws InterruptedException {
Snake win=new Snake();
while(true){
win.snake_move();
Thread.sleep(300);
}
}
}
之前java上有個(gè)游戲
俄羅斯方塊(Tetris)是經(jīng)典的益智游戲,幾乎是世界上最有影響力的益智游戲之一,游戲本身也很簡(jiǎn)單,只要不斷消減掉落的方塊就可以了。這個(gè)游戲被模仿了很多個(gè)版本,我這里的是EA出的瘋狂俄羅斯方塊(TetrisMania)。超級(jí)泡泡龍(SuperBubbleBobble)是Taito公司開發(fā)的游戲,主角是兩只綠色和藍(lán)色的小恐龍,通過(guò)吐出泡泡來(lái)消減屏幕上的彩球,游戲本身簡(jiǎn)單易學(xué)、妙趣橫生,女孩子玩起來(lái)會(huì)上癮的。超級(jí)馬里奧(SuperMarioBros)是任天堂公司開發(fā)的著名橫版過(guò)關(guān)游戲,是電子游戲歷史上銷量最大的系列游戲之一,早在任天堂的紅白機(jī)時(shí)代就名聲在外了,這個(gè)游戲幾乎移植到了所有的任天堂游戲機(jī),也包括電腦和手機(jī)。吃豆(Pac-Man)是Namco公司開發(fā)的一個(gè)經(jīng)典游戲,玩家控制游戲的主人公黃色小精靈吃掉藏在迷宮內(nèi)所有的豆子,并且不能被“幽靈”抓到。貪吃蛇(RetroSnaker)是諾基亞手機(jī)上的一個(gè)元老級(jí)游戲,這個(gè)游戲短小精悍,很具可玩性,特別適合在手機(jī)上玩。據(jù)稱,已經(jīng)有超過(guò)十億人玩過(guò)這個(gè)游戲。鉆石情迷(Bejeweled)是一個(gè)很好玩的益智游戲,有點(diǎn)像“對(duì)對(duì)碰”,游戲規(guī)則很簡(jiǎn)單,移動(dòng)相鄰的兩個(gè)鉆石,使任一排產(chǎn)生有三個(gè)或以上的相同鉆石,即消去,上面的鉆石靠重力落下。祖瑪(Zuma)是一款休閑益智游戲,玩法很像 龍珠,將中間吐出來(lái)的珠子向著周圍連環(huán)滾出的同色珠子射打,夠三個(gè)就能炸裂消除,簡(jiǎn)單有趣。炸彈人(Bomberman)是Hudson公司開發(fā)的一款基于迷宮的游戲,游戲主角炸彈人是一個(gè)機(jī)器人,基本操作是放置炸彈,以十字型的方式爆炸,來(lái)炸死敵人,也可以炸死自己,還有些增強(qiáng)威力與技能道具增加了游戲的可玩性。波斯王子(PrinceofPersia)是上世紀(jì)九十年代的一個(gè)經(jīng)典游戲,我以前在DOS上玩過(guò)的最早的游戲之一,可惜游戲續(xù)集一代不如一代,Gameloft將波斯王子一代進(jìn)行了重新開發(fā)制作,命名為PrinceofPersiaClassic,并支持手機(jī),其在手機(jī)上的效果很不錯(cuò)。模擬人生(TheSims)是ElectronicArts開發(fā)的一款以模擬普通人生活為主題的游戲,玩家可以操控模擬人物進(jìn)行日常生活、社區(qū)交流以及建造房屋。在一個(gè)模擬的世界中,仿造真實(shí)的情境,控制生理和精神的需求。手機(jī)版的模擬人生簡(jiǎn)化了原始電腦游戲的一些因素,使得其可以在手機(jī)上方便的操作。
網(wǎng)上下載的JAVA代碼怎么用
根據(jù)你的描述,eat應(yīng)該是一個(gè)工作空間的文件夾(.metadata是工作空間的配置文件),而那個(gè)EAT就是吃豆子的項(xiàng)目,用Eclipse的話,設(shè)置工作空間到????\eat就可以了.
一種是在打開的時(shí)候詢問工作空間路徑,輸入你的eat文件夾的絕對(duì)路徑就可以.
另一種是在Eclipse中,選文件(File) - 切換工作空間(Switch Workspace) 然后輸入eat文件夾的絕對(duì)路徑.
常理來(lái)講,這樣就能看到源代碼了,至于運(yùn)行,你需要找到這些源代碼中的main方法,你可以在左側(cè)的"包資源管理器(Package)"中找到EAT項(xiàng)目,在上面點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊運(yùn)行方式(Run As), 選擇運(yùn)行的方式,不知道你的程序是Applet, 還是Application, 試一下吧,應(yīng)該就可以運(yùn)行起來(lái)了.
上一篇:java中間代碼生成器 java自動(dòng)生成代碼工具
欄 目:JavaScript
下一篇:javascript遮蓋,JavaScript遮蓋PC端頁(yè)面
本文標(biāo)題:java吃豆人代碼 js吃豆人
本文地址:http://mengdiqiu.com.cn/a1/JavaScript/17048.html
您可能感興趣的文章
- 04-02javascript潛力,javascript強(qiáng)大嗎
- 04-02javascript點(diǎn)線,點(diǎn)線的代碼
- 04-02javascript移出,js 移入移出
- 04-02javascript替換字符串,js字符串的替換
- 04-02包含javascript舍的詞條
- 04-02javascript匿名,js匿名方法
- 04-02javascript并行,深入理解并行編程 豆瓣
- 04-02javascript警報(bào),JavaScript警告
- 04-02javascript前身,javascript的前身
- 04-02javascript遮蓋,JavaScript遮蓋PC端頁(yè)面


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02javascript點(diǎn)線,點(diǎn)線的代碼
- 04-02javascript潛力,javascript強(qiáng)大嗎
- 04-02javascript替換字符串,js字符串的替換
- 04-02javascript移出,js 移入移出
- 04-02包含javascript舍的詞條
- 04-02javascript并行,深入理解并行編程 豆瓣
- 04-02javascript匿名,js匿名方法
- 04-02javascript警報(bào),JavaScript警告
- 04-02javascript遮蓋,JavaScript遮蓋PC端頁(yè)面
- 04-02javascript前身,javascript的前身
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載