自己写的一个扑克牌比较点数的小游戏

//Poker.java

package com.skyL;

public class Poker implements Comparable<Poker>{
    private String flowerColor;
    private String Point;

    public Poker(String flowerColor, String Point){
        this.flowerColor = flowerColor;
        this.Point = Point;
    }

    public String getFlower(){
        return flowerColor;
    }

    public String getPoint(){
        return Point;
    }
    @Override
    public int compareTo(Poker o) {
        int first = pointToNum();
        int second = o.pointToNum();
        if(first > second)
            return 1;
        else if(first < second)
            return -1;
        else{
            first = flowerToNum();
            second = o.flowerToNum();
            if(first > second)
                return 1;
            else if(first < second)
                return -1;
        }
        return 0;
    }

    private int flowerToNum(){
        if(flowerColor.equals("黑桃"))
            return 4;
        else if(flowerColor.equals("红心"))
            return 3;
        else if(flowerColor.equals("梅花"))
            return 2;
        return 1;
    }

    private int pointToNum(){
        if(Point == "A")
            return 1;
        else if(Point.equals("J"))
            return 1;
        else if(Point.equals("Q"))
            return 2;
        else if(Point.equals("K"))
            return 3;
        else if(Point.equals("10"))
            return 0;
        else
            return Integer.valueOf(Point).intValue();
    }
}
//Player.java

package com.skyL;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class Player {
    private int id;
    private String name;
    private List<Poker> playerPoker;
    private Poker firstPoker;

    public Player(int id, String name){
        this.id = id;
        this.name = name;
        playerPoker = new ArrayList<Poker>();
    }
    public Player() {
        // TODO Auto-generated constructor stub
    }
    public int getId(){
        return id;
    }

    public String getName(){
        return name;
    }

    public List<Poker> getPoker(){
        return playerPoker;
    }

    public Poker getFirstPoker(){
        //Collections.sort(playerPoker);
        Iterator<Poker> it = playerPoker.iterator();
        Poker first = it.next();
        Poker second = it.next();
        return (first.compareTo(second) > 0 ? first : second);
    }
}
//GamePlay.java

package com.skyL;

import java.util.List;
import java.util.Random;
import java.util.Scanner;
import java.awt.Point;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class GamePlay {
    public Set<Poker> setPokers;
    public List<Poker> pokers;
    public List<String> flower;
    public List<String> points;
    public static Scanner input;

    public GamePlay(){
        setPokers = new HashSet<Poker>();
        pokers = new ArrayList<Poker>();
        flower = new ArrayList<String>();
        points = new ArrayList<String>();
        input = new Scanner(System.in);
    }
    public static void main(String[] args) {
        GamePlay gy = new GamePlay();
        gy.InsertFolwer();
        gy.InsertPoint();
        gy.shuffleCards();
        System.out.println("请输入玩家1的ID:");
        int id = input.nextInt();
        System.out.println("请输入玩家1的姓名:");
        String name = input.next();
        Player p1 = new Player(id, name);
        System.out.println("请输入玩家2的ID:");
        id = input.nextInt();
        System.out.println("请输入玩家2的姓名:");
        name = input.next();
        Player p2 = new Player(id, name);
        gy.Licensing(p1, p2);
        gy.CompareCard(p1, p2);
        gy.showCard(p1, p2);
    }


    //添加花色
    public void InsertFolwer(){
        flower.add("黑桃");
        flower.add("红心");
        flower.add("梅花");
        flower.add("方片");
    }

    //添加点数
    public void InsertPoint(){
        points.add("A");
        for(int i = 2; i <= 10; i++)
            points.add(String.valueOf(i));
        points.add("J");
        points.add("Q");
        points.add("K");
    }
    //洗牌
    public void shuffleCards(){
        System.out.println("一整副扑克牌为:");
        for(int i = 0; i < 4; i++){
            for(int j = 0; j < 13; j++){
                Poker p = new Poker(flower.get(i), points.get(j));
                System.out.print(p.getFlower() + p.getPoint() + "\t");
                pokers.add(p);
            }
        }
        System.out.println();
        System.out.println("开始洗牌");
        Random random = new Random();
        for(int i = 0; i < 52; i++){
            Poker p;
            do{
                p = pokers.get(random.nextInt(52));
            }while(setPokers.contains(p));
            setPokers.add(p);
        }
        System.out.println("洗牌完毕");
    }

    //发牌
    public void Licensing(Player p1, Player p2){
        System.out.println("开始发牌");
        Iterator<Poker> it = setPokers.iterator();
        int i = 0;
        while(it.hasNext() && i < 2){
            p1.getPoker().add(it.next());
            System.out.println("玩家1拿牌");
            if(it.hasNext()){
                p2.getPoker().add(it.next());
                System.out.println("玩家2拿牌");
            }
            i++;
        }

    }

    //比较点数
    public void CompareCard(Player p1, Player p2){
        Poker p1Poker = p1.getFirstPoker();
        Poker p2Poker = p2.getFirstPoker();
        System.out.println("玩家1 " + p1.getName() + " 的手牌为:" + p1Poker.getFlower() + p1Poker.getPoint());
        System.out.println("玩家2 " + p2.getName() + " 的手牌为:" + p2Poker.getFlower() + p2Poker.getPoint());
        if(p1Poker.compareTo(p2Poker) > 0){
            System.out.println(p1.getName() + "  Win");
        }
        else
            System.out.println(p2.getName() + "  Win");
    }

    //显示玩家所拿牌
    public void showCard(Player p1, Player p2){
        Iterator<Poker> it1 = p1.getPoker().iterator();
        System.out.print("玩家1 " + p1.getName() + " 所拿牌为:");
        while(it1.hasNext()){
            Poker poker = it1.next();
            System.out.print(poker.getFlower() + poker.getPoint());
        }
        System.out.println();
        Iterator<Poker> it2 = p2.getPoker().iterator();
        System.out.print("玩家2 " + p2.getName() + " 所拿牌为:");
        while(it2.hasNext()){
            Poker poker = it2.next();
            System.out.print(poker.getFlower() + poker.getPoint());
        }
        System.out.println();
    }
}

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值