計算と表示を同時に行うより、全セル計算してから表示の方が、現状の locate + print をセル数分繰り返すより速い。
その場合、表示は
for y = 0 to ym - 1
locate 0, y
for x = 0 to xm - 1
var s = world[x,y]
color col[s]: print cg$[s];
next
print
next
などとして locate を省きます。col[] には種ごとの色、cg$[]には種ごとの文字を入れときます。
こんな感じ
for x = 0 to xm - 1
for y = 0 to ym - 1
var s = world[x,y] '変数に入れて配列アクセスを減らす
if s == 空白 then gosub @space
elseif s == 植物 then gosub @plant
...
endif
next
next