当前位置: 首页 > news >正文

黑马教程强化day2-4

目录

  • 综合案例

综合案例

做一个简易版斗地主游戏
分析业务需求

  • 1.总共有54张牌
  • 2.点数:”3“,到”K”,“A”,“2“
  • 3.花谢:四种
  • 4.大小王
  • 5.斗地主:发出51张牌,剩下三张做底牌

主类代码:

public class total1 {public static void main(String[] args) {//1.每张牌都是一个对象,定义牌类//2.游戏房间也是一个对象:定义房间类(54张牌,开始启动)Room room =new Room();room.start();}
}

Card类代码:

package com.item.totalExample;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
public class Card {private String size;private String color;private int num;//大小@Overridepublic String toString() {return size+color;}
}

Room类代码:

package com.item.totalExample;
import java.util.*;
public class Room {//1.准备好54张牌,给房间使用,定义一个集合容器装54张牌private List<Card> cards=new ArrayList<>();//2.初始化54张牌进去房间{//3.准备点数String[] sizes={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//4.准备花色String[] colors={"♠","♥","♣","♦"};//5.组合点数和花色称为牌对象,加入到集合中去。int num=0;for(String size:sizes){num++;for(String color:colors){//6创建牌对象//7添加到集合中cards.add(new Card(color,size,num));}}cards.add(new Card("","🃏",++num));//小王cards.add(new Card("","👲",++num));//大王System.out.println("新牌是:"+cards);}public void start(){//8.洗牌,随机打乱集合中的顺序Collections.shuffle(cards);System.out.println("洗牌后:"+cards);//9.发牌:定义三个玩家Map<String,List<Card>> players=new HashMap<>();List< Card>lhc=new ArrayList<>();players.put("张三",lhc);List< Card>lhs=new ArrayList<>();players.put("李四",lhs);List<  Card>lhz=new ArrayList<>();players.put("王五",lhz);//只发出51张,留三张for(int i=0;i<cards.size()-3;i++){Card card = cards.get(i);//判断当前这张牌发给谁if(i%3==0) {lhc.add(card);}else if(i%3==1){lhs.add(card);}else{lhz.add(card);}}//10.对牌排序,对牌对象进行排序sortCards(lhc);sortCards(lhs);sortCards(lhz);//11.拿走最后三种底牌List<Card> last=cards.subList(cards.size()-3,cards.size());//51,52,53System.out.println("底牌是:"+last);//12.抢地主;把集合直接给玩家lhz.addAll(last);//13.看牌,遍历Map集合for(Map.Entry<String,List<Card>> entry:players.entrySet()){//获取到玩家名称String name = entry.getKey();//获取到玩家牌List<Card> list = entry.getValue();//遍历玩家牌System.out.println(name+":"+list);}}private void sortCards(List<Card> cards) {Collections.sort(cards, new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {//1.先比较点数return o2.getNum()-o1.getNum();}});}
}
http://www.xdnf.cn/news/1009405.html

相关文章:

  • Python爬虫实战:快手数据采集与舆情分析
  • AIAgent,Prompt,MCP是什么?
  • Eplan2022更改用户界面颜色
  • SAP会计凭证抬头增强
  • 【学习笔记】H264视频编码
  • python虚拟环境
  • JavaScript 中 apply、call 和 bind 方法的手写实现
  • cf1742D
  • <论文>自注意力序列推荐模型SASRec
  • 负氧离子监测站在景区的作用
  • 详解HarmonyOS NEXT系统中ArkTS和仓颉的混合开发
  • sqlmap 的基本用法
  • 树莓派-ubuntu 24.04开启桌面远程访问
  • MD从入门到荒废-Markdown文件插入多个动态徽章
  • linux驱动开发(6)-内核虚拟空间管理
  • python 在基因研究中的应用,博德研究所:基因编辑
  • JDK各个版本新特性
  • 指针01 day13
  • Python 基础语法 (2)【适合 0 基础】
  • SM4 与 AES 在 GPU 上的性能比较
  • 一分钟了解MCP
  • AES加密
  • Huggingface Transformer 使用指南2-开发自定义模型
  • apdl细节
  • TypeReference指定反序列化获取响应对象
  • 小黑享受思考心流躲避迷茫:92. 反转链表 II
  • 2025年度重点专项项目申报指南的通知公布!
  • ADC(模数转换)
  • 【大模型应用开发】基于langchain的大模型调用及简单RAG应用构建
  • 使用argocd部署nginx