2014-07-19 2 views
1

에 미리 정의 된 문자열에서 임의의 문자열을 당기기 3.그래서 내가 전장에 대한 QBASIC에 임의의 맵 생성기를 만드는 중이라서 QBASIC

아이디어는 내가 프로그램을 실행 whenether, 프로그램은 이미 사전 정의 된 문자열에서 맵 이름을 인쇄해야한다 . 내가 지금까지 가지고있는 코드는 다음과 같습니다

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  

는 임의 NUM이 NUM 10보다 큰 및 달러 (A $)를 인쇄하는 경우는 검사 (22)

말할 수 있습니다, 그것은 않는 22> (10) 때문에에 대해 동일 B $. C $의 경우 NUM이 30보다 크지 않으므로 프로그램이 중단됩니다. 정상입니다. 문제는 하나 이상의지도 이름을 얻는다는 것입니다. 나는 약간을 얻는다. 사진에 Reffer :

http://i.stack.imgur.com/TTnXQ.png

나는 임의의 숫자를 기반으로 하나의 문자열을합니다.

어떻게 코드를 다음 줄로 나누지 않습니까? 임의의 문자열을 가져 오는 더 간단한 방법이 있습니까?

내가 프로그램을 실행하고, 달러 (A $), B의 $에서 임의의 문자열을 끌어와 마찬가지로 C $ 등

건배 :)

답변

2

당신은 정말 배열에 문자열을 넣어해야합니다. 그렇지 않으면 빠른 수정이 있습니다.

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$ 
+0

또한 난수를 추출하는 더 간단하고 안정적인 방법이 있습니까? 그 RND와 RANDOMIZE TIMER stff는 우습다. 때로는 같은 번호를 3 번 ​​연속 사용합니다. – Gala