Java-斗地主游戏(部分功能)

需求:在启动游戏房间的时候,应该提前准备好54张牌,完成洗牌、发牌、牌排序、逻辑。

文章目录


前言

例如:本文就Java基础写出的斗地主游戏的部分功能

一、分析

当系统启动的同时需要准备好数据的时候,就可以用静态代码块了。

洗牌就是打乱牌的顺序。

定义三个玩家、依次发出51张牌 。

给玩家的牌进行排序(拓展) 。

输出每个玩家的牌数据。

二、使用步骤

1.代码展示

定义牌类的变量及方法代码如下:

package com.atwuliyuan.d3_test;

public class cardon {
    private String color;
    private String size;
    private int index;

    public cardon() {
    }

    public cardon(String color, String size,int index) {
        this.color = color;
        this.size = size;
        this.index=index;
    }

    public cardon(String s, String s1) {
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    @Override
    public String toString() {
        return color+size;
    }
}

1.做牌 2.洗牌 3.定义三个玩家 4.发牌 5.看牌,代码如下:

package com.atwuliyuan.d3_test;

import java.security.AllPermission;
import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * @Author: Yuan
 * @Description: 在启动游戏房间的时候,应该提前准备好54张牌,完成洗牌、发牌、牌排序、逻辑。
 * @Param:
 * 功能:1.做牌2.洗牌3.定义三个玩家4.发牌5.排序(拓展,了解,作业)6.看牌
 * @return:  
*/ 
public class card {
    //定义一个存储54张牌的对象
    public static List<cardon> cards=new ArrayList<>();
    static {
        String[] sizes={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        String[] colors={"♠","♥","♣","♦"};
        int index=0;//记录牌的大小
        //结合点数和花色
        for (String size : sizes) {
            for (String color : colors) {
                //封装成一个牌对象
                cardon ca = new cardon(color, size,index);
                //存入到集合容器中去
                cards.add(ca);
            }
        }
                //大小王存入到集合容器
                cardon ca1=new cardon("🃏","",++index);
                cardon ca2=new cardon("🃏","",++index);
                Collections.addAll(cards,ca1,ca2);
                System.out.println(cards);
        System.out.println("***********************");
            }
    public static void main(String[] args) {
        //洗牌
        Collections.shuffle(cards);
        System.out.println(cards);
        //发牌
        List<cardon> wanjiayi=new ArrayList<>();
        List<cardon> wanjiaer=new ArrayList<>();
        List<cardon> wanjiasan=new ArrayList<>();
        //开始发牌--从牌中取51张牌发给三个玩家,剩余三张作为底牌
        for (int i = 0; i < cards.size()-3; i++) {
            //取牌对象
            cardon c=cards.get(i);
            if(i%3==0){
                wanjiayi.add(c);
            }else if(i%3==1){
                wanjiaer.add(c);
            }else if(i%3==2){
                wanjiasan.add(c);
            }
        }
        //拿到最后三张底牌(把最后三张底牌取成一个集合)
        List<cardon> lastThreeCard =cards.subList(cards.size()-3,cards.size() );
        //给玩家的牌排序(从大到小)
        System.out.println("玩家一"+wanjiayi);
        System.out.println("玩家二"+wanjiaer);
        System.out.println("玩家三"+wanjiasan);
        System.out.println("底牌"+lastThreeCard);
    }




}

2.结果展示


 

总结

这里对文章进行总结:
以上就是今天做的内容,本文仅仅简单介绍了斗地主游戏的做牌、洗牌、发牌、看牌的过程,还有部分功能之后会更新。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值