int?ACE?=?1;
int?傑克。=?11;
int?女王?=?12;
int?王者?=?13;
int?俱樂部?=?1;?//草花最小
int?鉆石?=?2;?//框
int?紅心?=?3;?//心形
int?黑桃?=?4;?//黑桃最大。
公共?int?rank();
公共?字符串?toString();
}
班級?卡?器物?撲克{
私人?int?價值;?//value表示卡值:1-13。
私人?int?西裝;?//花色表示顏色:1-4。
公共?卡(int?v,int?s)//構造方法:設置牌值和花色。
{值?=?五;西裝?=?s;}
公共?int?GetValue()///返回卡值。
{返回?價值;}
公共?int?get suit()///返回顏色。
{返回?西裝;}
公共?int?rank()//返回卡片的種類。
{返回?4*(值-1)?+西裝;}
公共?字符串?ToString()///將牌值和花色轉換為字符串。
{字符串?五;
字符串?s;
如果?(值?==?ACE)?v = " A
不然呢?如果?(值?==?傑克)?v=?“J”;
不然呢?如果?(值?==?女王)?v = " Q
不然呢?如果?(值?==?王者)?v = " K
不然呢?v=String.valueOf(值);
如果?(西裝?==?俱樂部)?s?=?《草花》;
不然呢?如果?(西裝?==?鉆石)s?=?“方”;
不然呢?如果?(西裝?==?紅心)?s?=?“心”;
不然呢?s?=?“黑桃”;
回歸?s?+?"?"+v;
}
}
班級?卡牌?{
私人?卡?甲板?[];?//deck[]存儲壹副牌
私人?int?卡片;//cards表示還剩多少張牌。
公共?CardDeck()?//構造方法:創建52張牌,填入牌值和顏色,洗牌。
{?甲板?=?新的?卡[52];?//創建52張卡片
fill();//填寫卡值和顏色。
shuffle();//無序播放
}
公共?作廢?Fill()//填寫卡片數值和顏色。
{ int?我;int?j;
為了什麽?(我?=1;?我?& lt=?13;?i++)
為了什麽?(j?=?1;?j?& lt=?4;?j++)
deck[4*(i-1)?+?j?-?1]=?新的?卡(I,j);
//?Deck[0]=曹華A,deck[1]=方塊A,deck[2]=紅心A,deck[3]=黑桃A,deck[4]=曹華2。...
卡片?=?52;//開頭有52張牌。
}?
公共?作廢?Shuffle()///洗牌
{
int?接下來;
為了什麽?(下壹個?=?0?;?下壹個?& lt?卡片-1;?下壹個++){
int?r=(int)?(math . random()* 52);
//隨機生成壹個數字0-51。
卡?臨時工?=?甲板?【下壹個】;//兩張卡交換位置
甲板[下壹個]?=?甲板[r];
deck[r]?=?溫度;
}
}
公共?卡?draw()//發牌。
{
如果?(卡片?==?0)?回歸?null
卡片-;
回歸?甲板[卡片];
}
}
班級?CardDeck2?延伸?卡片組{
公共?CardDeck2(){
super();?
}
公共?作廢?shuffle(){
for(int?我?=?0;?我?& lt?10;?我?++){
super . shuffle();
}
}
公共?卡[]?draw2(){
卡[]?卡?=?新的?卡片[2];
for(int?我?=?0;?我?& lt?2;?我?++){
卡[i]?=?super . draw();
}
回歸?卡;
}
公共?布爾?比較(卡片[]?妳的?卡[]?我的){
int?valuecountyou?=?0;
int?valuecountmine?=?0;
int?colorcountyou?=?0;
int?colorcountmine?=?0;
for(int?我?=?0;?我?& lt?妳的。長度;?我?++){
valuecountyou?+=?妳的[我的]。getValue();
valuecountmine?+=?我的。getValue();
colorcountyou?+=?妳的[我的]。get suit();
colorcountmine?+=?我的。get suit();
}
if(valuecountyou?& gt?valuecountmine){
回歸?真實;
}別的?if(valuecountyou?& lt?valuecountmine){
回歸?假的;
}否則{
if(colorcounttyou?& gt?colorcountmine){
回歸?真實;
}否則
回歸?假的;
}
}
}
公共?班級?Test2?{
公共?靜電?作廢?main(字符串?args[]){
CardDeck2?d?=?新的?card deck 2();
int?我;
int?贏了?=?0;?//wins表示您贏的次數。
int?查房?=?10;//rounds表示撲克牌的數量。
為了什麽?(我?=1;?我& lt=回合;?i++){
卡[]?妳的?=?d . draw 2();
System.out.print("妳的卡是什麽?"?+?妳的[0]+"?,"?+?妳的[1]?+?"?,");
卡[]?我的?=?d . draw 2();
System.out.print("我的卡是:"?+?mine[0]+"?。?"?+?我的[1]+"?。?");
如果?比較妳的。我的){
System.out.println("恭喜妳,妳贏了!");
wins++;
}否則{
System.out.println("抱歉,我贏了。");
}
}
System.out.println("妳總是贏:"+?wins+"?時間”);
}
}