JavaSE-16.3.1【案例-模拟斗地主(普通版本)】

复制代码
 1 package day7.lesson3;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 
 6 /*
 7 3 斗地主案例
 8 
 9 3.1 案例-模拟斗地主(普通版本)
10     需求
11         通过程序实现斗地主过程中的洗牌,发牌和看牌
12     思路
13         创建一个牌盒,即定义一个集合对象,用ArrayList实现
14         往牌盒里装牌
15         洗牌,即打乱,用工具类Collections的shuffle()实现
16         发牌,即遍历集合,给三个玩家发牌
17         看牌,即三个玩家分别遍历自己的牌
18  */
19 public class PokerDemo {
20     public static void main(String[] args) {
21         ArrayList<String> arrayList = new ArrayList<>();
22 
23         String[] colors = {"♦", "♣", "♥", "♠"};
24         String[] numbers = {"2", "3", "4", "5", "6", "7", "8", "9", "J", "Q", "K", "A"};
25 
26         for (String color: colors){
27             for (String number: numbers){
28                 arrayList.add(color + number);
29             }
30         }
31         arrayList.add("小王");
32         arrayList.add("大王");
33 
34         Collections.shuffle(arrayList);
35 
36         ArrayList<String> dipai0 = new ArrayList<>();
37         ArrayList<String> player1 = new ArrayList<>();
38         ArrayList<String> player2 = new ArrayList<>();
39         ArrayList<String> player3 = new ArrayList<>();
40 
41         for (int i=0; i<arrayList.size(); i++){
42             String poker = arrayList.get(i);
43             if(i >= arrayList.size()-3){
44                 dipai0.add(poker);
45             }else if(i%3 == 0){
46                 player1.add(poker);
47             }else if(i%3 == 1){
48                 player2.add(poker);
49             }else if(i%3 == 2){
50                 player3.add(poker);
51             }
52         }
53 
54         lookPoker("玩家1", player1);
55         lookPoker("玩家2", player2);
56         lookPoker("玩家3", player3);
57         lookPoker("底牌", dipai0);
58 //        System.out.println(arrayList);
59     }
60 
61     public static void lookPoker(String name, ArrayList<String> arrayList){
62         System.out.println(name + "的牌:");
63         for (String poker: arrayList){
64             System.out.print(poker + " ");
65         }
66         System.out.println();
67     }
68 
69 }
复制代码

 

posted @   yub4by  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示