欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

吃豆人java用到的代碼,吃豆人編程

Java是什么?Java到底能干嘛?

Java是什么?

成都創(chuàng)新互聯是一家以重慶網站建設、網頁設計、品牌設計、軟件運維、成都網站營銷、小程序App開發(fā)等移動開發(fā)為一體互聯網公司。已累計為成都集裝箱等眾行業(yè)中小客戶提供優(yōu)質的互聯網建站和軟件開發(fā)服務。

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優(yōu)雅的思維方式進行復雜的編程 。

Java到底能干什么?

1、Java可以用來編寫網站

對于學生來說,最關心的是Java能做什么,市場上招什么工作跟Java有關。現在很多大型網站都用jsp寫的,JSP全名為JavaServerPages。

它是一種動態(tài)網頁技術,比如我們熟悉的163,一些政府網站都是采用JSP編寫的。所以學習Java的同學可以找編寫網站方面的工作,而且現在找這方面的崗位比較多。

2、Java可以做Android

Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),其源代碼是Java。所以市場上見到的手機系統(tǒng)例如MIUI,阿貍云,樂蛙等,都是修改源代碼再發(fā)行的。

Java做安卓不單單是指系統(tǒng),還有APP.對于更多的開發(fā)人員來說,他們更多的時間是花在開發(fā)APP上面。

3、Java可以做游戲

或者你不知道,在以前諾基亞還很流行的時候,你玩的手機游戲有90%以上都是Java開發(fā)的。當然現在已經很少人再去開發(fā)了,都轉到安卓上去了。電腦上也有Java開發(fā)的游戲,最經典的是:《我的世界》(minecraft,簡稱MC)。

4、Java可以做軟件

一般編程語言都可以做軟件的,Java也不例外,例如Eclipse,MyEclipse等知名Java開發(fā)工具。有關開發(fā)軟件組件,可以了解JavaSwing編程或者awt相關知識。

5、其他

除了以上所提的Java語言應用范圍之外,家里的洗衣機、微波爐等家電都有可能是通過Java語言程序控制的呢。最重要的是要找到自己的一個興趣所在,專攻一個領域,堅持下去才會做出成績。

希望以上的回答能幫到大家!

誰知道JAVA工程師面試的腦筋急轉彎,越多越好,要有答案的,謝謝~~!

1.有一個人的了一種很嚴重的疾病,醫(yī)生給他開了兩種藥片,分別稱為 A 藥片和 B 藥片,每種分別為 4 片,每天必須吃兩次,每次必須吃 A 和 B 藥片各一片,出現錯誤就會死掉,第一天,他正常吃藥,但是,第二天吃藥的時候,他不小心把藥片搞混了,這兩種藥片的外觀完全一樣,他也沒有別的辦法再獲取藥片,那么,他應該怎么辦?

答案

把剩下的四片藥全部分開成兩半,一半放一堆,另一半放另一堆,第二天每次吃其中一堆就行了

2.5000的階乘末尾有幾個0

答案:

1249個

因為一個5的倍數產生一個零,25的倍數產生二個零

125的倍數產生三個零,625的倍數產生四個零

3025產生五個零,前面計算過的不說,都比前面的多產生一個零

5,10,15,...,5000 一共1000個

25,50,75,...,5000 共200個

125,250,...,5000 共40個

625,1250,...,5000 共8個

3125 只有1個

所以共有1249個零

3.一頭母牛在3—10歲的時候每年可以生一頭小牛,生公牛和母牛的比率是50%,在牛12歲的時候就送入屠宰場買了。現在有一個農夫有1頭1歲大的母牛,在母牛3歲的時候就送到附近的農場去配種,請問40年后這個農夫可能會有多少頭牛,寫出相關的代碼或答題思路,最好用面向對象。

答案:

Java代碼

package com.polaris.test;

import java.util.*;

/**

* 問題描述:

*

* 一頭母牛在3—10歲的時候每年可以生一頭小牛,生公牛和母牛的比率是50%,

* 在牛12歲的時候就送入屠宰場買了。現在有一個農夫有1頭1歲大的母牛,

* 在母牛3歲的時候就送到附近的農場去配種,請問40年后這個農夫可能會有多少頭牛,

* 寫出相關的代碼或答題思路,最好用面向對象。

* @author polaris

* @version 1.0

*/

