有关“盒子里有什么”代码游戏作业的问题

时间:2019-12-09 23:22:39

标签: pass-by-reference pass-by-value

我正在努力了解如何在此程序中正确使用按值传递和引用。当我将Int放在main函数中时,它一直说标识符未定义。但是,当它超出主要功能时,它可以正常工作。我不能在main函数之外使用它,否则它是一个自动0。我只是缺少识别它的代码吗?

我对程序的解释不是很好。本质上是Monty Hall的问题,但有盒子。然后,用户尝试猜测正确的框。我遇到的最大问题是让非奖品框出现在输出中。

我对编码非常陌生,所以我可能忽略了一些东西。

#include <stdlib.h>

#include <iomanip>

#include <iostream>

#include <time.h>

#include <string>

using namespace std;

/ ************************************************** ************************************** *函数名称:main() *参数:无 *返回值:int *目的:执行程序的主要功能。执行循环并接受用户输入以执行游戏。 ****************************************************** **************************** /

void BoxCheck(int);

void PrizeBox(int&);

//int UserGuess = 0;






int main()
{

    int UserChoice;

    int UserGuess;

    int BoxReveal;

    int PrizeB;

   // int Prize;

   //char Switch;


   cout << "Wellcome to Pandora's Prize!" << endl;

   cout << "Infront of you there are three doors, and behind one of them is the grand prize!" << endl;

   cout << "But in the the other two they contain a stink bomb." << endl;

   cout << "It's your job to guess which one has the prize behind it." << endl;

   cout << "Door 1?" << endl;

   cout << "Door 2?" << endl;

   cout << "Door 3?" << endl;

   PrizeBox(PrizeB);


   cin >> UserGuess;

   BoxReveal != (PrizeB || UserGuess);



    // cout << "The host revealed box number " << BoxReveal << " ." << endl;
    //if (true)
    //{
    if (UserGuess == 1)
    {
        cout << "You picked box 1." << endl;



        cout << "The host revealed box number " << BoxReveal << " ." << endl;



        cout << "Would you like to stay with box number 1 or switch." << endl;



        //cin >> UserChoice;

    }

    else if (UserGuess == 2)
    {
       cout << "You picked box 2." << endl;



        cout << "The host revealed box number " << BoxReveal << " ." << endl;



        cout << "Would you like to stay with box number 2 or switch." << endl;



        //cin >> UserChoice;

    }

    else if (UserGuess == 3)
    {
        cout << "You picked box 3." << endl;



        cout << "The host revealed box number " << BoxReveal << " ." << endl;

        cout << "It contains a red snapper!" << endl;

        cout << "Would you like to stay with box number 3 or switch." << endl;

        //cin >> UserChoice;


    }

    else
    {

        cout << "This isn't a number associated with a box. Try again." << endl;



    }

    //}

    /* if (true)
    {

    } */


    //PrizeBox(Prize);
    if (UserChoice == UserGuess)
    {
        cout << "You chose to stay with your original box." << endl;

        BoxCheck(UserGuess);
    }



    else if (UserChoice != UserGuess)  //|| UserChoice != BoxReveal)
    {
        cout << "You decided to switch." << endl;

        BoxCheck(UserGuess);
    }



     /*else if (UserChoice != UserGuess || BoxReveal)
    {
        cout << "You decided to switch." << endl;

        BoxCheck(UserGuess);
    } */

    else
    {
        cout << "Your answer was out of the parameters." << endl;

        BoxCheck(UserGuess);
    } 


    //BoxCheck(UserGuess);

    system("pause");

    return 0;

}



void PrizeBox(int& PrizeB)
{
    srand(time(NULL));

    PrizeB = rand() % 3 + 1;

    //Prize = rand() % 3 + 1;

    //cin >> PrizeB;

    /* BoxReveal = !(PrizeBox || boxChoice);
    cout << "Here is one of the box's opened! " << boxReveal << " ." << endl;
    BSwitch = (boxChoice || boxReveal); */




}


void BoxCheck(int UserChoice)
{
    if (UserChoice == PrizeB)
    {
        cout << "WOW YOU WON!!!!" << endl;
    }

    else if (UserChoice != PrizeB)
    {
        cout << "Sorry you got a red snapper" << endl;
    }

    else
    {
        cout << "Sorry you got a red snapper" << endl;
    }
}   

0 个答案:

没有答案