package xly04;
創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、小程序設(shè)計(jì)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十年以來(lái),已經(jīng)為上1000+成都iso認(rèn)證各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上1000+客戶與我們一路同行,見證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
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)];//長(zhǎng)度為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內(nèi)的Collections類自帶了一個(gè)shuffle洗牌算法。
static void shuffle(List? list)
使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換。
static void shuffle(List? list, Random rnd)
使用指定的隨機(jī)源對(duì)指定列表進(jìn)行置換。
現(xiàn)在你可以把52張牌放進(jìn)一個(gè)List里,調(diào)用他的shuffle算法打亂順序。
//牌類
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());
}
}
}
你指的是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)前對(duì)象的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://www.aaarwkj.com/article20/dospsco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、域名注冊(cè)、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、Google、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)