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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.baidu.study;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class HitLandLord {
/**
  * @param 这是一个模拟发牌的小程序
  * @author xunmeng
  * @verion 1.0
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  // 创建扑克,并将牌放入牌盒
  String[] color = { "♠", "♥", "♣", "♦" };
  String[] num = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10",
    "J", "Q", "k" };
  ArrayList<String> arrl = new ArrayList<String>();
  arrl.add("BB");
  arrl.add("SB");
  for (String c : color) {
   for (String n : num) {
    arrl.add(c + n);
   }
  }
  // System.out.println(arrl);
  // 洗牌
  Collections.shuffle(arrl);
  // 创建三个玩家,并为其分牌
  ArrayList<String> A = new ArrayList<String>();
  ArrayList<String> B = new ArrayList<String>();
  ArrayList<String> C = new ArrayList<String>();
  for (int x = 0; x < arrl.size() - 3; x++) {
   if (x % 3 == 0) {
    A.add(arrl.get(x));
   } else if (x % 3 == 1) {
    B.add(arrl.get(x));
   } else if (x % 3 == 2) {
    C.add(arrl.get(x));
   }
  }
  // 模拟抢地主思路在最后,个人感觉过于繁琐,有好的方法可以告诉下,谢谢
  // 抢地主
  System.out.println("A B C 三人玩抢地主,开始");
  System.out.println("A: 抢地主");
  System.out.println("B: 我抢");
  System.out.println("C: 我抢");
  
  System.out.print("地主是--");
  ArrayList<String> dz = new ArrayList<String>();
  dz.add("A");
  dz.add("B");
  dz.add("C");
  Random r = new Random();
  int index = r.nextInt(3);
  System.out.println(dz.get(index));
  // 公布底牌
  ArrayList<String> dp = new ArrayList<String>();
  for (int x = arrl.size() - 3; x < arrl.size(); x++) {
   dp.add(arrl.get(x));
  }
  System.out.println("底牌是" + dp);
  // 将底牌分给地主
  if (index == 0) {
   A.addAll(dp);
  } else if (index == 1) {
   B.addAll(dp);
  } else if (index == 2) {
   C.addAll(dp);
  }
  // 明牌
  System.out.println("A的牌:" + A);
  System.out.println("B的牌:" + B);
  System.out.println("C的牌:" + C);
}
/*
  * 完成三人抢地主做,当地主出现,循环结束,break,程序结束方式为有人抢到地主 输出语句模拟抢地主过程,
  * 将要抢地主的人放入集合,然后随机取出一个,即为地主 switch随机方式选择几个人抢 1、三人都不抢 抢地主结束,重新开始, 2、只有一个人抢 A
  * B C 输出语句模拟抢的过程和结果,手动为地主加入底牌 3、只有二个人抢 AB AC BC switch(随机case), case1:
  * sop(AB抢) 定义AB集合随机取出一个 case2:sop(AC抢) case3:sop(BC抢) 4、三人都抢 代码已经实现
  */
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马