java实现⽃地主发牌案例简单易懂
案例分析endesa
1.买扑克
使⽤集合或者数组来定义扑克,这⾥有两张牌是特殊的⼤王和⼩王,这⾥咱们就使⽤数组来定义54张牌,定义两个数组⼀个装花⾊,⼀个装这些13张牌,⼤王和⼩王就直接使⽤集合中的add()⽅法添加到集合中即可,然后把牌放到ArrayList集合中。
2.洗牌
这⾥的洗牌就很简单了,就直接使⽤Collections类中的
public static void shuffle(List<?> list){}
该⽅法就是把集合中的元素顺序打乱的。因为⽤static修饰,所有可以直接使⽤类名调⽤不需要实例化
生命动力3.发牌
⾸先定义四个集合,前三个是给玩家的牌,还有⼀个集合是底牌,把集合中的元素打乱过后就可以发牌
了,因为这⾥需要有三张底牌,所有⾸先得⽤if判断语句来实现当循环到扑克只剩最后三张时把最后这三张给到底牌集合中。这⾥可以使⽤%3来实现给三个玩家发牌。当%3取模==0时给玩家1发牌,当%3取模==1时给玩家2发牌,当%3取模==2时给玩家3发牌。
4.看牌
就直接使⽤System.out.println();打印玩家的集合对象名即可
代码实现
文艺委员竞选稿
public static void main(string[] ages){
amplification//定义⼀个集合装扑克
ArrayList<String> puKe=new ArrayList<String>();
//定义两个数组
String[] colors={"♠","♥","♣","♦"};
String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
//先把两张特殊的牌(⼤王和⼩王)使⽤add()⽅法添加到集合puKe中。如果需要⽆能牌也可以再次添加
puKe.add("⼤王");
puKe.add("⼩王");
//puKe.add("替牌");
//使⽤双重for循环把两个数组装。得到52张牌
for(int i=;i<colors.length;i++){
for(int j=0;j<numbers.length;j++){
//得到数组colors和数组numbers组合
幼儿学英语视频puKe.add(colors[i]+numbers[j]);//[♠2,♠3,......]
}
}
//接下来就是第⼆步,洗牌了
//咱们可以直接使⽤Collections类中的shuffle(List<?> list)⽅法,把puKe这个装着扑克的集合作为参数传⼊该⽅法中,把扑克原来的顺序打乱; Collections.shuffle(puKe);
//第三步就是发牌了
//⾸先得定义三个玩家的集合,和⼀个底牌的集合。这样才好把puKe这个集合中的牌发到三给玩家集合中
ArrayList<String> player1=new ArrayList<String>();
ArrayList<String> player2=new ArrayList<String>();
ArrayList<String> player3=new ArrayList<String>();
ArrayList<String> diPai=new ArrayList<String>();
heigu
//直接使⽤for循环把集合puKe中的54张牌遍历出来
for(int i=0;i<puKe.length;i++){
//把遍历的每张牌赋值给p;
String (i);
//这⾥⾸先把底牌先弄到集合diPai中,可以使⽤if判断是否是最后三张,如果是就把最后三张放到集合diPai中
if(i>=51){
cinemagic//当集合puKe的下标⼤于等于51时,也就能说明这是最后三张扑克了;然后把p添加到集合第P哎当中即可
diPai.add(p);
//当集合puKe的下标取模3==0时给玩家⼀发牌
}el if(i%3==0){
player1.add(p);
dsf
//当集合puKe的下标取模3==1时给玩家⼀发牌
attention是什么意思
}el if(i%3==1){
player2.add(p);
//当集合puKe的下标取模3==2时给玩家⼀发牌
}el if(i%3==2){
player3.add(p);
}
}
//最后看牌就简单了
//直接System.out.ptintln();打印玩家集合即可,
System.out.ptintln("player1:"+player1);
System.out.ptintln("player2:"+player2);
美语三级跳System.out.ptintln("player3:"+player3);
System.out.ptintln("底牌:"+diPai);
}
这就是最后的输出结果,每次启动程序牌的顺序都会发⽣改变。
player1:[♣A, ♣9, ♠K, ♦10, ♥3, ♠2, ♠3, ♦3, ♦4, ♥10, ⼩王, ♣Q, ♣4, ♥4, ♥J, ♦J, ♠9] player1:[♣3, ♠5, ♥6, ♥9, ♣J, ♠7, ♥5, ♦9, ♠6, ♦A, ♠8, ⼤王, ♣5, ♠Q, ♦7, ♣K, ♦2] player3:[♥8, ♥A, ♦5, ♥7, ♠J, ♠10, ♥Q, ♥K, ♥2, ♣2, ♣8, ♠A, ♦6, ♣10, ♠4, ♦8, ♣6]底牌:[♣7, ♦K, ♦Q]