扑克牌(一)

最近老师布置了一道关于扑克牌的题!要求实现四点要求:

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 }

猜你喜欢

转载自www.cnblogs.com/YLTzxzy/p/10889180.html