用Java实现简易扑克游戏

用Java实现简易扑克游戏

目标:实现组装牌,洗牌,发牌,和底牌的功能,每个人17张牌,最后留三张底牌
案例分析:
1.知识点:集合ArrayList,工具类Collections
2.需要用到的方法:ArrayList的add和get方法,用于在集合末尾增加元素和获得指定索引位置的元素
Collections集合工具类的shuffle方法,用于打乱集合元素的顺序实现洗牌的功能。
这里我是实现了一个扑克类,类中定义了装牌,洗牌,发牌的方法
话不多说,上代码:
import java.util.ArrayList;
import java.util.Collections;

/*
    Author:DS_loony
    Date:2020/5/25 10:03
*/
public class Poker {
//    用两个数组放牌的花色,和牌的大小
    private String[] color = {"♥", "♠", "♦", "♣"};
    private String[] number = {"2", "1", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3"};

//    装牌方法
    public ArrayList<String> fillPokers() {
//        创建集合用来装牌
        ArrayList<String> poker = new ArrayList<>();
//        用增强for循环把花色和牌的大小组装在一起放入集合中
        for (String c : color) {
            for (String n : number) {
                StringBuilder p = new StringBuilder(c + n);
                String s = p.toString();
                poker.add(s);
            }
        }
//        装两张特殊的牌,大王,小王
        poker.add("大王");
        poker.add("小王");
        return poker;
    }
//      定义一个洗牌方法
    public ArrayList<String> shufflePokers() {
        ArrayList<String> objects = fillPokers();
        ArrayList<String> poker = (ArrayList<String>) objects;
//        用Collections工具类的shuffle方法打乱集合的顺序
        Collections.shuffle(poker);
        return poker;
    }
//      定义一个发牌方法
    public ArrayList<String>[] sendPokers() {
//        创建一个数组存储三个人的牌和底牌
        ArrayList<String>[] person = new ArrayList[4];
        ArrayList<String> p1 = new ArrayList<>();
        ArrayList<String> p2 = new ArrayList<>();
        ArrayList<String> p3 = new ArrayList<>();
        ArrayList<String> dipai = new ArrayList<>();
        ArrayList<String> poker = shufflePokers();
        for (int i = 0; i < 54; i++) {
//            当剩余三张牌,放入底牌
            if (i >= 51) {
                dipai.add(poker.get(i));
//                用取余的方法分别给三个人发牌
            } else if (i % 3 == 0) {
                p1.add(poker.get(i));
            } else if (i % 3 == 1) {
                p2.add(poker.get(i));
            } else if (i % 3 == 2) {
                p3.add(poker.get(i));
            }
        }
        person[0] = p1;
        person[1] = p2;
        person[2] = p3;
        person[3] = dipai;
        return person;
    }
}

接下来用PlayPokers类实现功能
import java.util.ArrayList;

/*
    Author:DS_loony
    Date:2020/5/25 10:19
*/
public class PlayPokers {
    public static void main(String[] args) {
        Poker p=new Poker();
        ArrayList<String>[] poker = p.sendPokers();
        for (int i = 0; i < 4; i++) {
            System.out.println(poker[i]);
        }
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值