posts - 45,comments - 0,views - 4815
复制代码

 

 


import java.util.Arrays;
/** * @Author:Zxb * @Version:1.0 * @Date:2022/11/15-20:35 * @Since:jdk1.8 * @Description: */ public class Exercise3 { /* 1.结合数组+随机数实现斗地主发牌: 1)准备一副新的牌! --> 数组54! 2)洗牌! --> 打乱数组中存储的顺序! 3)发牌! 54 - 17 *3 = 3 --> 每个人都是一个数组! 可以一人一张! 一人发17张! 4)选地主! 5)将底牌给地主! --> 地主的数组进行扩容操作! 展示每个人的手牌! */ public static void main(String[] args) { String[] poker = {"♥A","♠A","♣A","♦A","♥2","♠2","♣2", "♦2","♥3","♠3","♣3","♦3", "♥4","♠4","♣4","♦4", "♥5","♠5","♣5","♦5", "♥6","♠6","♣6","♦6", "♥7","♠7","♣7","♦7","♥8","♠8","♣8","♦8", "♥9","♠9","♣9","♦9","♥10","♠10","♣10","♦10","♥J","♠J","♣J","♦J", "♥Q","♠Q","♣Q","♦Q","♥K","♠K","♣K","♦K","大王","小王"}; //随机洗牌 for (int i = 0; i < poker.length; i++) { int random=(int)(Math.random()*poker.length); String temp =poker[random]; poker[random]=poker[i]; poker[i]=temp; } String[] a=new String[17]; String[] b=new String[17]; String[] c=new String[17]; int x=0,y=0,z=0; /* 思路2: a:0,3,6,9.... b:1,4,7,10... c:2,5,8,11... 发到索引50; 51,52,53为地主牌 for (int j = 0; j < poker.length - 3; j++) { if (j % 3 == 0) { a[x++] = poker[j]; } else if (j % 3 == 1) { b[y++] = poker[j]; } else if (j % 3 == 2) { c[z++] = poker[j]; } } */ for(int i=poker.length-1;i>poker.length-18;i--){ a[x]=poker[i]; x++; }//后17张牌给a poker=Arrays.copyOf(poker,poker.length-17);//拿掉后17张牌,37 for(int i=poker.length-1;i>poker.length-18;i--){ b[y]=poker[i]; y++; } poker=Arrays.copyOf(poker,poker.length-17); for(int i=poker.length-1;i>poker.length-18;i--){ c[z]=poker[i]; z++; } poker=Arrays.copyOf(poker,poker.length-17);//还剩3张牌 //随机地主 int randomIndex=(int)(Math.random()*3); switch(randomIndex){ case 0: a=Arrays.copyOf(a,a.length+3); for (int j = 0; j < poker.length; j++) { a[x++]=poker[j]; } System.out.println("地主是a"); break; case 1: b=Arrays.copyOf(b,b.length+3); for (int j = 0; j < poker.length; j++) { b[y++]=poker[j]; } System.out.println("地主是b"); break; case 2: c=Arrays.copyOf(c,c.length+3); for (int j = 0; j < poker.length; j++) { c[z++]=poker[j]; } System.out.println("地主是c"); break; } System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); System.out.println(Arrays.toString(c)); /* if (randomIndex==0){ a=Arrays.copyOf(a,a.length+3); for(int i=0;i<3;i++){ a[a.length-1-i]=poker[i]; } System.out.println("地主是a"); System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); System.out.println(Arrays.toString(c)); }else if(randomIndex==1){ b=Arrays.copyOf(b,b.length+3); for(int i=0;i<3;i++){ b[b.length-1-i]=poker[i]; } System.out.println("地主是b"); System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); System.out.println(Arrays.toString(c)); }else{ c=Arrays.copyOf(c,c.length+3); for(int i=0;i<3;i++){ c[c.length-1-i]=poker[i]; } System.out.println("地主是c"); System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); System.out.println(Arrays.toString(c));*/ } }
复制代码

 

 

 集合版:day16

复制代码
package com.javasm.homework.test;

import com.javasm.homework.action.StudentAction;
import com.javasm.homework.bean.Poke;
import com.javasm.homework.bean.User;

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


public class PokeTest {
    //一副牌
    private static List<Poke> pokeList = new ArrayList<>(54);
    //多个用户
    private static List<User> userList = new ArrayList<>(10);

    static {
        //花色
        String[] colors = {"", "", "", ""};
        //牌面
        String[] values = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
        //大小王
        String[] kings = {"大王", "小王"};
        //初始化数据
        for (String color : colors) {
            for (String value : values) {
                Poke poke = new Poke(color, value);
                pokeList.add(poke);
            }
        }
        //大小王
        pokeList.add(new Poke("", kings[0]));
        pokeList.add(new Poke("", kings[1]));

        //洗牌
        Collections.shuffle(pokeList);
        //初始化用户
        createUser();
    }

    /**
     * 创建用户并发牌
     */
    private static void createUser() {
        /*
            发牌:依次发牌! 发一张少一张!
            3个人
            17张
         */
        for (int i = 0; i < 3; i++) {
            //创建一个用户
            System.out.println("请输入第" + (i + 1) + "个用户的名称:");
            String inputName = StudentAction.scanner.next();

            User user = new User(inputName, null);
            //一副手牌
            List<Poke> userPokeList = new ArrayList<>(10);
            for (int j = 0; j < 17; j++) {
                int index = (int) (Math.random() * pokeList.size());
                userPokeList.add(pokeList.remove(index));
            }
            user.setUserPokeList(userPokeList);
            //存入集合中
            userList.add(user);
        }
    }

    /**
     * 测试
     *
     * @param args
     */
    public static void main(String[] args) {
        //第一个用户是地主
        User user1 = userList.get(0);
        user1.getUserPokeList().addAll(pokeList);
        //修改第一个人角色
        user1.setRole(1);

        System.out.println();
        for (User user : userList) {
            System.out.println(user);
        }

        ArrayList list = new ArrayList(10);
        list.subList()
    }
}
复制代码
复制代码
package com.javasm.homework.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class User {
    //名称
    private String name;
    //角色[0、农民 1、地主]
    private int role;
    //手牌
    private List<Poke> userPokeList;

    public User(String name, List<Poke> userPokeList) {
        this.name = name;
        this.userPokeList = userPokeList;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", role=" + (role == 0 ? "农民" : "地主") +
                ", userPokeList=" + userPokeList +
                '}';
    }
}
复制代码
复制代码
package com.javasm.homework.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class Poke {
    //花色
    private String color;
    //牌面
    private String value;

    @Override
    public String toString() {
        return this.color + this.value;
    }
}
复制代码

 

posted on   小贤看世界  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示