#include <stdio.h> |
#include <stdlib.h> |
#include <time.h> |
#define WON 0 |
#define LOST 1 |
#define CONTINUE 2 |
/*一个简单的赌博游戏,游戏规则如下:玩家掷两个骰子,点数为1到6,如果第一次点数和为7或11,则玩家胜,如果点数和为2、3或12,则玩家输,如果和 为其它点数,则记录第一次的点数和,然后继续掷骰,直至点数和等于第一次掷出的点数和,则玩家胜,如果在这之前掷出了点数和为7,则玩家输。*/ |
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; |
} |