本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
用Java编写一个二十一点小游戏
manongba · 2467浏览 · 发布于2019-12-05 +关注

21点又名黑杰克(Blackjack),起源于法国,已流传到世界各地,有着悠久的历史。现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代。该游戏由2到6个人玩,使用除大小王之外的52张牌,游戏者的目标是使手中的牌的点数之和不超过21点且尽量大。


编程实现

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


public class BlackJackGame {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("这个游戏需要两人进行比赛,由电脑给两者发放初始牌(底牌),"
				+ "玩家决定是否继续加牌,确保自己所有牌的\n点数和不"
				+ "超过21(J,Q,K按11, 12, 13记)。如果超过21,该玩家直接输掉比赛,"
				+ "如果两人都不再加牌,比较两人牌的总点数,点数大的人赢。");
        String card[]= {                                                       //创建整个牌组
        		"1","2","3","4","5","6","7","8","9","10","J","Q","K",
        		"1","2","3","4","5","6","7","8","9","10","J","Q","K",
        		"1","2","3","4","5","6","7","8","9","10","J","Q","K",
        		"1","2","3","4","5","6","7","8","9","10","J","Q","K"};
        List card0=Arrays.asList(card);                               //转换牌组为集合
        List card1 = new ArrayList<>(card0);                                    
        Random a=new Random();                              //创建随机数器并设置最大范围
        int index=51;                                                                                
        double pointP1=0.0,pointP2=0.0;                     //记录两玩家分数
        String judge="是";
        String p1=(String) card1.get(a.nextInt(index--));   //记录玩家1的底牌
        pointP1=point(p1);                                  //给玩家2得分
        card1.remove(p1);                                   //移除分发的牌
        String p2=(String) card1.get(a.nextInt(index--));   //同玩家1步骤
        pointP2=point(p2); 
        card1.remove(p2);                                   
        System.out.println("游戏开始\n玩家1的底牌是:"+p1+"\n玩家2的底牌是"+p2);
        System.out.println("玩家1分数:"+pointP1);
        System.out.println("玩家2分数:"+pointP2);
        System.out.println("玩家1要牌吗(是/否)");
        judge=input.next(); 
        while(judge.equals("是")) {                         //当玩家需要时重复给玩家发牌
        	 p1=(String) card1.get(a.nextInt(index--));
        	 System.out.println("你得到的牌是:"+p1);
        	 pointP1=point(p1)+pointP1;
        	 System.out.println("玩家1分数:"+pointP1);
             card1.remove(p1);
             if(pointP1>21) {
            	 System.out.println("玩家1输了");           //当玩家点数超过上限,直接输掉
            	 break;
             }else {
            	 System.out.println("还要牌吗?");
            	 judge=input.next();             }
        }System.out.println("玩家2要牌吗?(是/否)");
        judge=input.next(); 
        while(judge.equals("是")) {
       	 p2=(String) card1.get(a.nextInt(index--));
       	System.out.println("你得到的牌是:"+p2);
       	 pointP2=point(p2)+pointP2;
       	System.out.println("玩家2分数:"+pointP2);
            card1.remove(p2);
            if(pointP2>21) {
           	 System.out.println("玩家2输了");
           	 break;
            }else {
           	 System.out.println("还要牌吗?");
           	 judge=input.next();             }
       }if(pointP1<=21&&pointP2pointP2) {
    		   System.out.println("玩家1赢");
    	   }else if(pointP121&&pointP2>21){
    	   System.out.println("平局");
       }
       input.close();
       
	}
	
	
	public static double point(String a) {     //判断玩家每次得分
		double point=0;
		switch (a){
		case "1":
		    point=1;
		    break;
		case "2":
		    point=2;
		    break;
		case "3":
		    point=3;
		    break;
		case "4":
		    point=4;
		    break;
		case "5":
		    point=5;
		    break;
		case "6":
		    point=6;
		    break;
		case "7":
		    point=7;
		    break;
		case "8":
		    point=8;
		    break;
		case "9":
		    point=9;
		    break;
		case "10":
		    point=10;
		    break;
		case "J":
		    point=11;
		    break;
		case "Q":
		    point=12;
		    break;
		case "K":
		    point=13;
		    break;
		}
		return point;
	}

}

运行样例展示

20191130213926738.png

说明

不足是必须输入中文的"是"/“否”,懒得改了~~

希望玩的开心!


相关推荐

图形学基础 | 实现OBJ文件的载入

iamitnan · 1698浏览 · 2019-05-29 10:10:17
干货!麻将平胡算法

· 993浏览 · 2019-06-06 11:45:17
Java桌球小游戏

奔跑的男人 · 640浏览 · 2019-06-11 09:37:46
图形用户界面和游戏开发

qq2360248666 · 712浏览 · 2019-06-11 09:57:01
Three.js模型隐藏或显示

吴振华 · 559浏览 · 2019-06-14 10:18:27
Cocos工程命名规则整理(node部分)

吴振华 · 878浏览 · 2019-06-14 10:24:18
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页