黑马程序员技术交流社区
标题:
模拟斗地主发牌
[打印本页]
作者:
wx_J25HxI5W
时间:
2015-6-23 22:56
标题:
模拟斗地主发牌
有更好方法的大神,分享一下思路,或者代码,非常感谢。
代码如下,仅供参考。觉得注释少了的童鞋可以提问。
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
/**
* 需求:创建一副扑克牌,洗牌,发牌
* 思路:扑克牌一共54张,留下3张地主牌,将剩下的51张牌等分给3个对象。
* @author
*/
public class qqDouDiZhu {
public static void main(String[] args) {
/**定义一个集合,用于接收一整副扑克牌*/
LinkedList<String> ld = new LinkedList<String>();
/**定义三个字符串,用于接收发完后的三份扑克牌*/
LinkedList<String> str1 = new LinkedList<String>();
LinkedList<String> str2 = new LinkedList<String>();
LinkedList<String> str3 = new LinkedList<String>();
while(true){
Scanner sn = new Scanner(System.in);
System.out.println("1:开始斗地主");
System.out.println("2:退出斗地主");
System.out.println("请输入数字");
String st = sn.nextLine();
switch(st){
case "1":
/**定义两个数组,用来创建一副扑克牌*/
String[] colors = {"黑桃","红桃","梅花","方片"};
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
/**循环装牌*/
for(String co : colors){
for(String nb : numbers){
ld.add(co.concat(nb));
}
}
ld.add("大鬼");
ld.add("小鬼");
/**洗牌*/
Collections.shuffle((LinkedList<String>) ld);
/**打印洗牌之后的顺序,用于验证发牌的顺序是否正确*/
System.out.println("洗牌之后的顺序:"+ld);
/**发牌*/
for(int x=1; x<18; x++){
str1.add(ld.removeFirst());
str2.add(ld.removeFirst());
str3.add(ld.removeFirst());
}
System.out.println("地主str1的牌是:"+ str1);
System.out.println("农民str2的牌是:"+ str2);
System.out.println("农民str3的牌是:"+ str3);
System.out.println("地主底牌:"+ld);
case"2":
break;
}
}
}
}
作者:
陈小林
时间:
2015-6-23 22:58
表示现在还看不懂呀
作者:
遗失丨美好
时间:
2015-6-23 23:43
支持一个 大半夜还在为了技术分而奋斗着 加油 骚年 我看好你
作者:
牛奋
时间:
2015-6-23 23:50
牛逼啊,大神带我飞。
作者:
lizhi1817
时间:
2015-6-24 00:06
学习了
作者:
马也keyboard
时间:
2015-6-24 00:09
挺有意思的 学习了
作者:
hellotaomi
时间:
2015-6-24 17:04
楼主,为什么要在主函数类的前面加public(public class qqDouDiZhu)呢?我运行的时按Ctrl+C退出运行时会报错:Exception in thread "main" java.lang.NoClassDefFoundError,将public删除后就OK了。求解释
作者:
fanxin_meng
时间:
2015-6-24 17:21
支持 ,支持
作者:
八戒
时间:
2015-6-24 17:51
学习ing................................
作者:
tinibuzhi
时间:
2015-6-24 18:33
学习一下
作者:
王冲6060
时间:
2015-6-24 18:47
学习了!
作者:
Foundmoon
时间:
2015-6-24 21:05
最好搞个出牌规则
作者:
一口老郭
时间:
2015-6-24 21:37
表示看不懂啊
作者:
liming_heima
时间:
2015-6-24 21:47
主思路挺不错的。
作者:
贾森
时间:
2015-6-24 22:52
这个有点意思
作者:
小朱
时间:
2015-6-24 23:05
挺不错的额
作者:
金亮0602
时间:
2015-6-24 23:09
还需要好好琢磨,刚接触集合
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2