加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

集合框架-斗地主游戏

发布时间:2021-07-06 05:38:55 所属栏目:大数据 来源: https://blog.csdn.net/summoxj
导读:代码如下: import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; /* ?* 实现模拟斗地主的功能 ?* 1.组合牌 ?* 2.洗牌 ?* 3.发牌 ?* 4.看牌 ?*/ public class DouDiZhu { ?? ?public static void main(String[] args) { ??

代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
/*
?* 实现模拟斗地主的功能
?* 1.组合牌
?* 2.洗牌
?* 3.发牌
?* 4.看牌
?*/
public class DouDiZhu {
?? ?public static void main(String[] args) {
?? ??? ?//1.组合牌。? 创建Map集合,键是编号,值是牌
?? ??? ?HashMap<Integer,String> pooker=new HashMap<Integer,String>();
?? ??? ?//创建List集合,存储编号
?? ??? ?ArrayList<Integer> pookerNumber=new ArrayList<Integer>();
?? ??? ?//定义出13个点数的数组
?? ??? ?String[] numbers={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};
?? ??? ?//定义4个花色数组
?? ??? ?String[] colors={"?","?","?","◆"};
?? ??? ?//定义整数变量,作为键出现
?? ??? ?int index=2;
?? ??? ?//遍历数组,花色+点数的组合,存储到Map集合
?? ??? ?for(String number:numbers){
?? ??? ??? ?for(String color:colors){
?? ??? ??? ??? ?pooker.put(index,color+number);
?? ??? ??? ??? ?pookerNumber.add(index);
?? ??? ??? ??? ?index++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?//存储大王,和小王
?? ??? ?pooker.put(0,"大王");
?? ??? ?pookerNumber.add(0);
?? ??? ?pooker.put(1,"小王");
?? ??? ?pookerNumber.add(1);
?? ??? ?
?? ??? ?//洗牌,将牌的编号打乱
?? ??? ?Collections.shuffle(pookerNumber);
?? ??? ?System.out.println(pookerNumber);
?? ??? ?
?? ??? ?//发牌功能,将牌编号,发给玩家集合,底牌集合
?? ??? ?ArrayList<Integer> player1=new ArrayList<Integer>();
?? ??? ?ArrayList<Integer> player2=new ArrayList<Integer>();
?? ??? ?ArrayList<Integer> player3=new ArrayList<Integer>();
?? ??? ?ArrayList<Integer> bottompooker=new ArrayList<Integer>();
?? ??? ?
?? ??? ?//发牌采用的是集合索引%3
?? ??? ?for(int i=0;i<pookerNumber.size();i++){
?? ??? ??? ?//先将底牌做好
?? ??? ??? ?if(i<3){
?? ??? ??? ??? ?//存到底牌去
?? ??? ??? ??? ?bottompooker.add(pookerNumber.get(i));
?? ??? ??? ?}else if(i%3==0){
?? ??? ??? ??? ?player1.add(pookerNumber.get(i));
?? ??? ??? ?}else if(i%3==1){
?? ??? ??? ??? ?//索引上的编号,发给玩家2
?? ??? ??? ??? ?player2.add(pookerNumber.get(i));
?? ??? ??? ?}else if (i%3==2) {
?? ??? ??? ??? ?player3.add(pookerNumber.get(i));
?? ??? ??? ?}
?? ??? ?}
?? ??? ?//对玩家手中的编号排序
?? ??? ?Collections.sort(player1);
?? ??? ?Collections.sort(player2);
?? ??? ?Collections.sort(player3);
?? ??? ?
?? ??? ?//看牌,将玩家手中的编号,到Map集合中查找,根据键找值。? 定义方法实现
?? ??? ?System.out.print("玩家1:");
?? ??? ?look(player1,pooker);
?? ??? ?System.out.print("n玩家2:");
?? ??? ?look(player2,pooker);
?? ??? ?System.out.print("n玩家3:");
?? ??? ?look(player3,pooker);
?? ??? ?System.out.print("n底?? 牌:");
?? ??? ?look(bottompooker,pooker);
?? ?}
?? ?
?? ?public static void look(ArrayList<Integer> player,HashMap<Integer,String> pooker){
?? ??? ?//遍历ArrayList集合,获取元素,作为键,到集合Map中找值
?? ??? ?for(Integer key:player){
?? ??? ??? ?String value=pooker.get(key);
?? ??? ??? ?System.out.print(value+" ");
?? ??? ?}
?? ?}
}

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读