Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 从qbasic中预定义的字符串中提取随机字符串_String_Qbasic - Fatal编程技术网

String 从qbasic中预定义的字符串中提取随机字符串

String 从qbasic中预定义的字符串中提取随机字符串,string,qbasic,String,Qbasic,所以我在QBasic中为战场3制作一个随机地图生成器 这个想法是,当我运行程序时,程序应该从已经预定义的字符串打印一个地图名称。到目前为止,我掌握的代码是: CLS REM --------------------- RANDOM NUMBER VALUE -------------------------- RANDOMIZE TIMER: A = INT((RND * 100)): B = INT((RND * 10)): C = (A + B) NUM = INT(C - (RND *

所以我在QBasic中为战场3制作一个随机地图生成器

这个想法是,当我运行程序时,程序应该从已经预定义的字符串打印一个地图名称。到目前为止,我掌握的代码是:

CLS
REM --------------------- RANDOM NUMBER VALUE --------------------------

RANDOMIZE TIMER: A = INT((RND * 100)): B = INT((RND * 10)): C = (A + B)
NUM = INT(C - (RND * 10))

REM --------------------------- MAPS -   -------------------------------

A$ = "Caspian Border"
B$ = "Damavant Peak"
C$ = "Grand Bazaar"
D$ = "Kharg Island"
E$ = "Norshar Canals"
F$ = "Operation Firestorm"
G$ = "Operation Metro"
H$ = "Seine Corssing"
I$ = "Tehran Highway"

REM ----------------------------- GAME MODE  ----------------------------

RSH$ = "Rush"
TDM$ = "Team Deathmatch"
CQS$ = "Conquest"
CQSL$ = "Conquest Large"
SQDM$ = "Squad Deathmatch"

REM --------------------------- PLAYER COUNT -----------------------------

AA$ = "16 Players"
BB$ = "32 Players"
CC$ = "64 Players"

REM ------------------------ PROCESSING CODE ----------------------------

PRINT "Bore-o-mat 3000 Initilaized"
PRINT "The random number is"; NUM; "therfore the map drawn is:"


IF NUM > 10 THEN PRINT A$
IF NUM > 20 THEN PRINT B$   
IF NUM > 30 THEN PRINT C$
IF NUM > 40 THEN PRINT D$
IF NUM > 50 THEN PRINT E$
IF NUM > 60 THEN PRINT F$
IF NUM > 70 THEN PRINT G$
IF NUM > 80 THEN PRINT H$
IF NUM > 90 THEN PRINT I$

END    
假设随机数是22

它检查NUM是否大于10并打印$,因为22>10。B$也是如此。当涉及到C$时,程序会中断,因为NUM不大于30。这很正常。问题是我得到了不止一个地图名。我得到一些。参考图片:

我只需要一个基于随机数的字符串

我怎样才能使代码不转到下一行? 有没有更简单的方法拉随机字符串

就像我运行程序,它从a$,B$,C$等中抽取一个随机字符串


干杯:)

你真的应该把字符串放在一个数组中。否则,这里有一个快速解决方案

IF NUM >= 10 AND NUM < 20 THEN PRINT A$
IF NUM >= 20 AND NUM < 30 THEN PRINT B$
IF NUM >= 30 AND NUM < 40 THEN PRINT C$
IF NUM >= 40 AND NUM < 50 THEN PRINT D$
IF NUM >= 50 AND NUM < 60 THEN PRINT E$
IF NUM >= 60 AND NUM < 70 THEN PRINT F$
IF NUM >= 70 AND NUM < 80 THEN PRINT G$
IF NUM >= 80 AND NUM < 90 THEN PRINT H$
IF NUM >= 90 AND NUM < 100 THEN PRINT I$
如果NUM>=10且NUM<20,则打印$
如果NUM>=20且NUM<30,则打印B$
如果NUM>=30且NUM<40,则打印C$
如果NUM>=40且NUM<50,则打印D$
如果NUM>=50且NUM<60,则打印E$
如果NUM>=60且NUM<70,则打印F$
如果NUM>=70且NUM<80,则打印G$
如果NUM>=80且NUM<90,则打印H$
如果NUM>=90且NUM<100,则打印I$

您可以将它们放入一个数组中,然后随机选择一个:

A$(1) = "Caspian Border"
A$(2) = "Damavant Peak"
A$(3) = "Grand Bazaar"
A$(4) = "Kharg Island"
A$(5) = "Norshar Canals"
A$(6) = "Operation Firestorm"
A$(7) = "Operation Metro"
A$(8) = "Seine Corssing"
A$(9) = "Tehran Highway"
Num = INT(RND * 9 + 1)
PRINT A$(Num)

还有,有没有一种更简单、更可靠的随机数抽取方法?RND和随机定时器stff真是荒谬。有时我会连续三次得到相同的数字。在一个完全随机的序列中,每100次选2个数字,每1000次选3个数字,以此类推。