public class ComputeCattleNum {

// 保存所有母牛

private static ListCattle cows = new ArrayListCattle();

// 保存所有當前農夫擁有的牛

private static ListCattle cattles = new ArrayListCattle();

public static void main(String[] args) {

// 第一頭母牛

Cattle cow = new Cattle(0,3);

cows.add(cow);

// 40年

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

// 大于等于12歲的牛送到屠宰場賣掉;同時每年,所有的牛

for(int j=0;jcattles.size();++j) {

Cattle temp = cattles.get(j);

if(temp.getDead()) {

cattles.remove(temp);

}

// 開始只有一頭母豬,年齡不生長

if(i0) {

cattles.get(j).grow();

}

}

// 母牛生小牛

for(int j=0;jcows.size();++j) {

Cattle calf = cows.get(j).bear();

if(calf!=null) {

if(calf.getSex()==0)

cows.add(calf);

cattles.add(calf);

}

}

}

System.out.println("40年后農夫擁有" + cattles.size() + "頭牛");

}

}

class Cattle {

// 牛的雌雄:0代表雌,1代表雄

private int sex;

// 牛的年齡

private int age;

// 是否賣掉(已死)

private boolean dead = false;

public Cattle(int sex, int age) {

this.sex = sex;

this.age = age;

}

/**

* 生小牛

* @return 生出的小牛

*/

public Cattle bear() {

Cattle calf = null;

if(this.sex==0) {

if(this.age=3 this.age=10) {

calf = new Cattle(random(),0);

} else {

//System.out.println("抱歉,此牛太小或太老,不能生育。");

}

} else {

//System.out.println("有沒有搞錯,公牛也想讓它生小牛?");

}

return calf;

}

private int random() {

return (int)Math.round(Math.random());

}

/**

* 長大一歲,如果當前大于等于12歲,則賣掉

*/

public void grow() {

if(this.age=12) dead = true;

else this.age++;

}

public int getSex() {

return this.sex;

}

public boolean getDead() {

return this.dead;

}

}

4.宴會桌旁

在某賓館的宴會廳里,有4位朋友正圍桌而坐,侃侃而談。他們用了中、英、法、日4種語言。現已知:

A.甲、乙、丙各會兩種語言,丁只會一種語言;

B.有一種語言4人中有3人都會;

C.甲會日語,丁不會日語,乙不會英語;

D. 甲與丙、丙與丁不能直接交談,乙與丙可以直接交談;

E. 沒有人既會日語,又會法語。

請問:甲乙丙丁各會什么語言?

答案:

第一題正解

甲:中日

乙:中法

丙:英法

丁:中

5.借機發(fā)財

從前有A、B兩個相鄰的國家,它們的關系很好,不但互相之間貿易交往頻繁,貨幣可以通用,匯率也相同。也就是說A國的100元等于B國的100 元。可是兩國關系因為一次事件而破裂了,雖然貿易往來仍然繼續(xù),但兩國國王卻互相宣布對方貨幣的100元只能兌換本國貨幣的90元。有一個聰明人,他手里 只有A國的100元鈔票,卻借機撈了一大把,發(fā)了一筆橫財。請你想一想,這個聰明人是怎樣從中發(fā)財的?

答案:

拿著A國100在A國換好B國的錢,然后再拿著換好的B國的錢去B國換A國的錢

如此循環(huán)

6.快馬加鞭

墨西哥農村現在仍然可以看到人們用馬和驢運載貨物。一位商人把四匹馬從甲村拉到乙村,而從甲村到乙村,A馬要花一小時,B馬要花兩小時,C馬要花四小時,D馬要花五小時。

這位商人一次只能拉兩匹馬,回來時他還要騎一匹馬,其中以走得慢的那匹馬作為從甲村拉到乙村所需的時間。聽說有人花了12小時就把四匹馬全部從甲村拉到乙村,請問:他是如何辦到的?

答案:

AB一起過B回來 4小時

CD 一起過A回來 6小時

AB 一起過 2小時

一共12小時

7.擊鼠標

擊鼠標比賽現在開始!參賽者有拉爾夫、威利和保羅。

拉爾夫10秒鐘能擊10下鼠標;威利20秒鐘能擊20下鼠標;保羅5秒鐘能擊5下鼠標。以上各人所用的時間是這樣計算的;從第一擊開始,到最后一擊結束。

他們是否打平手?如果不是,誰最先擊完40下鼠標?

答案:

拉爾夫

一個加速然后減速的過程。三個人平均速度相等。達到平均速度時間在中間的人可能性最大。

8.感覺

用第一感覺判斷8+8=91這個等式正確嗎?說明理由。

答案:

不正確。8+8=16

9.謊話

如果下列每個人說的話都是假話,那么是誰打碎了花瓶?

夏克:吉姆打碎了花瓶。

湯姆:夏克會告訴你誰打碎了花瓶。

埃普爾:湯姆,夏克和我不太可能打碎花瓶。

克力斯:我沒打碎花瓶。

艾力克:夏克打碎了花瓶,所以湯姆和埃普爾不太可能打碎花瓶。

