大家好,欢迎来到IT知识分享网。
十点半游戏
十点半是一种扑克游戏,这种游戏老少皆宜。游戏技巧在于如何收集成“十点半”,但若超过半点,也算失败。
A等于1点、2等于2点,如此累推10就是10点,J、Q、K都是半点。
十点半-顾名思义就是摸的牌不能超出十点半。最后谁的牌之和最接近十点半谁胜。
游戏呢分为两个玩家,一个电脑(bot)和玩家(你)。
流程:
你先摸牌,如果觉得有胜算,就不必补牌。否则可以继续补牌。 也就是说每次有两个选择: 1. 继续补牌 2. 不补牌
特殊情况:
- 玩家手牌到 5 张时,直接胜利
- 玩家手牌点数超过十点半直接输
接下来由电脑摸牌,电脑有以下规则:
- 十点半就不补牌了
- 当没玩家点数大时,必须补牌
- 当比玩家点数大后不补牌
升级玩法:机器人不作弊(不知道玩家点数), 通过概率来决定是否补牌
import java.util.*; public class TenThirty {
private Poker poker; public TenThirty() {
this.poker = new Poker(); } / 打乱牌 */ public void start(){
List<Card> poker = this.poker.getPoker(); for(int i = 0;i < 10;i++){
Collections.shuffle(poker); } player(poker); } public void player(List<Card> poker){
List<String> player = new ArrayList<>(); //玩家手里的牌数 int count = 0; //玩家牌数的值 double value =0.0; while (count < 5){
Card card = poker.get(count); player.add(card.toString()); System.out.println(player); value += card.getValue(); System.out.println("你的点数和是" + value); count++; if (value < 10.5) {
Scanner sc = new Scanner(System.in); System.out.println("请输入是否继续发牌,0:是,1:否"); int isContinue = sc.nextInt(); // 玩家继续发牌,并且牌数小于5 if (isContinue == 0) {
continue; } else {
bot(value,poker,count); break; } } else if(value > 10.5) {
System.out.println("你输了"); return; } } if(count == 5 && value <10.5){
System.out.println("你赢了"); } if (count > 5) {
System.out.println("你输了"); } } private void bot(double value , List<Card> poker, int count) {
//机器人的牌值 Double botValue =0.0; //机器人的牌数 int botCount = 0; //机器人的牌 List<String> botCards = new ArrayList<>(); while (botValue <= value) {
Card card = poker.get(count +(++botCount)); botValue += card.getValue(); botCards.add(card.toString()); System.out.println("机器人的牌:" + botCards); if (botValue>10.5) {
System.out.println("机器人炸了"); System.exit(0); } if(botCards.size() > 5){
System.out.println("机器人输了"); System.exit(0); } if (botCards.size() == 5) {
System.out.println("机器人赢了"); System.exit(0); } } System.out.println("机器人的点数和是:" + botValue); System.out.println("机器人赢了"); } } class Poker{
private List<Card> poker; private static final List<String> points = List.of("A","2","3","4","5","6","7","8","9","10","J","Q","K"); public Poker(){
this.poker = new ArrayList<>(); for (int i = 0;i < points.size(); i++) {
if(i <= 9){
poker.add(new Card(points.get(i),i+1)); } else{
poker.add(new Card(points.get(i),0.5)); } } } public List<Card> getPoker() {
return poker; } public void setPoker(List<Card> poker) {
this.poker = poker; } } class Card{
private String point; private double value; public Card(String point, double value) {
this.point = point; this.value = value; } @Override public String toString() {
return point; } public double getValue() {
return value; } public void setValue(double value) {
this.value = value; } }
public class TenThirtyTest {
public static void main(String[] args) {
TenThirty game = new TenThirty(); game.start(); } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/146773.html