Craps赌博游戏问题C语言

说明一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2、3或12,则玩家输,如果和 为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点数和,则玩家胜,如果在这之前掷出了点数和为7,则玩家输。

解法 规则看来有些复杂,但是其实只要使用switch配合if条件判断来撰写即可,小心不要弄错胜负顺序即可。

代码部分

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define WON 0
#define LOST 1
#define CONTINUE 2

int rollDice() { 
    return (rand() % 6) + (rand() % 6) + 2;
}

int main(void) {
    int firstRoll = 1;
    int gameStatus = CONTINUE;
    int die1, die2, sumOfDice;
    int firstPoint = 0;
    char c;

    srand(time(0));

    printf("Craps赌博游戏,按Enter键开始游戏****");

    while(1) {
         getchar();

        if(firstRoll) {
            sumOfDice = rollDice();
            printf("\n玩家掷出点数和:%d\n", sumOfDice);

            switch(sumOfDice) {
                case 7: case 11:
                    gameStatus = WON; break;
                case 2: case 3: case 12:
                    gameStatus = LOST; break;
                default:
                    firstRoll = 0;
                    gameStatus = CONTINUE;
                    firstPoint = sumOfDice;
                    break;
            }
        }
        else {
            sumOfDice = rollDice();
            printf("\n玩家掷出点数和:%d\n", sumOfDice);

            if(sumOfDice == firstPoint)
                gameStatus = WON;
            else if(sumOfDice == 7)
                gameStatus = LOST;
        }

        if(gameStatus == CONTINUE)
            puts("未分胜负,再掷一次****\n");
        else {
            if(gameStatus == WON)
                puts("玩家胜");
            else
                puts("玩家输");

            printf("再玩一次?");
            scanf("%c", &c);
            if(c == 'n') {
                puts("游戏结束");
                break;
            }
            firstRoll = 1;
        }
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Craps是一种骰子游戏,玩家在游戏中下注并掷骰子。Craps的胜率取决于玩家下注的类型和掷骰子的结果。以下是一些常见的下注类型和它们的胜率: 1. Pass Line Bet(赢线赌注):这是最常见的下注类型,玩家在第一次掷骰子时下注。如果掷出7或11,则玩家获胜;如果掷出2、3或12,则玩家输掉赌注;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中再次掷出这个点数才能获胜。胜率约为49.29%。 2. Don't Pass Bet(输线赌注):这是与Pass Line Bet相反的下注类型,如果第一次掷骰子时掷出2或3,则玩家获胜;如果掷出7或11,则玩家输掉赌注;如果掷出12,则平局;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中掷出7才能获胜。胜率约为47.96%。 3. Come Bet(进场赌注):这是类似于Pass Line Bet的下注类型,但是可以在任何时候下注。如果掷出7或11,则玩家获胜;如果掷出2、3或12,则玩家输掉赌注;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中再次掷出这个点数才能获胜。胜率约为49.29%。 4. Don't Come Bet(反进场赌注):这是类似于Don't Pass Bet的下注类型,但是可以在任何时候下注。如果掷出2或3,则玩家获胜;如果掷出7或11,则玩家输掉赌注;如果掷出12,则平局;如果掷出4、5、6、8、9或10,则这个数字成为“点数”,玩家需要在后续的掷骰子中掷出7才能获胜。胜率约为47.96%。 需要注意的是,Craps是一种纯粹的运气游戏,没有任何技巧可以提高玩家的胜率。以上胜率仅供参考,实际胜率可能会因为不同的规则和下注类型而有所不同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千秋TʌT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值