请指点一下这段代码.C++大学教程中的例题.
// Craps
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int rollDice( void ); // function prototype
int main()
{
enum Status { CONTINUE, WON, LOST };
int sum, myPoint;
Status gameStatus;
srand( time( NULL ) );
sum = rollDice(); // first roll of the dice
switch ( sum ) {
case 7:
case 11: // win on first roll
gameStatus = WON;
break;
case 2:
case 3:
case 12: // lose on first roll
gameStatus = LOST;
break;
default: // remember point
gameStatus = CONTINUE;
myPoint = sum;
cout << "Point is " << myPoint << endl;
break; // optional
}
while ( gameStatus == CONTINUE ) { // keep rolling
sum = rollDice();
if ( sum == myPoint ) // win by making point
gameStatus = WON;
else
if ( sum == 7 ) // lose by rolling 7
gameStatus = LOST;
}
if ( gameStatus == WON )
cout << "Player wins" << endl;
else
cout << "Player loses" << endl;
return 0;
}
int rollDice( void )
{
int die1, die2, workSum;
die1 = 1 + rand() % 6;
die2 = 1 + rand() % 6;
workSum = die1 + die2;
cout << "Player rolled " << die1 << " + " << die2
<< " = " << workSum << endl;
return workSum;
}
以下是书上说的这些代码的功能。
每个骰子有六面,这些面包含1,2,3,4,5,6个点。投两枚骰子之后,计算点数之和。如果第一次投时的和为7或11,则游戏者获胜。如果第一次投时的和是2,3或12,则游戏者输,庄家赢。如果第一次投时的和为4,5,6,8,9或10,则这个和成为游戏者的点数。要想赢,就要继续投骰子,直到赚到点数。如果投七次之后还没有赚到点数,则游戏者输。
但while ( gameStatus == CONTINUE ) { // keep rolling
sum = rollDice();
if ( sum == myPoint ) // win by making point
gameStatus = WON;
else
if ( sum == 7 ) // lose by rolling 7
gameStatus = LOST;
这段的功能根就不对,弄的我想了好长时间。结果是我对了。

