[程式設計題] 撲克牌大小
**撲克牌遊戲大家應該都比較熟悉了,一副牌由54張組成,含3~A,2各4張,小王1張,大王1張。牌面從小到大用如下字元和字串表示(其中,小寫joker表示小王,大寫JOKER表示大王):)
3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER
輸入兩手牌,兩手牌之間用“-”連線,每手牌的每張牌以空格分隔,“-”兩邊沒有空格,如:4 4 4 4-joker JOKER
請比較兩手牌大小,輸出較大的牌,如果不存在比較關係則輸出ERROR
基本規則:
(1)輸入每手牌可能是個子,對子,順子(連續5張),三個,炸彈(四個)和對王中的一種,不存在其他情況,由輸入保證兩手牌都是合法的,順子已經從小到大排列;
(2)除了炸彈和對王可以和所有牌比較之外,其他型別的牌只能跟相同型別的存在比較關係(如,對子跟對子比較,三個跟三個比較),不考慮拆牌情況(如:將對子拆分成個子)
(3)大小規則跟大家平時瞭解的常見規則相同,個子,對子,三個比較牌面大小;順子比較最小牌大小;炸彈大於前面所有的牌,炸彈之間比較牌面大小;對王是最大的牌;
(4)輸入的兩手牌不會出現相等的情況。
答案提示:
(1)除了炸彈和對王之外,其他必須同類型比較。
(2)輸入已經保證合法性,不用檢查輸入是否是合法的牌。
(3)輸入的順子已經經過從小到大排序,因此不用再排序了.
輸入描述:
輸入兩手牌,兩手牌之間用“-”連線,每手牌的每張牌以空格分隔,“-”兩邊沒有空格,如4 4 4 4-joker JOKER。
輸出描述:
輸出兩手牌中較大的那手,不含連線符,撲克牌順序不變,仍以空格隔開;如果不存在比較關係則輸出ERROR。
輸入例子1:
4 4 4 4-joker JOKER
輸出例子1:
joker JOKER**
import java.util.HashMap ;
import java.util.Map;
import java.util.Scanner;
public class Main {
static Map<String, Integer> map = new HashMap<>();
public static void InitMap() {
map.put("3", 3);
map.put("4", 4);
map.put("5", 5);
map.put("6", 6);
map.put("7", 7);
map.put ("8", 8);
map.put("9", 9);
map.put("10", 10);
map.put("J", 11);
map.put("Q", 12);
map.put("K", 13);
map.put("A", 14);
map.put("2", 15);
map.put("joker", 16);
map.put("JOKER", 17);
}
public static void main(String[] args) {
InitMap();
Scanner scanner = new Scanner(System.in);
String temp = scanner.nextLine();
String[] strings=temp.split("-");
String[] owner1 = strings[0].split("\\s");
String[] owner2 = strings[1].split("\\s");
if (owner1.length == 2 &&
((owner1[0] .equals( "joker") && owner1[1].equals( "JOKER")
|| (owner1[0].equals("JOKER") &&owner1[1].equals("joker"))))) {
System.out.println(strings[0]);
}else if (owner2.length == 2 &&
((owner2[0].equals("joker") && owner2[1].equals( "JOKER"))
|| (owner2[0].equals("JOKER") &&owner2[1].equals("joker")))){
System.out.println(strings[1]);
}else if(owner1.length==owner2.length)
{
if(map.get(owner1[0])-map.get(owner2[0])>0)
{
System.out.println(strings[0]);
}else{
System.out.println(strings[1]);
}
}else if(owner1.length==4){
System.out.println(strings[0]);
}else if (owner2.length==4) {
System.out.println(strings[1]);
}else {
System.out.println("ERROR");
}
}
}