吉姆:我打碎了花瓶,湯姆是無辜的。

答案:克力斯。吉姆的話有兩個條件,只要一個為false就為false。

10.大有作為

魯道夫、菲利普、羅伯特三位青年,一個當了歌手,一個考上大學,一個加入美軍陸戰(zhàn)隊,個個未來都大有作為。現已知:

A. 羅伯特的年齡比戰(zhàn)士的大;

B. 大學生的年齡比菲利普小;

C. 魯道夫的年齡和大學生的年齡不一樣。

請問:三個人中誰是歌手?誰是大學生?誰是士兵?

歌手 大學 美軍陸戰(zhàn)隊

魯道夫 X true

菲利普 true X X

羅伯特 true X

由A B=》羅伯特比菲利普小比戰(zhàn)士大。所以菲利普不是戰(zhàn)士

11.麻省理工大學的學生

美國麻省理大學的學生來自不同國家。

大衛(wèi)、比利、特德三名學生,一個是法國人,一個是日本人,一個是美國人。現已知:

1、 大衛(wèi)不喜歡面條,特德不喜歡漢堡包;

2、 喜歡面條的不是法國人;

3、 喜歡漢堡包的是日本人;

4、 比利不是美國人。

請推測出這三名留學生分別來自哪些國家?

答案:

法國人 日本人 美國人

大衛(wèi) true X

比利 true X

特德 X true

喜歡漢堡的是日本人,特德不喜歡漢堡=》特德不是日本人

喜歡漢堡的是日本人,所以喜歡面條的可暫假設也不是日本人=》美國人喜歡面條,大衛(wèi)不喜歡面條=》大衛(wèi)也不是美國人。所以特德是美國人

喜歡面條的不是法國人可暫假設不喜歡面條的是法國人=》大衛(wèi)是法國人

所以=》 比利時日本人

然后在那上面假設的結果挨個判斷原題條件。每個條件都符合。所以以上假設成立。

如需更多(包括各種面經,筆經)加我QQ:719116861。注明java!

懸賞100元錢。注釋一個java掃雷游戲源代碼,就是把每行的意思寫到后面就可以了!在線等。

import java.awt.*;

import javax.swing.*;

import java.util.Random;

import java.awt.event.*;

class Min extends JPanel //雷的類

{

//備注:鼠標的左鍵 = 1;右鍵 = 3;中鍵 = 2

private int flag = 0,statu = 0; //定義雷的屬性 0:沒有打開 1:打開 2:標示為雷 3:不確定

//flag = 0 不是雷 ; flag = 1是雷

private int but,count = 0; //but:哪一個鼠標鍵被按下去了 count:這個區(qū)域周圍有多少個雷

private int mx = 0,my = 0,mw = 10; //定義雷的坐標和寬度

public Min() //構造函數

{

statu = 0;

}

public Min(int f,int x,int y,int w)

//構造函數

{

flag = f;

mx = x;

my = y;

mw = w;

}

public int getFlag(){return flag;}

public int getStatu(){return statu;}

public int getMx(){return mx;}

public int getMy(){return my;}

public int getMw(){return mw;}

public int getCount(){return count;}

public void setFlag(int f){flag = f;}

public void setCount(int c){count = c;}

public void setData(int f,int x,int y,int w,int s)

//傳遞值

{

flag = f;

mx = (x-1)*w;

my = (y-1)*w;

mw = w-1;

statu = s;

}

//根據你點擊鼠標的不同來改變雷的屬性

public int sendKey(int key)

{

//返回值,如果游戲結束則返回-1

int rtn = 1;

if(key == 3)

{

switch(statu)

{

case 1:

break;

case 2:

statu = 3;

break;

case 3:

statu = 0;

break;

case 0:

statu = 2;

break;

}

rtn = 1;

}

if(key == 1 statu == 0)

{

switch(flag)

{

case 0:

statu = 1;

rtn = 2;

break;

case 1:

statu = 1;

rtn = -1;

break;

}

}

return rtn;

}

}

class DrawPanel extends JPanel

