最近老师布置了一道关于扑克牌的题!要求实现四点要求:
1、准备牌
2、洗牌
3、发牌
4、看牌
当然,因为现阶段的知识不够,所以后期应该会将打牌的所有功能实现,但现在就先做到这样子!
1 public class Poject02 { 2 public static void main(String[] args) { 3 Scanner sc = new Scanner(System.in); 4 //准备集合,用于可以储存数据 5 HashMap<String,String> arr = new HashMap<>(); 6 ArrayList<String> array = new ArrayList<>(); 7 ArrayList<String> array2 = new ArrayList<>(); 8 String[] sa=new String[17]; 9 String str=""; 10 for(int j=0;j<4;j++) { 11 if(j==0){ 12 str="♥"; 13 }else if(j==1){ 14 str="♠"; 15 }else if(j==2){ 16 str="♦"; 17 }else if(j==3) { 18 str = "♣"; 19 } 20 for (int i = 2; i < 12; i++) { 21 if(i<=10){ 22 arr.put(i+"",str); 23 }else if(i==11){ 24 arr.put("J",str); 25 arr.put("Q",str); 26 arr.put("K",str); 27 arr.put("A",str); 28 } 29 Set<Map.Entry<String, String>> se = arr.entrySet(); 30 Iterator<Map.Entry<String, String>> it = se.iterator(); 31 while (it.hasNext()){ 32 Map.Entry<String, String> ne = it.next(); 33 String s1=ne.getKey(); 34 String s2=ne.getValue(); 35 sa[i]=s1+s2; 36 array2.add(sa[i]); 37 } 38 arr.clear(); 39 } 40 } 41 array2.add("小王"); 42 array2.add("大王"); 43 Collections.sort(array2); 44 System.out.print("********已经准备好牌!**********\n"); 45 // System.out.println(array2); 46 //开始洗牌,使用Collections工具打乱顺序实现洗牌 47 System.out.println("一共"+array2.size()+"张牌!"); 48 System.out.print("是否开始洗牌(y/n):"); 49 String st1=sc.next(); 50 if(st1.equals("y")){ 51 Collections.shuffle(array2); 52 }else if(st1.equals("n")){ 53 }else { 54 System.err.println("操作错误,系统退出!"); 55 System.exit(1); 56 } 57 System.out.print("是否开始发牌(y/n):"); 58 String st2=sc.next(); 59 if(st2.equals("n")){ 60 System.err.println("程序结束!"); 61 System.exit(1); 62 }else if(st2.equals("y")){ 63 }else{ 64 System.err.println("操作错误,系统退出!"); 65 System.exit(1); 66 } 67 //用remove和Random实现随机取出底牌 68 System.out.println("底牌为:"); 69 Random rand = new Random(); 70 for (int i=0;i<3;i++){ 71 if(i==2){ 72 System.out.print(array2.remove(rand.nextInt(54))+".\n"); 73 break; 74 } 75 System.out.print(array2.remove(rand.nextInt(54))+","); 76 } 77 for(int j=1;j<=3;j++) { 78 //发牌,将所有牌分别分3次付给array 79 //看牌,即对数组遍历并打印 80 if(j==1){ 81 System.out.println("您获得的牌是:"); 82 array.clear(); 83 }else if(j==2){ 84 System.out.println("上家获得的牌是:"); 85 array.clear(); 86 }else if(j==3){ 87 System.out.println("下家获得的牌是:"); 88 array.clear(); 89 } 90 for (int i = (j-1)*17; i < j*17; i++) { 91 if (i < j*17-1) { 92 array.add(array2.get(i)); 93 } else { 94 array.add(array2.get(i)); 95 } 96 } 97 Collections.sort(array); 98 System.out.println(array); 99 } 100 } 101 }