选择Commodore 64 BASIC中的随机字符串

问题描述 投票:9回答:2

我的程序中有此变量声明:

X="MAGENTA"
Y="CYAN"
Z="TAN"
A="KHAKI"

现在,我要随机选择其中之一并PRINT。但是如何做到这一点?

string random basic commodore
2个回答
5
投票

我的BASIC非常生锈,但是您应该只能使用类似的东西:

10 X$ = "MAGENTA"
20 Y$ = "CYAN"
30 Z$ = "TAN"
40 A$ = "KHAKI"
50 N = INT(RND(1) * 4)
60 IF N = 0 THEN PRINT X$
70 IF N = 1 THEN PRINT Y$
80 IF N = 2 THEN PRINT Z$
90 IF N = 3 THEN PRINT A$

或将其放在子程序中以供代码重用:

  10 X$ = "MAGENTA"
  20 Y$ = "CYAN"
  30 Z$ = "TAN"
  40 A$ = "KHAKI"
  50 GOSUB 1000
  60 PRINT RC$
  70 END

1000 TV = INT(RND(1) * 4)
1010 IF TV = 0 THEN RC$ = X$
1020 IF TV = 1 THEN RC$ = Y$
1030 IF TV = 2 THEN RC$ = Z$
1040 IF TV = 3 THEN RC$ = A$
1050 RETURN

当然,您可能应该将数组用于此类操作,因此您可以使用:

10 DIM A$(3)
10 A$(0) = "MAGENTA"
20 A$(1) = "CYAN"
30 A$(2) = "TAN"
40 A$(3) = "KHAKI"
50 PRINT A$(INT(RND(1)*4))

0
投票

以上答案正确无误。

另一方面,这个答案没有,但是我上个月实际上在做Commodore BASIC的一些工作,并决定字符串索引有时会有用,所以这是一个无答案的问题,它重新构造了您的问题。

100 X$ = "MAGENTACYAN TAN KHAKI " 110 PRINT MID$(X$,INT(RND(1)*4)*7, 7)

此代码获取一个从0到3的随机整数,然后使用该整数在单个字符串中查找开始索引,该字符串包含所有四个条目,每个条目(必要时)填充为7个字符。需要填充,因为MID $的最终参数是要提取的子字符串的长度。

P.S。如果您发现我犯了一个错误,就可以加分!

© www.soinside.com 2019 - 2024. All rights reserved.