随机数生成在 Pascal 中无法正常工作
Random number generation not working like it should in Pascal
我正在尝试制作一个战斗系统,玩家每次都必须猜测一个随机数并希望他能获胜。问题是随机数只生成一次。为什么?
unit game;
interface
uses a,b,reason,crt;
implementation
var health,ehealth: integer;
var a2:String;
var rand3,guess:Integer;
begin
ClrScr;
ehealth:=5;
health:=10;
Repeat
Randomize;
rand3:=Random (1);
writeln('YOUR HP:',health);
writeln('ENEMY HP:',ehealth);
write('Guess the number (1 or 2):');
Readln(guess);
if (rand3+1) = guess then
ehealth:=ehealth-1
else
health:=health-1;
ClrScr;
until (ehealth = 0) or (health = 0);
writeln('GAME OVER!');
readln;
end;
如果我记得的话,pascal 中的随机函数 return 是一个介于 0 和 (N-1) 之间的数字。所以如果你想要一个随机数 0 或 1,你需要调用 Random(2)。在开始之后也移动随机化。
我正在尝试制作一个战斗系统,玩家每次都必须猜测一个随机数并希望他能获胜。问题是随机数只生成一次。为什么?
unit game;
interface
uses a,b,reason,crt;
implementation
var health,ehealth: integer;
var a2:String;
var rand3,guess:Integer;
begin
ClrScr;
ehealth:=5;
health:=10;
Repeat
Randomize;
rand3:=Random (1);
writeln('YOUR HP:',health);
writeln('ENEMY HP:',ehealth);
write('Guess the number (1 or 2):');
Readln(guess);
if (rand3+1) = guess then
ehealth:=ehealth-1
else
health:=health-1;
ClrScr;
until (ehealth = 0) or (health = 0);
writeln('GAME OVER!');
readln;
end;
如果我记得的话,pascal 中的随机函数 return 是一个介于 0 和 (N-1) 之间的数字。所以如果你想要一个随机数 0 或 1,你需要调用 Random(2)。在开始之后也移动随机化。