{

private int i,j;

private int f = 0; //if f = 1 then game over ,if f =2 then win

private int chx = 0,chy = 0; //專門記錄坐標x,y的值

private int msum = 6,ksum = 0; //msum:雷的個數,ksum:標示雷的個數

private int bx = 10,by = 10,bw = 40; //bx,by:棋盤的大小,bw:棋子的大小

public Min board[][] = {

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

{new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min(),new Min()},

};

// 畫坐標為ax,ay區(qū)域的雷的狀態(tài)

public void draw(Graphics g,int ax,int ay)

{

int x,y,w; // 坐標x,y;和寬度:w

int s,c,flag; //狀態(tài);雷的個數;

int cx = bw/2 - 4;

int cy = bw/2 + 4;

x = board[ax][ay].getMx();

y = board[ax][ay].getMy();

w = board[ax][ay].getMw();

s = board[ax][ay].getStatu();

c = board[ax][ay].getCount();

flag= board[ax][ay].getFlag();

switch(s)

{

case 0: //沒有打開狀態(tài)

{

g.setColor(Color.black);

g.fillRect(x,y,w,w);

break;

}

case 1: //打開狀態(tài)

{

g.setColor(Color.blue);

g.fillRect(x,y,w,w);

if(c != 0 flag == 0) //此處沒有雷

{

g.setColor(Color.red);

g.drawString(String.valueOf(c),x + cx,y + cy);

}

if(flag == 1) //此處有雷

{

g.setColor(Color.red);

g.fillRect(x,y,w,w);

g.setColor(Color.blue);

g.drawString(" 雷",x + cx,y + cy);

}

break;

}

case 2: //標雷狀態(tài)

{

g.setColor(Color.green);

g.fillRect(x,y,w,w);

g.setColor(Color.blue);

g.drawString(" 旗",x + cx,y + cy);

break;

}

case 3: //不確定狀態(tài)

{

g.setColor(Color.black);

g.fillRect(x,y,w,w);

g.setColor(Color.red);

g.drawString("?",x + cx,y + cy);

break;

}

default:

break;

}

}

// 沒有圖形器的繪圖函數:畫出坐標ax,ay的雷的狀態(tài)和圖形

public void draw(int ax,int ay)

{

Graphics g;

g = this.getGraphics();

draw(g,ax,ay);

}

//打開周圍沒有雷的地方,并且繪畫所在區(qū)域點擊左鍵觸發(fā)

public int openNoMin(int ax,int ay)

{

int i,j;

if(ax1||ay1||axbx||ayby) return 0; //鼠標點擊的區(qū)域出界了

if(board[ax][ay].getStatu() != 0) return 0; //如果此區(qū)域打開了,返回

board[ax][ay].sendKey(1); //如果返回值等于-1,就說明游戲結束

draw(ax,ay);

if(board[ax][ay].getFlag() == 1)

//如果游戲結束,把所有的雷都顯示出來

{

for(i = 1;i=bx;i++)

{

for(j = 1;j = by;j++)

{

if(board[i][j].getFlag() == 1)

{

board[i][j].sendKey(1);

draw(i,j);

}

}

}

return -1;

}

//如果游戲沒有結束

if(board[ax][ay].getCount() 0)

{

ksum ++;

return 1; //周圍有雷,就不用打開周圍地區(qū)

}

if(board[ax][ay].getCount() == 0 board[ax][ay].getFlag() == 0)

//周圍沒有雷,打開周圍地區(qū),直到有雷的地區(qū)

{

openNoMin(ax-1,ay-1);openNoMin(ax,ay-1);openNoMin(ax+1,ay-1);

openNoMin(ax-1,ay ); openNoMin(ax+1,ay );

openNoMin(ax-1,ay+1);openNoMin(ax,ay+1);openNoMin(ax+1,ay+1);

}

ksum ++;

return 1;

}

//計算坐標x,y的周圍雷的個數

public int getCount(int ai,int aj)

{

int sum = 0;

if(board[ai][aj].getFlag() == 1)

{

return sum;

}

if(ai1aj1aibxajby)

{

sum = board[ai-1][aj-1].getFlag()+ board[ai][aj-1].getFlag()+ board[ai+1][aj-1].getFlag()+

board[ai-1][aj ].getFlag()+ board[ai+1][aj ].getFlag()+

board[ai-1][aj+1].getFlag()+ board[ai][aj+1].getFlag()+ board[ai+1][aj+1].getFlag();

}

if(ai==1aj==1)

{

sum = board[ai+1][aj ].getFlag()+

board[ai][aj+1].getFlag()+ board[ai+1][aj+1].getFlag();

}

if(ai==1aj==by)

{

sum = board[ai][aj-1].getFlag()+ board[ai+1][aj-1].getFlag()+

board[ai+1][aj ].getFlag();

}

if(ai==bxaj==1)

{

sum = board[ai-1][aj ].getFlag()+

board[ai-1][aj+1].getFlag()+ board[ai][aj+1].getFlag();

}

if(ai==bxaj==by)

{

sum = board[ai-1][aj-1].getFlag()+ board[ai][aj-1].getFlag()+

board[ai-1][aj ].getFlag();

}

if(ai==1aj1ajby)

{

sum = board[ai][aj-1].getFlag()+ board[ai+1][aj-1].getFlag()+

board[ai+1][aj ].getFlag()+

board[ai][aj+1].getFlag()+ board[ai+1][aj+1].getFlag();

}

if(ai==bxaj1ajby)

{

sum = board[ai-1][aj-1].getFlag()+ board[ai][aj-1].getFlag()+

board[ai-1][aj ].getFlag()+

board[ai-1][aj+1].getFlag()+ board[ai][aj+1].getFlag();

}

if(ai1aibxaj==1)

{

sum = board[ai-1][aj ].getFlag()+ board[ai+1][aj ].getFlag()+

board[ai-1][aj+1].getFlag()+ board[ai][aj+1].getFlag()+ board[ai+1][aj+1].getFlag();

}

if(ai1aibxaj==by)

{

sum = board[ai-1][aj-1].getFlag()+ board[ai][aj-1].getFlag()+ board[ai+1][aj-1].getFlag()+

board[ai-1][aj ].getFlag()+ board[ai+1][aj ].getFlag();

}

return sum;

}

// 傳入參數:幾列,幾行,寬度,雷數

public void initMin(int ax,int ay,int aw,int as)

{

int k = 1; //表明產生的第幾個雷

Random r; //隨機數

f = 0; //f=0表示游戲還沒有結束

ksum = 0;

bx = ax;

by = ay;

bw = aw;

msum = as;

r = new Random();

//初始化底盤的值

for(i = 1;i = bx;i++)

{

for(j=1;j=by;j++)

{

board[i][j].setData(0,i,j,bw,0);

}

}

// 隨機產生雷

while(k = msum)

{

i = r.nextInt(bx)+1;

j = r.nextInt(by)+1;

if(board[i][j].getFlag() != 1)

{

board[i][j].setFlag(1);

k++;

}

}

// 非雷區(qū)的周圍有幾個雷,初始化其值

for(i = 1;i = bx;i++)

{

for(j=1;j=by;j++)

{

board[i][j].setCount(getCount(i,j));

}

}

setBackground(Color.white);

repaint();

}

// 構造函數

public DrawPanel(int ax,int ay,int aw,int as)

{

initMin(ax,ay,aw,as);

addMouseListener(new MouseAdapter()

{

public void mousePressed(MouseEvent me)

{

int r;

if(f != 0) return; //如果游戲結束,返回

chx = me.getX();

chy = me.getY();

if(me.getButton() != 1)

{

board[chx/bw+1][chy/bw+1].sendKey(me.getButton());

draw(chx/bw+1,chy/bw+1);

}

else if(me.getButton() == 1)

{

if(openNoMin(chx/bw+1,chy/bw+1) == -1)

{

f = 1;

repaint();

}

else if ( ksum + msum == bx*by )

{

f = 2;

repaint();

}

}

}

}

);

}

// 重畫所有的圖形,包括一些修飾的圖形

public void paint(Graphics g)

{

int x,y,w;

int s;

int cx = bw/2 - 4;

int cy = bw/2 + 4;

g.clearRect(0,0,600,600);

for(i=1;i=bx;i++)

{

for(j=1;j=by;j++)

{

draw(g,i,j);

}

}

if(f == 1)

{

Font f = new Font("11",1,70);

Font fo = g.getFont();

g.setColor(Color.white);

g.setFont(f);

//g.setSize();

g.drawString("Game Over",0,200);

g.setFont(fo);

}

if( f == 2 )

{

Font f = new Font("11",1,70);

Font fo = g.getFont();

g.setColor(Color.white);

g.setFont(f);

//g.setSize();

g.drawString("You win!",0,200);

g.setFont(fo);

}

}

};

// 主類和程序的入口

public class Mine extends JFrame implements ActionListener

{

Container cp = getContentPane();

JButton bt = new JButton("開局");

Label l1 = new Label("列:");

Label l2 = new Label("行:");

Label l3 = new Label("寬度:");

Label l4 = new Label("雷的個數:");

TextField tf1 = new TextField("10",2); //列

TextField tf2 = new TextField("10",2); //行

TextField tf3 = new TextField("40",2); //寬度

TextField tf4 = new TextField("15",2); //雷的個數

int x=10,y=10,w=40,sum=15;

DrawPanel dp = new DrawPanel(x,y,w,sum);

public Mine()

{

setBackground(Color.white);

cp.setLayout(null);

cp.add(dp);

cp.add(bt);

cp.add(tf1);

cp.add(tf2);

cp.add(tf3);

cp.add(tf4);

cp.add(l1);

cp.add(l2);

cp.add(l3);

cp.add(l4);

l1.setBounds(20 ,10,20,20);

tf1.setBounds(40,10,20,20);

l2.setBounds(70,10,20,20);

tf2.setBounds(90,10,20,20);

l3.setBounds(120,10,40,20);

tf3.setBounds(160,10,20,20);

l4.setBounds(190,10,60,20);

tf4.setBounds(250,10,20,20);

bt.setBounds(300,10,80,20);

dp.setBounds(20,40,x*w,y*w);

setResizable(false);

setSize(x*w+40,y*w+80);

setTitle(" 掃雷");

show();

bt.addActionListener(this);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{System.exit(0);}

}

);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource() == bt)

