ITPub博客

首页 > IT职业 > IT职场 > 简易扑克游戏(随手写的)

简易扑克游戏(随手写的)

IT职场 作者:lhx1976 时间:2021-09-09 09:04:44 0 删除 编辑

纸牌类

package com.imooc_pokergame.dengdi;

public class PokerCard implements Comparable {
    private String cardName;//纸牌花色
    private String cardNumber;//纸牌数字

    public PokerCard() {
        super();
        // TODO Auto-generated constructor stub
    }

    public PokerCard(String cardName, String cardNumber) {
        super();
        this.cardName = cardName;
        this.cardNumber = cardNumber;
    }

    public String getCardName() {
        return cardName;
    }

    public void setCardName(String cardName) {
        this.cardName = cardName;
    }

    public String getCardNumber() {
        return cardNumber;
    }

    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return this.cardName + this.cardNumber;
    }
    /*
     *  最大纸牌的比较方法 
     */
    @Override
    public int compareTo(PokerCard o) {
        if (this.cardNumber.charAt(0) > o.cardNumber.charAt(0)) {
            return 1;
        } else if (this.cardNumber.charAt(0) 

玩家类

package com.imooc_pokergame.dengdi;

import java.util.ArrayList;
import java.util.List;

public class Gamer {
    private String id;
    private String name;
    private List handCards= new ArrayList();//手牌
    public Gamer() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Gamer(String id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public List getHandCards() {
        return handCards;
    }
    public void setHandCards(List handCards) {
        this.handCards = handCards;
    }

}

手牌中最大牌的比较方法

package com.imooc_pokergame.dengdi;

import java.util.Comparator;

public class HandCardsCompare implements Comparator{
    /*
     * 手牌最大的比较方法
     */
    @Override
    public int compare(PokerCard o1, PokerCard o2) {
        if(o1.getCardNumber().compareTo(o2.getCardNumber())==0){
            return o1.getCardName().compareTo(o2.getCardName());
        }
        return o1.getCardNumber().compareTo(o2.getCardNumber());
    }

}

测试类

package com.imooc_pokergame.dengdi;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class PokerDemo {
    private List pokerCards;//牌组

    public PokerDemo() {
        this.pokerCards = new ArrayList();
    }

    // 创建纸牌
    public void setCards() {
        System.out.println("-------------创建扑克牌---------------------");
        String[] cardName = { "黑桃", "红桃", "梅花", "方片" };
        String[] cardNumber = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
                "J", "Q", "K", "A" };
        for (int i = 0; i  it = pokerCards.iterator();
        System.out.println("-------------开始发牌---------------------");
        /*
         * 运用迭代器来遍历牌组,设置i数值来限制两个玩家手牌有几张牌
         */
        while (it.hasNext()) {
            System.out.println("玩家" + gamer01.getName() + "拿牌");
            gamer01.getHandCards().add(it.next());
            System.out.println("玩家" + gamer02.getName() + "拿牌");
            gamer02.getHandCards().add(it.next());
            if (i == 2)
                break;
            i++;
        }
        System.out.println("--------------发牌结束---------------------");
    }

    // 开始游戏
    public void beginGame(Gamer gamer01, Gamer gamer02) {
        System.out.println("---------------开始游戏---------------------");
        //将两个玩家手牌排序
        Collections.sort(gamer01.getHandCards(), new HandCardsCompare());
        Collections.sort(gamer02.getHandCards(), new HandCardsCompare());
        //取他们手牌最后一张,也就是最大的牌
        System.out.println("玩家:" + gamer01.getName() + "最大手牌为:"
                + gamer01.getHandCards().get(1));
        System.out.println("玩家:" + gamer02.getName() + "最大手牌为:"
                + gamer02.getHandCards().get(1));
        /*
         * 比较两个玩家的最大牌,返回的数值来选择输出
         */
        switch (gamer01.getHandCards().get(1)
                .compareTo(gamer02.getHandCards().get(1))) {
        case 1:
            System.out.println("------------玩家" + gamer01.getName()
                    + "获胜-----------------");
            break;
        case -1:
            System.out.println("------------玩家" + gamer02.getName()
                    + "获胜-----------------");
            break;
        default:
            System.out.println("------------平手------------------------------");
            break;
        }
    }

    public void showHandCards(Gamer gamer01, Gamer gamer02){
        System.out.println("玩家各自的手牌为:");
        System.out.println(gamer01.getName() + "["
                + gamer01.getHandCards() + "]");
        System.out.println(gamer02.getName() + "["
                + gamer02.getHandCards() + "]");
    }

    public static void main(String[] args) {
        PokerDemo pd = new PokerDemo(); 
        //创建牌组
        pd.setCards();
        //循环遍历
        for (PokerCard pc : pd.pokerCards) {
            System.out.print(pc);
        }
        System.out.println();
        pd.washCards();//洗牌
        Scanner input = new Scanner(System.in);
        List gamers = new ArrayList();
        for (int i = 1; i 

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

上一篇: 89999999999999999999
请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    0
  • 访问量
    453