21点 小游戏 java代码_21点小游戏(黑杰克) java实现

【实例简介】

完成一个变形版的纸牌21点游戏。该游戏来源于21点游戏,实现人机对战。游戏说明如下:

(1)该游戏需要两副牌,没有Joker,共104张。每张“纸牌”应具有花色与数字两个属性。

(2)游戏在机器与人类玩家之间进行。游戏一开始应先洗牌(将104张牌打乱)。

(3)机器永远是庄家,所以永远先给机器发牌,机器的牌不可见,只能看到机器要了几张牌。机器停止要牌后,再给人类玩家发牌。

(4)游戏胜利与失败的条件与普通21相同;除此以外,一方在当前牌没有爆掉的前提下,如果下一张牌使得手中有两张完全一样的牌(同数字、同花色)则立刻胜利。

(5)游戏结束时机器的牌要全部显示,并提示谁胜利了。

程序设计要求如下:

【实例截图】

【核心代码】

21PointGame

└── 21PointGame

├── build

│   └── classes

│   └── pointgame

│   ├── Card.class

│   ├── CardGame.class

│   ├── Color.class

│   ├── Main.class

│   └── Main.rs

├── build.xml

├── manifest.mf

├── nbproject

│   ├── build-impl.xml

│   ├── genfiles.properties

│   ├── private

│   │   ├── private.properties

│   │   └── private.xml

│   ├── project.properties

│   └── project.xml

└── src

└── pointgame

└── Main.java

8 directories, 14 files

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来为您解答。 21游戏,也叫黑杰克,是一种非常经典的纸牌游戏。玩家需要通过抽牌的方式,让自己的牌数尽量接近21,但不能超过21。其中,A牌可以看成1或11,J、Q、K牌都算10,其他牌按照牌面数算。下面是用Java写的21小游戏代码: ```java import java.util.Scanner; public class BlackJack { public static void main(String[] args) { Scanner input = new Scanner(System.in); int playerScore = 0; // 玩家得分 int dealerScore = 0; // 庄家得分 // 初始状态,玩家和庄家各发两张牌 for (int i = 0; i < 2; i++) { playerScore += drawCard(); dealerScore += drawCard(); } // 玩家开始抽牌 while (true) { System.out.println("你的得分是:" + playerScore); // 判断是否爆掉 if (playerScore > 21) { System.out.println("你爆了,游戏结束!"); break; } // 询问玩家是否继续抽牌 System.out.print("是否抽牌?(Y/N) "); String choice = input.nextLine(); if (choice.equalsIgnoreCase("Y")) { playerScore += drawCard(); } else if (choice.equalsIgnoreCase("N")) { break; } } // 庄家开始抽牌 while (dealerScore < 17) { System.out.println("庄家得分是:" + dealerScore); dealerScore += drawCard(); } // 判断输赢 if (dealerScore > 21) { System.out.println("庄家爆了,你赢了!"); } else if (playerScore > dealerScore) { System.out.println("你的得分是:" + playerScore); System.out.println("庄家的得分是:" + dealerScore); System.out.println("你赢了!"); } else if (playerScore == dealerScore) { System.out.println("你的得分是:" + playerScore); System.out.println("庄家的得分是:" + dealerScore); System.out.println("平局!"); } else { System.out.println("你的得分是:" + playerScore); System.out.println("庄家的得分是:" + dealerScore); System.out.println("你输了!"); } } // 抽一张牌,返回牌的数 public static int drawCard() { int[] cards = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10}; int index = (int) (Math.random() * cards.length); return cards[index]; } } ``` 这个程序主要分为以下几个部分: 1.引入Scanner类,用于接收用户输入。 2.定义玩家得分和庄家得分的变量。 3.循环两次,让玩家和庄家各发两张牌,用drawCard()函数随机生成牌的数,并将数加到对应的得分变量中。 4.玩家开始抽牌,使用while循环实现。在循环中,先输出当前得分,然后判断是否爆掉。如果爆掉了,输出游戏结束,并跳出循环;否则提示玩家是否继续抽牌,如果选择抽牌,则继续调用drawCard()函数生成新牌的数,并加到玩家得分变量中;如果选择不抽牌,则跳出循环。 5.庄家开始抽牌,同样使用while循环实现。在循环中,先输出当前得分,然后判断是否小于17,如果小于17,则继续调用drawCard()函数生成新牌的数,并加到庄家得分变量中。 6.判断输赢。如果庄家的得分大于21,则玩家赢;如果玩家的得分大于庄家的得分,则玩家赢;如果两者得分相等,则平局;否则玩家输。 7.drawCard()函数,用于随机生成一张牌,返回该牌的数。 希望这个解答能够帮到您!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值