ITPub博客

首页 > IT职业 > IT生活 > Java--简易扑克牌游戏

Java--简易扑克牌游戏

IT生活 作者:stein_ah 时间:2021-09-09 09:00:51 0 删除 编辑
package com.test.demo;

import java.util.*;

/*
 * 玩家类
 */

public class Player {
    private int ID;
    private String name;
    private List handCards;     //有序 手牌List

    public Player(int ID,String name)
    {
        this.ID = ID;
        this.name = name;
        this.handCards = new ArrayList();
    }

    public List getHandCards()
    {
        return handCards;
    }

    public void setHandCards(List handCards)
    {
        this.handCards = handCards;
    }

    public int getID()
    {
        return ID;
    }
    public String getName()
    {
        return name;
    }
}

package com.test.demo;

import java.util.*;

public class PokerCard implements Comparable {
    /*
     * 扑克牌类
     */
    private String Color;
    private String Points;

    public PokerCard(String Color,String Points)
    {
        this.Color = Color;
        this.Points = Points;
    }
    public String getCardColor()
    {
        return Color;
    }
    public String getCardPoints()
    {
        return Points;
    }
    public String getCardInfo()
    {
        return Color + Points;
    }

    @Override
    public int compareTo(PokerCard o) {
        final String[] cardPointsArr = {"A","2","3","4","5","6","7","8","9","10"
                ,"J","Q","K"};
        final String[] cardColorArr = {"","","",""};
        List cardPointsList = Arrays.asList(cardPointsArr);
        List cardColorList = Arrays.asList(cardColorArr);
        int thisPointIndex = cardPointsList.indexOf(Points);
        int comparaPointIndex = cardPointsList.indexOf(o.Points);
        if(thisPointIndex == comparaPointIndex)
        {
            int thisColorIndex = cardColorList.indexOf(Color);
            int comparaColorIndex = cardColorList.indexOf(o.Color);
            return thisColorIndex - comparaColorIndex;
        }
        else
        {
            return thisPointIndex - comparaPointIndex;
        }
    }

}

package com.test.demo;

import java.util.*;

public class PlayCardDemo {

    private final String[] cardPoints = {"A","2","3","4","5","6","7","8","9","10"
            ,"J","Q","K"};
    private final String[] cardColor = {"","","",""};
    private List pcs;//定义一副牌
    private List players;//定义一群玩家
    private List playersNewList;//定义一群手牌排序后的玩家
    private Scanner in;   

    public PlayCardDemo()
    {
        pcs = new ArrayList();
        players = new ArrayList();
    }

    private void cratePokerCards()
    {
        for(int i = cardColor.length - 1;i >= 0;i--)
        {
            for(int j = 0;j ();
        for(Player p : players)
        {
            Player playNew = new Player(p.getID(),p.getName());
            ListpcNewList = new ArrayList();
            for(PokerCard pc:p.getHandCards())
            {
                pcNewList.add(pc);
            }
            playNew.setHandCards(pcNewList);
            playersNewList.add(playNew);
        }
    }

    /*
     * 判断输赢
     */

    private void getWinner()
    {
        List maxCards = new ArrayList();
        for(Player p : playersNewList)
        {
            maxCards.add(p.getHandCards().get(0));
        }
        Collections.sort(maxCards);
        PokerCard maxCard = maxCards.get(0);
        System.out.println("最大的牌是"+maxCard.getCardInfo());

        String winner = "";
        for(Player p : playersNewList)
        {
            if(p.getHandCards().contains(maxCard))
            {
                winner = p.getName();
                break;
            }
        }
        System.out.println("玩家:"+winner+"获胜");
    }

    /*
     * 先是玩家手中的牌
     */
    private void showHandCards()
    {
        for(Player p:players)
        {
            StringBuilder sbd = new StringBuilder();
            sbd.append(p.getName()+":[");
            for(PokerCard pc:p.getHandCards())
            {
                sbd.append(pc.getCardInfo()+",");
            }
            System.out.println(sbd.substring(0,sbd.length()-1)+"]");
        }

    }

    public static void main(String[] args) {
        System.out.println("-----------------创建扑克牌-----------------");
        PlayCardDemo pcd = new PlayCardDemo();
        pcd.cratePokerCards();      //创建扑克牌
        System.out.println("-----------------扑克牌创建成功!-----------------");
        pcd.showPokerCards();       //显示所创建扑克牌
        System.out.println("-----------------开始洗牌-----------------");
        pcd.shuffleCard();          //洗牌
        System.out.println("-----------------洗牌结束!-----------------"); 
        System.out.println("-----------------创建玩家-----------------");
        pcd.in = new Scanner(System.in);
        for(int i = 1;i 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3356/viewspace-2807679/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    100
  • 访问量
    678