作为我的入门编程课程的家庭作业,我必须设计和实现一个生成随机数(1-100)的程序,然后给玩家 7 次猜测以正确猜测数字。我想出了这个算法:
但是,我不知道如何将算法的这种概念表示转换为控制结构。(我们使用 Pascal,因此可用的结构是 if 语句、前序循环和后序循环)。前序循环和后序循环都不适合内循环,因为循环条件位于循环中间并且有两个退出点!
谁能给我一个关于如何更清楚地构造它的指针?
作为我的入门编程课程的家庭作业,我必须设计和实现一个生成随机数(1-100)的程序,然后给玩家 7 次猜测以正确猜测数字。我想出了这个算法:
但是,我不知道如何将算法的这种概念表示转换为控制结构。(我们使用 Pascal,因此可用的结构是 if 语句、前序循环和后序循环)。前序循环和后序循环都不适合内循环,因为循环条件位于循环中间并且有两个退出点!
谁能给我一个关于如何更清楚地构造它的指针?
我根本不知道 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;
}
我会用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
在我看来它很坚固。我不知道帕斯卡,但你不能“打破”内循环吗?内部循环正在读取用户的猜测,显示提示并增加计数。它还检查两件事:猜测是否正确,计数是否小于 7。如果其中任何一个为真,它会显示一条适当的消息,然后跳出该内部循环,进入外部循环,然后询问用户是否想再玩一次。