亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

怎么比較J,Q,K,A的大小~還有四種花色怎么定義他們的大小~?。。?/h1>

按照String類型的比較規則,理論上不應該是A<J<K<Q嗎??我們怎么定義一個新的比較規則

正在回答

4 回答

撲克牌類里面定義2個屬性,一個就是撲克牌的名字,2-10,JQKA,然后定義一個他們int類型的大小屬性,封裝一下,控制臺輸出的是名字,比大小的時候用大小屬性

0 回復 有任何疑惑可以回復我~
#1

慕粉18523865484 提問者

非常感謝!
2016-06-20 回復 有任何疑惑可以回復我~

說下我的方法,建立兩個輸出循環輸出,通過值與 元素組的位置進行比較


public String [] dianshuji={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

//建立花色數組

public String [] huaseji={"方塊","梅花","紅桃","黑桃"};

public void addall(){// 增加整個撲克牌

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

for(int j=0;j<dianshuji.length;j++){

puke cr1=new puke(huaseji[i],dianshuji[j]);

pukelist.add(cr1);

}

}

System.out.println("--------------撲克拆包成功:-----------");

System.out.println("目前所有撲克牌為:");

System.out.println(pukelist);

System.out.println("");

}

public puke bijiaopai(puke a,puke b){

//比較大小

int m=0;

int n=0;

if(a.dianshu.equals(b.dianshu)){

for(int i=0;i<4;i++){//此處為比較四種花色位置

if(huaseji[i].equals(a.huase)){

m=i;

}

if(huaseji[i].equals(b.huase)){

n=i;

}

}

if(m>n) {

return a;

}else {


return b;

}

}else{

for(int j=0;j<13;j++){//此處為比較13張點數位置

if(dianshuji[j].equals(a.dianshu)){

m=j;

}

if(dianshuji[j].equals(b.dianshu)){

n=j;

}

}

if(m>n){

return a;

}else{

return b;

}

}

}


0 回復 有任何疑惑可以回復我~

我說一下我的辦法吧,我是在撲克牌類里定義了花色和點數屬性,然后再實現comparable接口,并實現compareTo方法,這是我的實現代碼,寫的比較麻煩,主要不想再建新類了,就一次性比完大小

public int compareTo(Cards arg0) { //重寫comparable接口中的compareTo方法

// TODO 自動生成的方法存根

String str="234567891JQKA";

List<String> type=new ArrayList<String>();

String str1[]={"黑桃","紅桃","梅花","方片"};

type.addAll(Arrays.asList(str1));

if(this.getCardsNumber().equals("10")){

int b=str.indexOf(arg0.getCardsNumber());

if(b<8)

return 1;

else if(b>8)

return -1;

else {

int x=type.indexOf(this.getCardsType());

int y=type.indexOf(arg0.getCardsType());

if(x<y)

return 1;

else if(x>y)

return -1;

else?

return 0;

}

?

}

else if(arg0.getCardsNumber().equals("10")){

int a=str.indexOf(this.getCardsNumber());

if(a>8)

return 1;

else if(a<8)

return -1;

else {

int x=type.indexOf(this.getCardsType());

int y=type.indexOf(arg0.getCardsType());

if(x<y)

return 1;

else if(x>y)

return -1;

else?

return 0;

}

}

else{

int a=str.indexOf(this.getCardsNumber());

int b=str.indexOf(arg0.getCardsNumber());

if(a>b)

return 1;

else if(a<b)

return -1;

else {

int x=type.indexOf(this.getCardsType());

int y=type.indexOf(arg0.getCardsType());

if(x<y)

return 1;

else if(x>y)

return -1;

else?

return 0;

}

}


}


}


0 回復 有任何疑惑可以回復我~

用一個數組或者ArrayList(數組列表)存放,按索引比較,存放順序就是升序

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

怎么比較J,Q,K,A的大小~還有四種花色怎么定義他們的大小~?。?!

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號