java21点小游戏

import java.util.Random;

public class poker {
    static final int Count=54;
    static final String color[]= {"黑桃","红桃","梅花","方块"};
    static final String facevalue[]= 
        {"A",
        "2","3","4","5","6",
        "7","8","9","10","J","Q","K"};
    static card cards[]=new card[Count];
    public poker()
    {
        for(int i=0;i<color.length;i++)
        {
            for(int j=0;j<facevalue.length;j++)
            {
                cards[i*13+j]=new card(color[i], facevalue[j]);
            }
        }
        cards[Count-2]=new card("小王");
        cards[Count-1]=new card("大王");
    }
    public void washcard()
    {
        Random random=new Random();
        for(int j=0;j<Count;j++)
        {
            int i=random.nextInt(Count);
            cards[j]=cards[i];
        }
    }
    public void show()
    {
        for(int i=0;i<54;i++)
        {
            if (i%13==0) {
                System.out.println();
            }
            cards[i].showinfo();
        }
    }
}

 

 

public class card {
    public double count;
    private String facevalue;
    private String color;
    public card(String color,String facevalue)
    {
        this.color=color;
        this.facevalue=facevalue;
        
        if(facevalue.equals("J")||facevalue.equals("Q")||facevalue.equals("K"))
        {
            this.count=10;
        }
        else if(facevalue.equals("A"))
        {
            this.count=1;
        }
        else {
            this.count=Double.parseDouble(facevalue);
        }
    }
    public card(String facevalue)
    {
        this.color="特殊";
        this.count=0;
        this.facevalue=facevalue;
    }
    public String getcolor()
    {
        return color;
    }
    public String getfacevalue()
    {
        return facevalue;
    }
    public double getcount()
    {
        return count;
    }
    public void showinfo()
    {
        System.out.print(color+"-"+facevalue);
    }
}

 

public class player {
    static int count=54;
    static card mycards[]=new card[count];
    static double score;
    boolean win;
    static double allscore;
    static int i=0;
    public player()
    {
        score=0;
        allscore=0;
        i=0;
    }
    public void getcard(card myCard)
    {
        player.mycards[i]=myCard;
        mycards[i].showinfo();
        this.i++;
    }
    public double score()
    {
        score=0;
        for(int j=0;j<=i-1;j++)
        {
            score+=mycards[j].count;
        }
        return score;
    }
    public void showscore()
    {
        System.out.println("当前分数="+score);
    }
    public double win(boolean win)
    {
        if(win)
        {
            allscore++;
        }
        return allscore;
    }
    public void restart()
    {
        score=0;
        allscore=0;
        i=0;
    }
}
 

 

import java.util.Random;

public class computerplayer extends player{
    Random random =new Random();
    static card computercards[]=new card[count];
    int ifgetcard;
    static int x=0;
    static double computerscore=0;
    static double computerallscore=0;
    public computerplayer()
    {
        score=0;
        allscore=0;
    }
    public void getcard(card myCard)
    {
        ifgetcard=random.nextInt(100);
        if(ifgetcard<=50)
        {
            System.out.println("电脑不要牌!!");
        }
        else {
            System.out.println("电脑要牌!!");
            this.computercards[x]=myCard;
            computercards[x].showinfo();
            this.x++;
        }
        /*computerplayer.computercards[x]=myCard;
        computercards[x].showinfo();
        this.x++;*/
    }
    public void getcard2(card myCard)
    {
        computerplayer.computercards[x]=myCard;
        computercards[x].showinfo();
        this.x++;
    }
    public double score()
    {
        computerscore=0;
        for(int j=0;j<=x-1;j++)
        {
            computerscore+=computercards[j].count;
        }
        return computerallscore;
    }
    public void restart()
    {
        score=0;
        allscore=0;
        i=0;
    }
    public double win(boolean win)
    {
        if(win)
        {
            computerallscore++;
        }
        return computerallscore;
    }
    public void showscore()
    {
        System.out.println("当前分数="+computerscore);
    }
}
 

 

public class game {
    static int id=0;
    player player=new player();
    computerplayer computerplayer =new computerplayer();
    poker poker =new poker();
    public void mainframe()
    {
        System.out.println("*******21点小游戏****************");
        System.out.println("规则:21点则胜利,若超过21点则爆掉,若都不足21点则比较大小");
    }
    public void ifwashcard()
    {
        if(id==54)
        {
            poker.washcard();
        }
    }
    public void start()
    {
        
    }
    public void winorfalse()
    {
        if(player.score>computerplayer.computerscore)
        {
            player.win(true);
            System.out.println("玩家胜利!");
        }
        else if(player.score<computerplayer.computerscore)
        {
            computerplayer.win(true);
            System.out.println("电脑胜利!");
        }
        else {
            System.out.println("平局!");
        }
    }
    public void show()
    {
        System.out.println("玩家总分:"+player.allscore+"电脑总分:"+computerplayer.allscore);
    }
    public void dealplayer()
    {
        player.getcard(poker.cards[id]);
        //poker.cards[id].showinfo();
        id++;
    }
    public void dealcomputerplayer()
    {
        computerplayer.getcard(poker.cards[id]);
        //poker.cards[id].showinfo();
        id++;
    }
    public void dealcomputerplayercard2() {
        computerplayer.getcard2(poker.cards[id]);
        //poker.cards[id].showinfo();
        id++;
        computerplayer.getcard2(poker.cards[id]);
        id++;

    }
}
 

 

import java.util.*;

public class main {

    @SuppressWarnings("unlikely-arg-type")
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner inputScanner=new Scanner(System.in);
        computerplayer computerplayer =new computerplayer();
        game game =new game();
        poker poker =new poker();
        player player=new player();
        poker.washcard();
        //poker.show();
        game.mainframe();
        game.dealplayer();
        game.dealplayer();
        player.score();
        player.showscore();
        game.dealcomputerplayercard2();
        computerplayer.score();
        computerplayer.showscore();
        System.out.println("是否继续要排? y or n");
        String selectString=inputScanner.next();
        if(selectString.equals("y"))
        {
            game.dealplayer();
            player.score();
            player.showscore();
        }
        else {
            System.out.println("不要牌!!");
            player.score();
            player.showscore();
        }
        game.dealcomputerplayer();
        computerplayer.score();
        computerplayer.showscore();
        game.winorfalse();

        
    }

}
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值