A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钱金磊 中级黑马   /  2016-5-8 22:58  /  2097 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

打印一副扑克!
自从学了java基础后感觉有些喜欢上编程了!现在学到集合,有些自己对与斗地主这款游戏有些编程思路,
现在由于没有多少时间来实现这个程序,有空就把全代码给编出来!
大纲是这样的,
1.创建一副牌,
2.发给3个人牌!当然了,底牌是不给你看的(保持游戏的公平性,但是我们可以作弊嘛!)!
3.打牌的算法!      这个这个有些复杂,如计算积分(简单),打牌的规矩(有些复杂,为啥啊!你的要敲好多实现方法的代码),出牌后计算谁能下一次出牌(这个思路不是刚入门的就能够想到的!);
4.用GUI显示窗口(这个得做的可以做的好看点嘛!这个把x讯的斗地主截个图呗!)
5.你可以和你的pc一起玩了!(非常能打发时间!)
  1. import java.util.Comparator;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Set;
  5. import java.util.TreeMap;
  6. import java.util.TreeSet;
  7. public class Demo3 {
  8.         /**
  9.          * 斗地主
  10.          * 0.有一副牌!
  11.          * 1.发牌!
  12.          * 2.洗牌!
  13.          *
  14.          */
  15.         public static void main(String[] args) {
  16.                 // TODO Auto-generated method stub
  17.                 String[] packer={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
  18.                 String[] huase ={"♣","♥","♦","♠"};
  19.                 //拼牌!
  20.                 TreeMap<Integer, String> tr=new TreeMap<>();
  21.                 int i=0;
  22.                 for (int j = 0; j < packer.length; j++) {
  23.                         for (int j2 = 0; j2 < huase.length; j2++) {
  24.                                 tr.put(i++, huase[j2].concat(packer[j]));
  25.                         }
  26.                 }
  27.                 tr.put(i++, "☀");        //小王
  28.                 tr.put(i++, "☀☀");        //大王
  29.                 Set<Integer> set=tr.keySet();        //键集合
  30.                 TreeSet<Integer> tree =new TreeSet<> (new Comparator<Integer>() {

  31.                         @Override
  32.                         public int compare(Integer i1, Integer i2) {
  33.                                 // TODO Auto-generated method stub
  34.                                 int i=i1-i2;
  35.                                 return i==0?0:i;
  36.                         }
  37.                 });
  38.                 ArrayList<Integer> al=new ArrayList<>();
  39.                 al.addAll(set);        //获得键集合
  40.                
  41.                 Collections.shuffle(al);        //打乱牌
  42.                 //发牌(4组)
  43.                 ArrayList<Integer> a2=new ArrayList<>();       
  44.                 ArrayList<Integer> a3=new ArrayList<>();       
  45.                 ArrayList<Integer> a4=new ArrayList<>();       
  46.                 ArrayList<Integer> a5=new ArrayList<>();       
  47.                 for (int j = 0; j < al.size(); j++) {
  48.                         if(j>=al.size()-3)
  49.                                 a2.add(al.get(j));
  50.                         else if(j%3==0)
  51.                                 a3.add(al.get(j));
  52.                         else if(j%3==1)
  53.                                 a4.add(al.get(j));
  54.                         else
  55.                                 a5.add(al.get(j));
  56.                 }
  57.                 洗牌(tree, a5);
  58.                 洗牌(tree, a2);
  59.                 洗牌(tree, a3);
  60.                 洗牌(tree, a4);
  61.        
  62.                 //看牌了
  63.                 看牌(a2,tr);
  64.                 System.out.println();
  65.                 看牌(a3,tr);
  66.                 System.out.println();               
  67.                 看牌(a4,tr);
  68.                 System.out.println();
  69.                 看牌(a5,tr);
  70.         }

  71.         private static void 洗牌(TreeSet<Integer> tree, ArrayList<Integer> al) {
  72.                 tree.clear();
  73.                 tree.addAll(al);
  74.                 al.clear();
  75.                 al.addAll(tree);
  76.         }

  77.         private static void 看牌(ArrayList<Integer> al,
  78.                         TreeMap<Integer, String> tr) {
  79.                 // TODO Auto-generated method stub
  80.                 for (Integer i : al) {
  81.                         System.out.print(tr.get(i)+"    ");
  82.                 }
  83.         }
  84. }
  85.        
复制代码



8 个回复

倒序浏览
卧槽 好多大牛
回复 使用道具 举报
真是太厉害了  我什么时候也能变成大牛
回复 使用道具 举报
好赞的样子
回复 使用道具 举报
求抱大腿。
回复 使用道具 举报
有用,谢谢了
回复 使用道具 举报
这个。。。这个。。。这个。。。。。
回复 使用道具 举报
看一看。。。。。。。。。。。
回复 使用道具 举报
还只能说完全看不懂,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马