SITOは、もともとPCX画像を指定された順序とタイミングで表示するだけのものだったため、文字列を扱うのが苦手です。テキストの表示も行えますが、DOS/C化されたLXの画面サイズは不定で、使用環境により見え方が変わってしまいます。そのため、表示したい文字は、あらかじめ画像化して扱うことが良くあります。
しかし、画像ファイルをいちいち作るのは面倒なので、プロトタイプをテキストで作り、後から画像に差しかえるという手段もとれます。
-------- 以下 L07.SIT
'High-Low Game
cls
gosub guide
n=0 '回数
z=ran# '答えの決定 0〜999
b=z/1000
z=z-b*1000
'debug z
w=0
x=0
y=0
gosub disp
loop:
gosub keyin
gosub judge
if n>=10 then over
goto loop
disp:
text 1,1,w
text 2,1,x
text 3,1,y
return
keyin:
numin:
k=key
if k=27 then quit ;[ESC]
if k=13 then enter ;[ENTER]
if k<48 then numin ;[0]
if k>59 then numin ;[9]
w=x
x=y
y=k-48
a=w*100+x*10+y
gosub disp
text 10,3," "
goto numin
enter:
n=n+1
text 1,3,n
text ,,"回目"
return
judge:
if a>z then high
if a<z then low
text 10,3,"Hit!"
pause
goto quit
high:
text 10,3,"High"
return
low:
text 10,3,"Low "
return
over:
text 15,3,"over"
pause
goto quit
quit:
cls
end
guide:
text 1,5,"[0]〜[9] 数字入力"
text 1,6,"[ENTER] 決定"
text 1,7,"[ESC] 終了"
return
-------- 以上 L07.SIT
漢字は、使用環境によって表示できないかもしれないため、注意が必要です。今回はプロトタイプということで、そのまま使用しています。
L07.SITは、Hi-Lo Game と呼ばれるもので、隠された数字を当てるゲームです。ここでは3桁の数字を10回以内で当てるというルールにしました。
数字を入力して[ENTER]キーを押すと、回数とヒントが表示されます。ヒントは、入力値が答えよりも大きい場合「High」、小さい場合「Low」と表示されます。「High」と表示された時はもっと小さな値を、「Low」と表示された時はもっと大きな値を入力して下さい。
入力値が答えと同じ値だった時には、「Hit!」と表示されてプログラムが終了します。10回入力しても正解しなかった場合は「over」と表示されてプログラムが終了します。
|