三人斗地主(自动发牌程序)

编写一个自动发牌程序,模拟三人斗地主的摸牌场景。首先要给出提示,谁首先开始摸牌,并且摸牌要和现实摸牌一样,三人循环摸牌,最后还要剩余三张底牌,同时给出地主牌,摸到地主牌的玩家拥有三张底牌。三张底牌三人都可以看到。当三张底牌派发给地主后提示玩家摸牌结束 

实现思路

      (1)首先将一副牌的四种花色和对应的牌面值随机组合放进Set集合,因为Set集合是非重复集合,所以无需考虑重复的问题,另外,因为每个牌面值出现的次数只能是四次,所以,当该牌面值出现了四次以后,将该牌面删除。

        (2)获取洗牌结束的牌组(链表,用Set集合作为初始化数据集),随机额抽取三张牌,作为底牌,不对玩家展示,并从剩余的牌组中随机选取一个张牌,作为地主牌,对所有人展示但不移动其位置。

        (3)顺序循环发牌,直到牌组没有牌为止,将底牌展示并发给地主。提示玩家发牌结束。

 

 

 

实现效果:
地主牌是:heart 9
派牌开始!
...
派牌结束!
底牌是:[spade 6, diamond 4, spade King]
地主是玩家A
玩家A的手牌是:
【 heart Queen, heart Jack, club Ace, heart 6, heart 9, heart 5, 
club Queen, diamond King, diamond 6, diamond 8, club 3, club 6, 
club 8, club Jack, heart 10, spade 8, spade 9, spade 6, 
diamond 4, spade King 】
玩家B的手牌是:
【 diamond Jack, spade Queen, spade Ace, heart 7, heart 8, heart 2, 
club 10, diamond 2, diamond 5, diamond 9, club 4, heart Ace, 
club 9, spade 2, spade 3, spade 10, RED JOKER 】
玩家C的手牌是:
【 BLACK JOKER, diamond Queen, diamond 10, club King, heart 3, heart 4, 
diamond 3, diamond 7, diamond Ace, club 2, club 5, club 7, 
heart King, spade 4, spade 5, spade 7, spade Jack 】

Poker类部分

package com.qianfeng.test;
/**
 * 
 * @author Lichangkun
 *
 */
public class Poker {
	private String sizes;
	private String number;
	public Poker() {
		super();
	}
	public Poker(String sizes, String number) {
		super();
		this.sizes = sizes;
		this.number = number;
	}
	public String getSizes() {
		return sizes;
	}
	public void setSizes(int num) {
		switch (num) {
		case 1:
			sizes="heart";
			break;
		case 2:
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值