【发布时间】:2019-11-18 01:03:22
【问题描述】:
我在 Commodore 64 模拟器上输入了“hello world”。我必须让它打印出来 你好世界 你好世界 你好世界
我怎样才能只使用一个打印语句来做到这一点?
【问题讨论】:
-
添加你写的 BASIC 命令
标签: commodore
我在 Commodore 64 模拟器上输入了“hello world”。我必须让它打印出来 你好世界 你好世界 你好世界
我怎样才能只使用一个打印语句来做到这一点?
【问题讨论】:
标签: commodore
这是一个答案,下面有解释
10 a$="hello world" : rem your string goes here
20 c$=a$:gosub100:d$=a$:gosub200:printc$;" ";a$;" ";d$ : rem the one print
30 end
100 a0$=a$:a$="" :a2$=" ":rem in capital-case subroutine
110 for i=1tolen(a0$):a1$=mid$(a0$,i,1):ifa2$=" "thena1$=chr$(asc(a1$)or128)
120 a2$=a1$:a$=a$+a1$:next:return
200 a0$=a$:a$="": rem all in uppercase subroutine
210 for i=1tolen(a0$):a1$=mid$(a0$,i,1):a$=a$+chr$(asc(a1$)or128):next:return
它符合您只有一个打印语句的规则。 它的工作原理是复制所有小写字符串,然后转换为首字母大写并复制该字符串,最后将其余部分转换为大写,然后在单张打印中以正确的顺序使用副本声明。
在 PETSCII 中大写其他方面非常简单,因为您只需设置每个字符的高位 (128) 即可。但是,由于 BASIC 2.0 还没有这方面的功能,因此需要对 a$ 进行操作的子例程。
【讨论】:
您可以在字符串和打印语句中使用控制字符。其中一些记录在 C64 BASIC 手册和程序员参考指南中(即,反向字符,以及带有 CTRL 和 C= 键的颜色字符代码)
这是一个简单的示例(必须通过屏幕截图才能显示) - 当您打开一个字符串时,按 CRTL 和 N - 它会显示一个反转的 N 字符,这是从 CBM 图形字符和 CBM 商业模式切换人物。按CTRL 和H 将在字符串中添加一个反向的H,这是为了禁用SHIFT + C= 键以阻止您在这两种字符模式之间手动切换。如果您想在 Business Mode 和 Graphics Mode 之间轻松切换,请忽略它。
据我所知,没有简单的控制字符可以从商业模式切换到图形模式,您可以在此处描述的开放字符串中使用它。要切换回图形模式,请使用:
print chr$(142)
这也可以添加到一个字符串,即,
let a$ = chr$(142) + "hello world"
您也不需要 Commodore BASIC 中的 LET 语句。我在这里仅用于说明目的。
【讨论】: