java代碼隨機(jī)洗牌 java生成隨機(jī)數(shù)

請問用java數(shù)組編寫洗牌程序怎么寫?我剛學(xué)java,請多指教,謝謝!??!

package xly04;

創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷策劃、小程序設(shè)計(jì)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十年以來,已經(jīng)為上1000+成都iso認(rèn)證各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)。現(xiàn)在,服務(wù)的上1000+客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

import java.util.Random;

public class ArrayDemo3 {

/**

* 數(shù)組應(yīng)用:

* 1 隨機(jī)洗牌

* 2 順序發(fā)牌

*/

public static void main(String[] args) {

String[] cards=new String[]{"黑桃A","黑桃2","黑桃3","黑桃4",

"黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",

"紅桃A","紅桃2","紅桃3","紅桃4","紅桃5","紅桃6","紅桃7","紅桃8","紅桃9",

"紅桃10","紅桃J","紅桃Q","紅桃K","方塊A","方塊2","方塊3","方塊4","方塊5",

"方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K","梅花A",

"梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10",

"梅花J","梅花Q","梅花K","大王","小王"};

//Random random=new Random();.......(1)

//int index=random.nextInt(10);//[0,10) %10

//System.out.println(index);

//String card=cards[random.nextInt(cards.length)];//長度為8,隨機(jī)下標(biāo)[0,8)

//System.out.println(card);//隨機(jī)的某張牌

for(int i=cards.length-1;i=1;i--){

int j=new Random().nextInt(i);//或者(1)不注銷用int j=random.nextInt(i);

String t=cards[i];

cards[i]=cards[j];

cards[j]=t;

}

for(int i=0;icards.length;i++){

System.out.print(cards[i]+",");

}

System.out.println();//輸出回車字符

//順序發(fā)牌:順序的將每個(gè)牌發(fā)給每個(gè)人

String[] players=new String[]{"馬伊琍","文章","六六"};

//int i=0;

//System.out.println(players[i++%players.length]);

//System.out.println(players[i++%players.length]);

//System.out.println(players[i++%players.length]);

//System.out.println(players[i++%players.length]);

//System.out.println(players[i++%players.length]);

//System.out.println(players[i++%players.length]);

for(int i=0;icards.length;i++){

//i=0,1,2,3,4,5,6,7

String card=cards[i];//card 代表每張撲克牌

String player=players[i%players.length];

//player代表每個(gè)玩游戲的人

System.out.println(player+":"+card);

}

}

}

用JAVA寫個(gè)代碼,實(shí)現(xiàn)52張牌隨機(jī)分給四個(gè)人

java內(nèi)的Collections類自帶了一個(gè)shuffle洗牌算法。

static void shuffle(List? list)

使用默認(rèn)隨機(jī)源對指定列表進(jìn)行置換。

static void shuffle(List? list, Random rnd)

使用指定的隨機(jī)源對指定列表進(jìn)行置換。

現(xiàn)在你可以把52張牌放進(jìn)一個(gè)List里,調(diào)用他的shuffle算法打亂順序。

用java撰寫一個(gè)簡單的洗牌程序,可在文本模式下顯示洗牌結(jié)果

//牌類

public?class?Card?{

private?int?face;?//牌的面值

private?int?suit;??//牌的花色

public?Card(int?face,?int?suit)?{

super();

this.face?=?face;

this.suit?=?suit;

}

public?int?getFace()?{

return?face;

}

public?void?setFace(int?face)?{

this.face?=?face;

}

public?int?getSuit()?{

return?suit;

}

public?void?setSuit(int?suit)?{

this.suit?=?suit;

}

}

//模擬洗牌和發(fā)牌

public?class?Test?{

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

Card[]?deck?=?new?Card[52];

fillDeck(deck);

deal(deck);

System.out.println();

}

private?static?void?fillDeck(Card[]?deck)?{

int?i,?j=0;

for?(i?=?0;?i??52;?i++)?{

j?=?(int)?(Math.random()?*?52);

deck[i]=new?Card(j%13,j/13);?

}

}

private?static?void?deal(Card[]?deck)?{

int?k1,?k2;

System.out.println();

for?(k1?=?0,?k2?=?k1?+?26;?k1??26;?k1++,?k2++)?{

if?(k1?%?13?==?0)

System.out.println("\n第"?+?(k1?/?13?+?1)?+?

"組牌:\t\t\t第"+?(k1?/?13?+?3)?+?"組牌:");

System.out.print("\nCard:??"?+?deck[k1].getFace()?+?

"??Suit:??"+?deck[k1].getSuit());

System.out.print("\t\t\tCard:??"?+?deck[k2].getFace()?+?

"??Suit:??"+?deck[k2].getSuit());

}

}

}

java洗牌算法問題

你指的是Card里的toString方法吧

public?String?toString()?{

String?aa?=?suit?+?"?"?+?num?+?"??";

return?aa;

}

toString這個(gè)方法一般在?System.out.print時(shí)使用,這個(gè)是打印出String,JVM就是默認(rèn)調(diào)用類的toSting方法

注:所有類都有toString方法,默認(rèn)是當(dāng)前對象的hashcode,即內(nèi)存地址

所以在發(fā)牌是打印

public?void?dealcard()//發(fā)牌

{

for(int?i=0;i52;i++)

{

if(i%4==0i!=0){

System.out.println();??//每發(fā)4張牌輸出換行

}

//?就是這里,默認(rèn)調(diào)用card的toString方法

System.out.print(card[i]);?//依次輸出?發(fā)的牌

}

}

文章題目:java代碼隨機(jī)洗牌 java生成隨機(jī)數(shù)
瀏覽路徑:http://muchs.cn/article20/dospsco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、域名注冊響應(yīng)式網(wǎng)站標(biāo)簽優(yōu)化、Google、云服務(wù)器

廣告

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

成都app開發(fā)公司