【craps赌博游戏】
/* cpaps赌博游戏 说明: 一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为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键开始游戏****\n"); 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; }
运行结果:
转载本博请联系作者! 如有问题请在评论区评论或者发邮件:@libras