骰子游戏程序

时间:2013-02-13 03:18:23

标签: c

我正在编写一个骰子程序,其中有7轮在每轮中,用户可以根据需要滚动多次,总和相加,然后计算机滚动相同数量的骰子,它的总和是加起来。这轮比赛的胜利者是由最高的骰子掷骰确定的,而获得最多轮数的人赢得比赛。这是我到目前为止所得到的,但我无法得到循环,询问用户是否要再次滚动才能正常工作,所以任何帮助都将不胜感激。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* Easy dice game
|
 |  The game consists of 7 rounds.
 |  In each round, the computer throws a die, 
 |  then the human throws a die.
 |  The winner of the round is the player who has the highest throw.
 |  In case of a tie, neither player wins.
 |  The winner of the game is the player who has won the most rounds.
 |
 */

char input[132];   /* user input buffer */

int throwDie()
{
static int initialized = 0;
int num;

if ( !initialized )
{
printf("Initializing Die!\n\n");
srand( time(NULL) );
initialized = 1;
}
num = rand()%6 + 1 ;
return num;
}

// Human turn

int humanTurn()
{
int toss;
toss = throwDie();
printf("Human throws a %d\n", toss );
return toss;

}

// Computer turn

int computerTurn()
{
int toss;
toss = throwDie();
printf("Computer throws a %d\n", toss );
return toss;
}

int main(int argc, char *argv[])
{
int round, humanWins=0, computerWins=0 ;
int humanToss, computerToss;
int i = 0;
const int numberOfRounds = 7;
char ta=0;
/* Play 7 Rounds */
for ( round = 1; round<=numberOfRounds; round++ )
{
 printf("\nRound %d\n\n", round );
printf("Player's Turn: (hit enter)");
gets( input ); /* pause for dramatic effect */
humanToss = humanTurn();
 printf("Do you wish to throw again? [Y or N]");
 scanf("%s", ta);

while (ta = 'Y')
{

     if(ta = 'Y')
     {
     humanToss = humanTurn();
     printf("Do you wish to throw again? [Y or N]");
     scanf("%s", ta);
     }
     else
     {
       i++;
     }
}


printf("Computer's Turn: (hit enter)");

   gets( input ); /* pause for dramatic effect */
   computerToss = computerTurn();

  /* Determine Winner of the Round */
  if ( humanToss > computerToss )
  {
  humanWins++;
  printf("\tHuman wins the round.    human: %3d. computer: %3d\n",
    humanWins, computerWins );
  }
  else if ( computerToss > humanToss )
  {
  computerWins++;
  printf("\tComputer wins the round. human:%3d. computer: %3d\n",
    humanWins, computerWins );
  }
  else if ( computerToss == humanToss)
  {  
  printf("\tTie.                     human:%3d. computer: %3d\n",
    humanWins, computerWins );
  }
  }

   /* Determine Winner to the Game */
  if ( humanWins > computerWins )
  printf("\n\nWINNER!! The human wins the game!\n");
  else if ( computerWins < humanWins )
  printf("\n\nThe computer wins the game!\n");
  else
  printf("\n\nTie Game!\n");

  printf("\n");
  system("pause");
  return 0;
  }

1 个答案:

答案 0 :(得分:4)

while (ta = 'Y')

应为while (ta == 'Y')

你的if语句应该是== not =