分享一个模拟斗地主发牌的小代码!哈
有需要的可以看看!哈import java.util.ArrayList;
import java.util.Collections;
public class LianXi斗地主 {
public static void main(String[] args) {
//买牌
String[] arr = {"黑桃","红桃","方片","梅花"};
String[] arr2 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
ArrayList<String> box = new ArrayList<String>();
//添加每张牌
for (int i = 0; i < arr.length; i++) {
//获取每一个花色
for (int j = 0; j < arr2.length; j++) {
//获取每一个数
box.add(arr + arr2);
}
}
box.add("大王");
box.add("小王");
//System.out.println(box.size());
//洗牌
Collections.shuffle(box);
//System.out.println(box);
//发牌
ArrayList<String> 林志玲 = new ArrayList<String>();
ArrayList<String> 林心如 = new ArrayList<String>();
ArrayList<String> 舒淇 = new ArrayList<String>();
//留三张底牌给地主
for (int i = 0; i < box.size() - 3; i++) {
/*
*i = 0;i % 3 = 0;
*i = 1;i % 3 = 1;
*i = 2;i % 3 = 2;
*i = 3;i % 3 = 0;
*i = 4;i % 4 = 1;
*i = 5;i % 5 = 2;
*/
if(i % 3 == 0) {
林志玲.add(box.get(i));
}
else if(i % 3 == 1) {
林心如.add(box.get(i));
}
else if(i % 3 == 2) {
舒淇.add(box.get(i));
}
}
System.out.println("林志玲:" + 林志玲);
System.out.println("林心如:" + 林心如);
System.out.println("舒淇:" + 舒淇);
System.out.println("底牌:");
/* System.out.println(box.get(box.size() - 1));
System.out.println(box.get(box.size() - 2));
System.out.println(box.get(box.size() - 3));*/
for (int i = box.size() - 3; i < box.size(); i++) {
System.out.println(box.get(i));
}
}
} java吗{:301_997:} heoo 发表于 2017-6-27 23:36
java吗
嗯嗯呀 本帖最后由 dj1149 于 2017-6-27 23:55 编辑
不随机发牌有什么意思。
在发牌里加个
Random r = new Random(54);//我也不知道多少张牌
if(i % 3 == 0) {
林志玲.add(box.get(r.next()));
}
else if(i % 3 == 1) {
林心如.add(box.get(r.next()));
}
else if(i % 3 == 2) {
舒淇.add(box.get(r.next()));
}
哦 没去掉重复
那就多多加个数组
List<Double> nums = new ArrayList<Double>();
int temp = r.next();
temp.add(temp);
if(!nums.contains(temp)) { //判断不重复
//发牌
}
} 原来是Java啊 不是很懂,学学而已。 学习一下
页:
[1]