7.プログラムの実際1


 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」と表示されてプログラムが終了します。