📜  在C中使用rand()和srand()进行猜猜游戏

📅  最后修改于: 2021-05-26 01:31:44             🧑  作者: Mango

在C语言中使用srand()和rand()函数,可以制作一个简单但有趣的游戏。该游戏被称为“猜猜游戏”。

游戏规则 :

  • 有三个洞。老鼠被藏在这三个洞之一中。
  • 老鼠每次都会改变位置。
  • 您必须猜测三个孔中隐藏有老鼠的孔。
  • Rat所在的洞称为“ R”,其余两个洞称为“ N”。
  • 您有一些现金(inhand_cash)。
  • 每次您猜测时,您都会下注(amount_bet)玩此游戏。
  • 如果您的猜测是错误的,则从inhand_cash中松开amount_bet。
  • 如果您猜对了,您将在inhand_cash中赢得两倍的amount_bet。
  • 继续比赛并不断赢球,直到现金用完为止。

以下是此简单有趣的游戏的C代码:

注意:由于此游戏从玩家那里获取他们的inhand_cash,bet_amount和猜想的老鼠位置的输入,因此该游戏无法在在线编译器中运行。

// Cpp program for guessing game
// using rand() and srand()
#include 
#include 
#include 
  
void GuessGame(int amount_bet, int* inhand_cash)
{
    char Hole[3] = { 'N', 'R', 'N' };
    printf("\nWait !! Rat is shuffling its position...\n");
    srand((time(NULL)));
    int i, x, y, temp;
  
    /*Swapping the Rat's (R's) position  five times using
    the random number for random index*/
  
    for (i = 0; i < 5; i++) {
        x = rand() % 3;
        y = rand() % 3;
        temp = Hole[x];
        Hole[x] = Hole[y];
        Hole[y] = temp;
    }
  
    int PlayerGuess;
  
    printf("\nYou may now guess the hole in which Rat is present: ");
  
    scanf("%d", &PlayerGuess);
  
    if (Hole[PlayerGuess - 1] == 'R') {
        (*inhand_cash) += 2 * amount_bet;
        printf("You win ! The holes are as follows: ");
        printf("\"%c %c %c\" ", Hole[0], Hole[1], Hole[2]);
        printf("\nYour inhand_cash is now = %d \n", *inhand_cash);
    }
  
    else {
        (*inhand_cash) -= amount_bet;
        printf("You Loose ! The holes are as follows: ");
        printf("\"%c %c %c\" ", Hole[0], Hole[1], Hole[2]);
        printf("\nYour inhand_cash is now = %d \n", *inhand_cash);
    }
}
  
int main()
{
    int amount_bet, inhand_cash;
    /*
    You have to guess the hole in which the 
     Rat is hidden among three holes
    The hole in which Rat is present is 
    named as 'R' and rest two are named as 'N'
    If your guess is wrong, you loose the 
    amount_bet from your inhand_cash
    If you guess it right, you win 
     twice the amount_bet in your inhand_cash
    Keep playing and keep winning 
    until you go out of cash
    */
  
    printf("----Enter the inhand_cash you have right now---- : ");
  
    scanf("%d", &inhand_cash);
  
    while (inhand_cash > 0) {
        printf("\nEnter the amount_bet you want to play for : ");
        scanf("%d", &amount_bet);
        if (inhand_cash == 0 || amount_bet > inhand_cash)
            break;
        GuessGame(amount_bet, &inhand_cash);
    }
  
    if (inhand_cash == 0 || amount_bet > inhand_cash) {
        printf("\n\""
               " 🙁 Sorry you don't have enough cash to play more, ");
        printf("Do come next time\""
               "\n");
        printf("Thank You for playing 🙂 \n");
    }
    return 0;
}

注意:此输出不是从在线编译器获取的
输出:

----Enter the inhand_cash you have right now---- : 1

Enter the amount_bet you want to play for : 1

Wait !! Rat is shuffling its position...

You may now guess the hole in which Rat is present: 1
You Loose ! The holes are as follows: "N N R"
Your inhand_cash is now = 0

" :-( Sorry you don't have enough cash to play more, Do come next time"
Thank You for playing :-)
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。