
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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