JAVA小游戏 --------模拟斗地主发牌

模拟斗地主,不多说,直接上代码,里面有详细的注释

package com.heima.test;

import java.util.ArrayList;
import java.util.Collections;

public class Test2 {

	public static void main(String[] args) {
			/*
	    * 需求分析
	    * 1.准备54张牌,存储到一个集合中
	    *   特殊牌:大小王
	    *   其他52张牌:定义一个数组/集合存储4中花色
	    *               定义一个数组/集合存储2 A K...3
	    * 循环遍历组合两个数组/集合,组装52张牌
	    * 2.洗牌;使用集合工具类Collections的方法shuffle(List<?> list)随机打乱集合元素的数据
	    * 3.发牌:要求一人17张牌,剩余三张作为底牌,一人一张轮流发牌:集合的索引%3
	    *         定义4个集合,存储3个玩家的牌和底牌:索引>=51就是底牌
	    * 4.看牌:直接打印集合/遍历集合
	    * */
	    public static void main(String[] args) {
	        //定义54张牌的集合
	        List<String> poker = new ArrayList<>();
	        // 定义一个数组/集合存储4中花色
	        String[] colors = {"♥", "♠", "♦", "♣"};
	        //定义一个数组/集合存储2 A K...3
	        String[] nums = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
	        //存储大小王
	        poker.add("大王");
	        poker.add("小王");
	        //循环遍历组合两个数组/集合,组装52张牌
	        for (String num : nums) {
	            for (String color : colors){
	                //将52张牌也存储到poker集合中
	                poker.add(color+num);
	            }
	        }
	        //2.洗牌;使用集合工具类Collections的方法shuffle(List<?> list)随机打乱集合元素的数据
	        Collections.shuffle(poker);
	        //定义4个集合,存储3个玩家的牌:
	        List<String> one = new ArrayList<>();
	        List<String> two = new ArrayList<>();
	        List<String> three = new ArrayList<>();
	        List<String> dipai = new ArrayList<>();
	        //要求一人17张牌,剩余三张作为底牌,一人一张轮流发牌:集合的索引%3
	        for (int i = 0; i < poker.size(); i++) {
	            if (i < 51){  //51个正常牌
	                if (i % 3 == 0){
	                    one.add(poker.get(i));
	                }else if (i % 3 == 1){
	                    two.add(poker.get(i));
	                }else {
	                    three.add(poker.get(i));
	                }
	            }else {
	                dipai.add(poker.get(i));
	            }
	        }
	        //4.看牌:直接打印集合/遍历集合
	        System.out.println("张三的牌:" + one);
	        System.out.println("李四的牌:" + two);
	        System.out.println("王五的牌:" + three);
	        System.out.println("底牌:" + dipai);
	    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值