栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实验 21点扑克牌游戏

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实验 21点扑克牌游戏

分别再不同的类中所添加;

//类名称:Blackjack_game
import java.util.*;

public class Blackjack_game {
    public static  void main(String args[]){
        Scanner cin =new Scanner(System.in);
        Game game = new Game();
        System.out.println("----------------------------欢迎来到21点游戏桌-------------------------");
        System.out.println();
        System.out.println("请输入需要加入游戏的玩家的数量:");
        int n= cin.nextInt();
        Player[] player = new Player[20];
        for(int i=0 ; i
            System.out.println("请输入玩家"+(i+1)+"的名字:");
            String name = cin.next();
            player[i] = new Player(name);
           game.add(player[i]);
           System.out.println(name+"加入成功");
        }
    game.start();
    }

//类名称:Card
import java.util.*;

//包含花色和牌面,覆盖了 Object 类中的 toString 方法(输出单张扑克牌用)。

public class Card {
    private byte points;
    private String color;
    public Card(){}

    public void setPoint(byte points) {
        this.points = points;
    }

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

    public byte getPoints() {
        return points;
    }

    public String getColor() {
        return color;
    }

    public String toString() {
        if(points==1)
        {
            return "color:"+color+" points: A";
        }
        else if(points==11){
            return "color:"+color+" points: J";
        } else if (points==12) {
            return "color:"+color+" points: Q";
        }
        else if(points==13){
            return "color:"+color+" points: K";
        }
        else
            return "color:"+color+" points:" + points;
    }
}
//类名称:Poker
import javax.swing.*;
import java.util.*;
import java.math.*;

//包含 52 张牌(初始时按花色有序排列);
//shuffle 方法实现洗牌功能;
//pop 方法实现依序发牌;
//print 方法主要测试用,确认 shuffle 功能是否有效。


public class Poker {
    private Card[] cards = new Card[53];
    String[] color = {" ","♥","♦","♠","♣"};
    private int pos;


    public Poker(){
        for(int i=0 ; i<=52 ; i++){
            cards[i] = new Card();
            if(i==0) continue;
            if(i%13==0){
                cards[i].setPoint((byte)13);
                cards[i].setColor(color[i/13]);
            }
            else{
                cards[i].setPoint((byte)(1+i%13));
                cards[i].setColor(color[1+i/13]);
            }
        }
        this.pos=1;
    }



    public void shuffle(){
        Random rad = new Random();
        for(int i=0 ; i<10000 ; i++){
            int a=rad.nextInt(52)+1;
            int b=rad.nextInt(52)+1;
            Card temp;
            temp = cards[a];
            cards[a]=cards[b];
            cards[b]=temp;
        }
    }



    public Card pop(){
        return cards[pos++];
    }
}
//类名称:Player
import java.util.*;



public class Player {
    private String Name;
    private Card[] cards = new Card[20];
    private int pos;


    public Player(){}


    public void setName(String name) {
        Name = name;
    }

    public String putName(){
        return Name;
    }




    public Player(String name){
        this.Name=name;
        this.pos=0;
        for(int i=0 ;i<20 ; i++){
            cards[i] = new Card();
        }
    }




    public void add(Card card){
        cards[pos++]=card;
    }




    public void sort(){
        for(int i=0 ; i
            for(int j=i+1 ; j
                if(cards[i].getPoints()>cards[j].getPoints()){
                    Card temp = cards[i];
                    cards[i]=cards[j];
                    cards[j]=temp;
                }
            }
        }

    }



    public Boolean decide() {
        Scanner cin = new Scanner(System.in);
        System.out.println("-----------------------------当前的牌面是--------------------------");
        print();
        if(score()>21)
            return false;
        System.out.println(Name + "是否要牌:(1-要牌,0-不要牌)");
        int de = cin.nextInt();
        if (de == 1) {
            return true;
        }
            return false;
    }



    public byte score(){
        int sum=0;
        for(int i=0 ; i
            if(cards[i].getPoints()>10){
                sum+=10;
            }
            else {
                sum = sum +cards[i].getPoints();
            }
        }
        return (byte)sum;
    }




    public void print(){
        sort();
        System.out.println(Name+" 的牌是:");
        for(int i=0 ; i
            System.out.println(cards[i].toString());
        }
        System.out.println("当前的点数是"+score());
    }




    public void join(Game game){

    }
}
//类名称:Game
import java.awt.desktop.ScreenSleepEvent;
import java.util.*;




public class Game {

    private Poker poker;
    private Player[] players = new Player[20];
    private  int pos;





    public Game(){
        poker = new Poker();
        this.pos=0;
        poker.shuffle();
    }




    public void add(Player player){
        players[pos] = new Player();
        players[pos] = player;
        pos++;
    }



    public void dealCards(){
        for(int i=0 ; i
            while(players[i].decide()){
                players[i].add(poker.pop());
            }
        }
    }





    public void initialize(){
        for(int i=0 ; i
            players[i].add(poker.pop());
            players[i].add(poker.pop());
        }
    }



    public void judgeResult(){
        int[] a = new int[20];
        int p=0;
        for(int i=0 ; i
            if(players[i].score()<=21){
                a[p++]=i;
            }
        }

        for(int i=0 ; i
            for(int j=i+1 ; j

if(players[a[i]].score() int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } System.out.println("赢家是:"+players[a[0]].putName()); for(int i=1 ; i

if(players[a[i]].score()==players[a[0]].score()){ System.out.println("赢家是:"+players[a[i]].putName()); } else break; } } public void start(){ System.out.println("------------------------------游戏正式开始---------------------------"); initialize(); // 先发两张牌; System.out.println("----------------------------初始发牌阶段结束-------------------------"); for(int i=0 ; i

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850752.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号