斗地主--Java

斗地主设计思路:

  1. 准备牌:54张牌,存储到一个集合中

特殊牌:大王,小王

其他52张牌:定义一个数组/集合,存储4种花色:♠,♥,♣,♦

                      定义一个数组/集合,存储13个序号:2,A,K,,,,,,3

循环镶套遍历俩个数组/集合,组装52张牌:♠2,♠A,,,,,,,

  1. 洗牌

使用集合工具类Collections的方法

Static void shuffle(List<?> list)使用指定的随机源对指定列表进行置换

会随机的打乱集合中元素的顺序

  1. 发牌

要求:1人17张牌,剩余3张作为底牌,一人一张轮流发牌:集合的索引(0-53)%3

定义4个集合存储3个玩家的牌和底牌

  1. 看牌

直接打印集合,遍历存储玩家和底牌的集合

package com.itheima.demo.demo1;

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

/*斗地主案例:
1.准备牌
2.洗牌
3.发牌
4,看牌
*/
public class doudizhu {
    public static void main(String[] args) {
        //1.准备牌
        //定义一个存储54张牌的arrayList集合,泛型使用String
        ArrayList<String> poker=new ArrayList<>();
        //定义俩个数组,一个花色,一个数字
        String [] colors={"♠","♥","♣","♦"};
        String [] numbers ={"2","A","k","q","j","10","9","8","7","6","5","4","3"};
        //把大小王存储到poker里
        poker.add("大王");
        poker.add("小王");
        //2.洗牌
        //先把所有牌放入一个集合中
        for (String number : numbers) {
            for (String color : colors) {
                poker.add(color+number);
                //System.out.print(poker);
            }
        }
       // System.out.print(poker);
        //调用集合的工具类collection中的方法进行洗牌
        Collections.shuffle(poker);
        //System.out.print(poker);
        //3.发牌
        //定义4个集合代表3个玩家和一个底牌
        ArrayList<String> wanjia1=new ArrayList<>();
        ArrayList<String> wanjia2=new ArrayList<>();
        ArrayList<String> wanjia3=new ArrayList<>();
        ArrayList<String> dipai=new ArrayList<>();
        //然后发牌,最后三张给底牌,前51张用模3,0给玩家1,1给玩家2,2给玩家三
        for(int i=0;i<poker.size();i++){
            String p=poker.get(i);
            if(i>=51){
                dipai.add(p);
            }else if(i%3 ==0){
                wanjia1.add(p);
            }else if(i%3 ==1){
                wanjia2.add(p);
            }else if(i%3 ==2){
                wanjia3.add(p);
            }
        }
        //System.out.print(dipai);
        //4看牌
        System.out.println("小海"+wanjia1);
        System.out.println("贺哥"+wanjia2);
        System.out.println("娅姐"+wanjia3);
        System.out.println("底牌"+dipai);
    }


}

猜你喜欢

转载自blog.csdn.net/qq_38798147/article/details/108990484
今日推荐