{

//x = Integer.parseInt(tf1.getText());

//y = Integer.parseInt(tf2.getText());

//w = Integer.parseInt(tf3.getText());

sum = Integer.parseInt(tf4.getText());

setSize(x*w+40,y*w+80);

dp.setBounds(20,40,x*w,y*w);

show();

dp.initMin(x,y,w,sum);

}

}

public static void main(String args[])

{

new Mine();

}

};

求個簡單點的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);//保存隨機豆子【坐標】

int Direction = 1; //方向標志 1:上 2:下 3:左 4:右

//構造方法

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個按鈕

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);

//在動態(tài)數組中保存蛇體按鈕坐標【行列】信息

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);

}

//該方法隨機一個豆子,且不在蛇體上,并使豆子可見

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;

}

//判斷蛇即將前進位置是否有豆子,有返回true,無返回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;

}

//前進一格

public void snake_move(){

if(isHaveBean()==true){//////////////有豆子吃

Point p=new Point(bean.x,bean.y);//【很重要,保證吃掉的是豆子的復制對象】

snake_list.add(0,p); //吃豆子

grid[p.x][p.y].setBackground(Color.blue);

this.Count++;

this.setTitle("總分:"+Count);

this.rand_bean(); //再產生一個豆子

}else{///////////////////無豆子吃

//取原蛇頭坐標

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(p.x0||p.x19|| p.y0||p.y19||is_cross(p)==true){

JOptionPane.showMessageDialog(null, "游戲結束!");

System.exit(0);

}

//向蛇體增加新的蛇頭坐標,并使新蛇頭可見

snake_list.add(0,p);

grid[p.x][p.y].setVisible(true);

//刪除原蛇尾坐標,使蛇尾不可見

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編寫的貪吃蛇小程序源代碼

用MVC方式實現的貪吃蛇游戲,共有4個類。運行GreedSnake運行即可。主要是觀察者模式的使用,我已經添加了很多注釋了。

1、

/*

* 程序名稱:貪食蛇

* 原作者:BigF

* 修改者:algo

* 說明:我以前也用C寫過這個程序,現在看到BigF用Java寫的這個,發(fā)現雖然作者自稱是Java的初學者,

* 但是明顯編寫程序的素養(yǎng)不錯,程序結構寫得很清晰,有些細微得地方也寫得很簡潔,一時興起之

* 下,我認真解讀了這個程序,發(fā)現數據和表現分開得很好,而我近日正在學習MVC設計模式,

* 因此嘗試把程序得結構改了一下,用MVC模式來實現,對源程序得改動不多。

* 我同時也為程序增加了一些自己理解得注釋,希望對大家閱讀有幫助。

*/

package mvcTest;

/**

* @author WangYu

* @version 1.0

* Description:

* /pre

* Create on :Date :2005-6-13 Time:15:57:16

* LastModified:

* History:

*/

public class GreedSnake {

public static void main(String[] args) {

SnakeModel model = new SnakeModel(20,30);

SnakeControl control = new SnakeControl(model);

SnakeView view = new SnakeView(model,control);

//添加一個觀察者,讓view成為model的觀察者

model.addObserver(view);

(new Thread(model)).start();

}

}

-------------------------------------------------------------

2、

package mvcTest;

//SnakeControl.java

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

/**

* MVC中的Controler,負責接收用戶的操作,并把用戶操作通知Model

*/

public class SnakeControl implements KeyListener{

SnakeModel model;

public SnakeControl(SnakeModel model){

this.model = model;

}

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();

if (model.running){ // 運行狀態(tài)下,處理的按鍵

switch (keyCode) {

case KeyEvent.VK_UP:

model.changeDirection(SnakeModel.UP);

break;

case KeyEvent.VK_DOWN:

model.changeDirection(SnakeModel.DOWN);

break;

case KeyEvent.VK_LEFT:

model.changeDirection(SnakeModel.LEFT);

break;

case KeyEvent.VK_RIGHT:

model.changeDirection(SnakeModel.RIGHT);

break;

case KeyEvent.VK_ADD:

case KeyEvent.VK_PAGE_UP:

model.speedUp();

break;

case KeyEvent.VK_SUBTRACT:

case KeyEvent.VK_PAGE_DOWN:

model.speedDown();

break;

case KeyEvent.VK_SPACE:

case KeyEvent.VK_P:

model.changePauseState();

break;

default:

}

}

// 任何情況下處理的按鍵,按鍵導致重新啟動游戲

if (keyCode == KeyEvent.VK_R ||

keyCode == KeyEvent.VK_S ||

keyCode == KeyEvent.VK_ENTER) {

model.reset();

}

}

public void keyReleased(KeyEvent e) {

}

public void keyTyped(KeyEvent e) {

}

}

-------------------------------------------------------------

3、

/*

*

*/

package mvcTest;

/**

* 游戲的Model類,負責所有游戲相關數據及運行

* @author WangYu

* @version 1.0

* Description:

* /pre

* Create on :Date :2005-6-13 Time:15:58:33

* LastModified:

* History:

*/

//SnakeModel.java

import javax.swing.*;

import java.util.Arrays;

import java.util.LinkedList;

import java.util.Observable;

import java.util.Random;

/**

* 游戲的Model類,負責所有游戲相關數據及運行

*/

class SnakeModel extends Observable implements Runnable {

boolean[][] matrix; // 指示位置上有沒蛇體或食物

LinkedList nodeArray = new LinkedList(); // 蛇體

Node food;

int maxX;

int maxY;

int direction = 2; // 蛇運行的方向

boolean running = false; // 運行狀態(tài)

int timeInterval = 200; // 時間間隔,毫秒

double speedChangeRate = 0.75; // 每次得速度變化率

boolean paused = false; // 暫停標志

int score = 0; // 得分

int countMove = 0; // 吃到食物前移動的次數

// UP and DOWN should be even

// RIGHT and LEFT should be odd

public static final int UP = 2;

public static final int DOWN = 4;

public static final int LEFT = 1;

public static final int RIGHT = 3;

public SnakeModel( int maxX, int maxY) {

this.maxX = maxX;

this.maxY = maxY;

reset();

}

public void reset(){

direction = SnakeModel.UP; // 蛇運行的方向

timeInterval = 200; // 時間間隔,毫秒

paused = false; // 暫停標志

score = 0; // 得分

countMove = 0; // 吃到食物前移動的次數

// initial matirx, 全部清0

matrix = new boolean[maxX][];

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

matrix[i] = new boolean[maxY];

Arrays.fill(matrix[i], false);

}

// initial the snake

// 初始化蛇體,如果橫向位置超過20個,長度為10,否則為橫向位置的一半

int initArrayLength = maxX 20 ? 10 : maxX / 2;

nodeArray.clear();

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

int x = maxX / 2 + i;//maxX被初始化為20

int y = maxY / 2; //maxY被初始化為30

//nodeArray[x,y]: [10,15]-[11,15]-[12,15]~~[20,15]

//默認的運行方向向上,所以游戲一開始nodeArray就變?yōu)椋?/p>

// [10,14]-[10,15]-[11,15]-[12,15]~~[19,15]

nodeArray.addLast(new Node(x, y));

matrix[x][y] = true;

}

// 創(chuàng)建食物

food = createFood();

matrix[food.x][food.y] = true;

}

