3

作为我的入门编程课程的家庭作业,我必须设计和实现一个生成随机数(1-100)的程序,然后给玩家 7 次猜测以正确猜测数字。我想出了这个算法:

控制流

但是,我不知道如何将算法的这种概念表示转换为控制结构。(我们使用 Pascal,因此可用的结构是 if 语句、前序循环和后序循环)。前序循环和后序循环都不适合内循环,因为循环条件位于循环中间并且有两个退出点!

谁能给我一个关于如何更清楚地构造它的指针?

4

3 回答 3

2

我根本不知道 Pascal,但我知道它有一个 while 循环......所以我会以类似于以下的方式构造它......(用伪代码编写)

boolean userWishesToPlay = true;
int userGuess = -1;
int ranValue;
int guessCount = 0;

    while (userWishesToPlay) {
        ranValue = generateRandomValue();
        while(userGuess != ranValue && guessCount < 7) {
            // Give hint if user has guessed more than once
            if (guessCount >= 1) {
               // give hint
            }
            userGuess = // get input from user
            guessCount += 1;
        }

        if (userGuess == ranValue) {
           // print congrats!
        } else {
           // print game over
        }

        userWishesToPlay = // get input from user on whether to play again or not
        userGuess = -1; // since random value will be between 1 and 100 this is safe
        guessCount = 0;
    }
于 2011-04-27T13:52:08.800 回答
1

我会用c风格写出来

bool gameover;

int tries = 0;

while(!gameover)
{
    game over = (tries > 7);
    if(answer == correct)
        break;
    tries++

}

PASCAL 中的 WHILE 循环链接:http: //www.hkbu.edu.hk/~bba_ism/ISM2110/pas024.htm

于 2011-04-27T13:48:42.937 回答
0

在我看来它很坚固。我不知道帕斯卡,但你不能“打破”内循环吗?内部循环正在读取用户的猜测,显示提示并增加计数。它还检查两件事:猜测是否正确,计数是否小于 7。如果其中任何一个为真,它会显示一条适当的消息,然后跳出该内部循环,进入外部循环,然后询问用户是否想再玩一次。

于 2011-04-27T13:50:13.570 回答