⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defchar.bas

📁 由一个古老的BASIC解释器改进而成, 保留了ANSI C固有的艺术美感.
💻 BAS
字号:
rem defchar.bas

gosub define_chars

dim chardata (8, 8)
dim charbyte (8)
esc$= chr$ (27)
del$= chr$ (127)
sym= 246

mode 10

xini= 10
yini= 10

locate yini, xini: print chr$ (250); string$ (8, 252); chr$ (249)
for i= 1 to 8
	locate yini + i, xini: print chr$ (251);
	locate yini + i, xini + 9: print chr$ (251);
next
locate yini + 9, xini: print chr$ (248); string$ (8, 252); chr$ (247)


x= 1: y= 1

if chardata (y, x) = 0 then c= 253 else c= 254

locate yini + y, xini+ x
print chr$ (c);

repeat
	get a$
	a$ = upper$ (a$)
	ox= x: oy= y
	if a$ = "P" or a$ = "RIGHT" then x= x + 1
	if a$ = "O" or a$ = "LEFT" then x= x - 1
	if a$ = "A" or a$ = "UP" then y= y - 1
	if a$ = "Z" or a$ = "DOWN" then y= y + 1
	if a$ = " " then chardata (y, x)= 1: goto redraw
	if a$ = "E" or a$ = del$ then chardata (y, x)= 0: goto redraw
	if a$ = "D" then gosub showdef : goto sigue
	if x < 1 then x= 1
	if x > 8 then x= 8
	if y < 1 then y= 1
	if y > 8 then y= 8
	if ox = x and oy = y then goto sigue
	if chardata (oy, ox) = 0 then c= 32 else c= 255
	locate yini + oy, xini + ox
	print chr$ (c);

	label redraw

	if chardata (y, x) = 0 then c= 253 else c= 254
	locate yini + y, xini+ x
	print chr$ (c);
	gosub redef
	locate yini + 2, xini + 12: print chr$ (sym)
	
	label sigue
	
until a$ = "Q" or a$ = esc$

end

label redef

for i= 1 to 8
	b= 1
	c= 0
	for j= 8 to 1 step -1
		c= c + chardata (i, j) * b
		b= b * 2
	next
	charbyte (i)= c
next

symbol sym, charbyte (1), charbyte (2), charbyte (3), charbyte (4), charbyte (5), charbyte (6), charbyte (7), charbyte (8)

return

label showdef

locate yini + 12, 1
print spc (60)
locate yini + 12, 1

print "symbol n, ";
for i= 1 to 8
	print charbyte (i);
	if (i < 8) then print ", ";
next
print
return

label define_chars

read c

if c = 999 then return

gosub read_char

goto define_chars

label read_char

for i= 1 to 8
	read a$
	a (i)= val ("&X" + a$)
next

symbol c, a (1), a (2), a (3), a (4), a (5), a (6), a (7), a (8)

return

data 255

data 11111111
data 11111111
data 11111111
data 11111111
data 11111111
data 11111111
data 11111111
data 11111111

data 254

data 11111111
data 11101111
data 11101111
data 10000011
data 11101111
data 11101111
data 11111111
data 11111111

data 253

data 00000000
data 00010000
data 00010000
data 01111100
data 00010000
data 00010000
data 00000000
data 00000000

data 252

data 00000000
data 00000000
data 00000000
data 11111111
data 11111111
data 00000000
data 00000000
data 00000000

data 251

data 00011000
data 00011000
data 00011000
data 00011000
data 00011000
data 00011000
data 00011000
data 00011000

data 250

data 00000000
data 00000000
data 00000000
data 00011111
data 00011111
data 00011000
data 00011000
data 00011000

data 249

data 00000000
data 00000000
data 00000000
data 11111000
data 11111000
data 00011000
data 00011000
data 00011000

data 248

data 00011000
data 00011000
data 00011000
data 00011111
data 00011111
data 00000000
data 00000000
data 00000000

data 247

data 00011000
data 00011000
data 00011000
data 11111000
data 11111000
data 00000000
data 00000000
data 00000000

data 999

rem End of defchar.bas

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -