Java入门案例:模拟斗地主

代码段:

package MONI_ddz;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

public class ddz_1plus {
    public static void main(String[] args) {
        //创建牌盒
        ArrayList<String> al = new ArrayList<String>();
        //装牌
        //创建牌型
        String[] s1 = {"♥","♠","♣","♦"};
        String[] s2 = {"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
        for(String a:s1){
            for(String b:s2){
                al.add(a + b);
            }
        }
        al.add("大王");
        al.add("小王");
        //洗牌
        Collections.shuffle(al);
        //创建三个玩家和底牌集合
        Set<String> w1 = new HashSet<String>();
        Set<String> w2 = new HashSet<String>();
        Set<String> w3 = new HashSet<String>();
        Set<String> w4 = new HashSet<String>();
        //发牌
        for (int x = 0;x<al.size();x++) {
            //获取每一张牌
            String s = al.get(x);
            //如果是最后三张牌就添加到底牌集合中
            if(x>=al.size()-3){
                w4.add(s);
                //用索引对3取余等于0,1,2的方式按顺序发牌,X%3==2可以省略不写
            }else if(x%3==0){
                w1.add(s);
            }else if(x%3==1){
                w2.add(s);
            }else {
                w3.add(s);
            }
        }
        //看玩家的牌
        lookpoker("w1" , w1);
        lookpoker("w2" , w2);
        lookpoker("w3" , w3);
        //看底牌
        lookpoker("w4" , w4);
    }
    //创建看牌方法
    public static void lookpoker(String name,Set<String> s){
        System.out.println(name  +"的牌是:");
        for(String a: s){
            System.out.print(a + " ");
        }
        System.out.println();
    }
}

洗牌使用了集合元素随机排序的方法,所以每次输出的结果不相同

输出结果:

w1的牌是:
♥Q ♦4 ♣Q ♥3 ♣2 ♠J 大王 ♥9 ♣8 ♠7 ♦6 ♦7 ♠2 ♦9 ♠3 ♣A ♠9 
w2的牌是:
♦J ♣J ♦2 ♣K ♠4 ♠5 ♠6 ♣9 ♥5 ♥6 ♠Q ♦10 ♥7 ♥8 小王 ♥A ♠8 
w3的牌是:
♥J ♦K ♥K ♦3 ♥2 ♦5 ♥4 ♦Q ♠K ♣7 ♣10 ♥10 ♣3 ♣4 ♦8 ♣5 ♦A 
w4的牌是:
♠A ♣6 ♠10 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劉鎠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值