> 文档中心 > 通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)

通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)

  • 需求:通过程序实现斗地主过程中的洗牌,发牌和看牌

  • 思路:

  1. 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现
  2. 往牌盒里面装牌
  3. 洗牌,也就是说把牌打撒,用Collections的shuffle()方法实现
  4. 发牌,也就是遍历集合,给三个玩家发牌
  5. 看牌,也就是三个玩家分别遍历自己的牌

以代码的方式实现

package Demo;import java.util.*;public class Demo {    public static void main(String[] args) { //创建ArraysList集合对象 ArrayList<String> s = new ArrayList<>(); //往牌盒装牌 /*     ♦,♣,♥,♠     2,3,4,5,6,7,8,9,10,J,Q,K     大王,小王  */ String a="♦,♣,♥,♠"; String b="2,3,4,5,6,7,8,9,10,J,Q,K"; String[] aa = a.split(","); String[] bb = b.split(","); for (String aaa : aa) {     for (String bbb : bb) {  s.add(aaa+bbb);     } } s.add("大王"); s.add("小王"); Collections.shuffle(s);//随机打乱集合顺序 //创建3个人的集合,s1,s2,s3 为人物    s6为留三张牌 ArrayList<String> s1 = new ArrayList<>(); ArrayList<String> s2 = new ArrayList<>(); ArrayList<String> s3 = new ArrayList<>(); ArrayList<String> s6 = new ArrayList<>(); //通过for循环将"大集合元素分给到小集合" for (int j = 0;j<s.size();j++) {     String s5 = s.get(j);     //  比如 一份蛋糕给6人依次分的话,则  J%6==余数(从0~5) 依次进行给     if (j>=s.size()-3){  s6.add(s5);     }else if (j%3==0){  s1.add(s5);     }else if (j%3==1){  s2.add(s5);     }else if (j%3==2){  s3.add(s5);     } } System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(s6);    }}

输出的结果
[♠7, ♠4, ♠5, ♠6, ♠9, ♠K, ♥6, ♦K, ♦5, ♣10, ♥4, ♠2, ♠8, ♦2, ♣6, ♣9]

[♦8, ♥3, ♥9, ♥5, ♦9, ♠Q, ♠J, ♣8, ♥K, ♠10, ♣3, ♦J, ♣K, ♥10, ♦Q, ♦3]

[♥Q, ♥2, ♦7, ♣J, ♥8, ♣4, ♥7, ♣7, ♣5, ♣2, ♠3, 小王, ♦10, ♣Q, ♥J]

[♦6, ♦4, 大王]

代码迷惑原因:

柏维怡我爱你
柏维怡我爱你