首先定義牌和玩家對(duì)象。
目前創(chuàng)新互聯(lián)建站已為超過(guò)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、朝陽(yáng)縣網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
牌還要考慮王牌,屬性有花色和點(diǎn)數(shù),能夠區(qū)分。
玩家有一個(gè)list存放手牌。
for循環(huán)生成52個(gè)對(duì)象,然后生成2個(gè)王牌,加入一個(gè)list.
定義三個(gè)玩家。
循環(huán)17次,每次按順序發(fā)牌三張。
發(fā)牌的時(shí)候操作Random生成隨機(jī)數(shù),每發(fā)出一張,從list中remove掉此牌
最后得到4個(gè)list,三個(gè)玩家加底牌
for循環(huán)直接打印。
你指的是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ā)的牌
}
}
1.定義牌類
public class Card{
public int id;//牌大小
public String number;//牌值名稱
public String color;//花色
}
2.定義牌組,用ArrayList存放所有牌
ArrayListCard cardGroup =new ArrayListCard();
3.定義花色枚舉
public static final String[] COLORS=new String[]{"方塊","梅花","紅桃","黑桃"};
4.定義牌值大小枚舉
public static fina String[] CARDVALUES=new String[]{"A","1","2","3",
"4","5","6","7","8","9","10","J","Q","K","King_Small","King_Big"};
5.初始化牌組,這就是一副新牌,沒切過(guò),己經(jīng)排好序的
public void initCardGroup(){
//加入A~K
for(int i=0;i13;i++){
for (int j=0;j4;j++){
//生成一張牌的對(duì)象
Card card=new Card();
card.id=i;
card.color=COLORS[j];
card.munber=CARDVALUES[i];
//將對(duì)象加入牌組
cardGroup.add(card);
}
}
//加入大小王
Card card_k1=new Card();
card_k1.id=13;
card_k1.color="King_Small";
card_k1.number="King_Small";
cardGroup.add(card_k1);
Card card_k2=new Card();
card_k2.id=14;
card_k2.color="King_big";
card_k2.number="King_big";
cardGroup.add(card_k2);
}
6. 洗牌,將原牌組打亂,得到新的牌組
public ArrayListCard flushCardsGroup(ArrayListCard src){
ArrayListCard result=new ArrayListCard();
while(src.size0){
int size=src.size();
//以size為限,生成0~size之間的隨機(jī)數(shù)
Random r=new Random();
int index=r.nextInt(size);
//對(duì)index做個(gè)檢查
if(index0){index=0;}
if(indexsize-1){index=size-1;}
//index就是撿出來(lái)的牌,加到新的數(shù)組中,從原來(lái)數(shù)組中刪除
Card card=src.get(index);
result.add(card);
card.remove(index);
}
return result;
}