【问题标题】:How to separate a string in commodore 64 basic?如何在 Commodore 64 basic 中分隔字符串?
【发布时间】:2014-03-23 20:20:55
【问题描述】:

我在 Commodore 64 中将一块“.”板初始化为一块板。

我想将单词随机放入板上,单词的每个字母都是“。”在棋盘上(就像一个单词搜索游戏)。如果单词不适合,则可以放置下一个单词。我想将单词垂直和水平放置。这是我到目前为止所拥有的:(这使得点板为 10x10)

关于分隔一个单词(我有硬编码的单词)并将它们垂直和水平放置在屏幕上的任何想法?

1060 rem: Subroutine Fill 
1070 rem: Purpose: read and data construct which fills b3$(x,x) with
1080 rem: either "."s or other random words depending on whether or not
1090 rem: the subroutine has been run before.
1100 x = 10
1110 rem: x represents the dimension for the board; in this case, 10
1120 rem: took out dim b3$(x, x)
1130 rem: array b3 = board = specifications for width and height (10)
1140 rem: i to x allows the horizontal aspect of board to be filled with "."s
1150 for i = 0 to x 
1160 rem: j to x allows the vertical aspect of board to be filled with "."s
1170 for j = 0 to x
1180 rem: board filled with dots horizontally and vertically
1190 b3$(i, j) = "."
1200 rem: end of first nested for loop
1210 next
1220 rem: end of second nested for loop
1230 next
1240 return

1400 dim wo$(9)
1410 wo$(0) = "word"
1420 wo$(1) = "stack"
1430 wo$(2) = "overflow"
1440 wo$(3) = "hello"
1450 wo$(4) = "no"
1460 wo$(5) = "how"
1470 wo$(6) = "why"
1480 wo$(7) = "start"
1490 wo$(8) = "end"
1500 wo$(9) = "done"
1510 print wo$(7)
1520 return

10 print "START"
20 rem: go to line 1100 in order to fill board with "."s because this is
30 rem: the board's initialization
40 gosub 1100
50 rem: looping from i to x allows for horizontal aspect of board to be printed
60 rem: x represents the width dimension of board, in this case, 10
70 for i = 0 to x
80 rem: looping from j to x allows for vertical aspect of board to be printed
90 rem: x represents the height dimension of board, in this case, 10
100 for j = 0 to x
110 rem: board initialized with "."s is printed
120 print b3$(i,j), 
130 rem: end of first for loop, looping from i to x put on 130; , USED 4 TAB
140 next
150 print
160 rem: end of second for loop, looping from j to x
170 next
180 rem: checks what at the random number is equal to; places word vertically
190 rem: if rand is 0 and places the word horizontally if rand is 1

现在我需要将单词放在网格中

有什么想法吗?

【问题讨论】:

    标签: basic c64 commodore


    【解决方案1】:

    MID$ 字符串函数

    另一个重要功能是MID$。此函数选择为其参数给出的任何字符串的一部分。

    输入命令:

    PRINT MID$("ABCOEFG",2,4)
    

    结果显示MID$ 是如何工作的。在这种情况下,它显示一个 4 个字符的字符串,从“ABCDEFG”的第二个字符开始。

    在正式术语中,MID$ 函数采用三个参数,它们用逗号分隔并用括号括起来。论据如下 如下:

    • 第一个是要使用的字符串。
    • 第二个是指定第一个字符位置的数字 结果。
    • 第三个数字是给出结果长度的另一个数字。

    如您所料,任何参数都可以是适当类型的变量。结果的长度可以是从0(称为null 字符串)到第一个参数的完整长度的任何值。在实践中,它通常是一个字符。

    这是一个简单的程序,用于输入单词并向后显示。仔细研究并注意函数LENMID$是如何使用的:

    10 INPUT "PLEASE TYPE A WORD"; X$  
    20 PRINT "YOUR WORD BACKWARD IS"  
    30 FOR J = LEN(X$) TO 1 STEP - 1  
    40 PRINT MID$(X$,J, 1);  
    50 NEXT J  
    60 STOP  
    

    键入程序并自己检查;尝试 1、2 或更多字符的单词。

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多