public void changeDirection(int newDirection) {

// 改變的方向不能與原來方向同向或反向

if (direction % 2 != newDirection % 2) {

direction = newDirection;

}

}

/**

* 運行一次

* @return

*/

public boolean moveOn() {

Node n = (Node) nodeArray.getFirst();

int x = n.x;

int y = n.y;

// 根據方向增減坐標值

switch (direction) {

case UP:

y--;

break;

case DOWN:

y++;

break;

case LEFT:

x--;

break;

case RIGHT:

x++;

break;

}

// 如果新坐標落在有效范圍內,則進行處理

if ((0 = x x maxX) (0 = y y maxY)) {

if (matrix[x][y]) { // 如果新坐標的點上有東西(蛇體或者食物)

if (x == food.x y == food.y) { // 吃到食物,成功

nodeArray.addFirst(food); // 從蛇頭贈長

// 分數規(guī)則,與移動改變方向的次數和速度兩個元素有關

int scoreGet = (10000 - 200 * countMove) / timeInterval;

score += scoreGet 0 ? scoreGet : 10;

countMove = 0;

food = createFood(); // 創(chuàng)建新的食物

matrix[food.x][food.y] = true; // 設置食物所在位置

return true;

} else // 吃到蛇體自身,失敗

return false;

} else { // 如果新坐標的點上沒有東西(蛇體),移動蛇體

nodeArray.addFirst(new Node(x, y));

matrix[x][y] = true;

n = (Node) nodeArray.removeLast();

matrix[n.x][n.y] = false;

countMove++;

return true;

}

}

return false; // 觸到邊線,失敗

}

public void run() {

running = true;

while (running) {

try {

Thread.sleep(timeInterval);

} catch (Exception e) {

break;

}

if (!paused) {

if (moveOn()) {

setChanged(); // Model通知View數據已經更新

notifyObservers();

} else {

JOptionPane.showMessageDialog(null,

"you failed",

"Game Over",

JOptionPane.INFORMATION_MESSAGE);

break;

}

}

}

running = false;

}

private Node createFood() {

int x = 0;

int y = 0;

// 隨機獲取一個有效區(qū)域內的與蛇體和食物不重疊的位置

do {

Random r = new Random();

x = r.nextInt(maxX);

y = r.nextInt(maxY);

} while (matrix[x][y]);

return new Node(x, y);

}

public void speedUp() {

timeInterval *= speedChangeRate;

}

public void speedDown() {

timeInterval /= speedChangeRate;

}

public void changePauseState() {

paused = !paused;

}

public String toString() {

String result = "";

for (int i = 0; i nodeArray.size(); ++i) {

Node n = (Node) nodeArray.get(i);

result += "[" + n.x + "," + n.y + "]";

}

return result;

}

}

class Node {

int x;

int y;

Node(int x, int y) {

this.x = x;

this.y = y;

}

}

------------------------------------------------------------

4、

package mvcTest;

//SnakeView.java

import javax.swing.*;

import java.awt.*;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.Observable;

import java.util.Observer;

/**

* MVC模式中得Viewer,只負責對數據的顯示,而不用理會游戲的控制邏輯

*/

public class SnakeView implements Observer {

SnakeControl control = null;

SnakeModel model = null;

JFrame mainFrame;

Canvas paintCanvas;

JLabel labelScore;

public static final int canvasWidth = 200;

public static final int canvasHeight = 300;

public static final int nodeWidth = 10;

public static final int nodeHeight = 10;

public SnakeView(SnakeModel model, SnakeControl control) {

this.model = model;

this.control = control;

mainFrame = new JFrame("GreedSnake");

Container cp = mainFrame.getContentPane();

// 創(chuàng)建頂部的分數顯示

labelScore = new JLabel("Score:");

cp.add(labelScore, BorderLayout.NORTH);

// 創(chuàng)建中間的游戲顯示區(qū)域

paintCanvas = new Canvas();

paintCanvas.setSize(canvasWidth + 1, canvasHeight + 1);

paintCanvas.addKeyListener(control);

cp.add(paintCanvas, BorderLayout.CENTER);

// 創(chuàng)建底下的幫助欄

JPanel panelButtom = new JPanel();

panelButtom.setLayout(new BorderLayout());

JLabel labelHelp;

labelHelp = new JLabel("PageUp, PageDown for speed;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.NORTH);

labelHelp = new JLabel("ENTER or R or S for start;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.CENTER);

labelHelp = new JLabel("SPACE or P for pause", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.SOUTH);

cp.add(panelButtom, BorderLayout.SOUTH);

mainFrame.addKeyListener(control);

mainFrame.pack();

mainFrame.setResizable(false);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainFrame.setVisible(true);

}

void repaint() {

Graphics g = paintCanvas.getGraphics();

//draw background

g.setColor(Color.WHITE);

g.fillRect(0, 0, canvasWidth, canvasHeight);

// draw the snake

g.setColor(Color.BLACK);

LinkedList na = model.nodeArray;

Iterator it = na.iterator();

while (it.hasNext()) {

Node n = (Node) it.next();

drawNode(g, n);

}

// draw the food

g.setColor(Color.RED);

Node n = model.food;

drawNode(g, n);

updateScore();

}

private void drawNode(Graphics g, Node n) {

g.fillRect(n.x * nodeWidth,

n.y * nodeHeight,

nodeWidth - 1,

nodeHeight - 1);

}

public void updateScore() {

String s = "Score: " + model.score;

labelScore.setText(s);

}

public void update(Observable o, Object arg) {

repaint();

}

}

希望采納

用java編寫一個程序用到接口,能用到接口概念的就行

Display.java ? 接口代碼如下:

public?interface?Display?{

public?void?dis();

}

接口的實現類DisplayImpl.java ? ?代碼如下:

public?class?DisplayImpl?implements?Display?{

@Override

public?void?dis()?{

//?TODO?Auto-generated?method?stub

System.out.println("輸出方法");

}

public?static?void?main(String[]?args)?{

new?DisplayImpl().dis();

}

}

文章題目:吃豆人java用到的代碼,吃豆人編程
當前路徑:http://chinadenli.net/article22/dsicsjc.html

成都網站建設公司_創(chuàng)新互聯,為您提供定制網站微信小程序關鍵詞優(yōu)化外貿網站建設動態(tài)網站網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站優(yōu)化排名