投稿
printf printf
ちょっと暇だったので今流行の(?)プチコンクイズ的なプログラムを作ってみました、行数は多めですが、難易度は低めです 公開キー:BANX23QJ 先ずは実行してみてください、すると左上に10x10のテキストで表現されたマップと中央に人物のキャラが表示されると思います 十字キーで道に沿って動かすことができます 試しに、10行目の処理をSX=10:SY=10に変更して再び実行してみてください、マップの表示位置が変わります さて、ここからが問題です 先ほど変更した処理を、SX=40:SY=20とすると画面の表示が崩れてしまいます マップの下に移動すればする程、どんどん崩れてしまいます どのように修正すれば問題が解決するでしょうか? 色々な解決策があると思いますが、画面が崩れなくなればオッケーです 暇で暇でしょうがねーという方、いかがでしょう?
7そうだね
プレイ済み
返信[1]
親投稿
KU kerorinU
一番簡単かつすぐに思い付きそうなのは10行目の後に IF SY>19THEN SY=19 を挿入することですが、、、これだと根本的解決になっていないんですよね、、、どうしたもんか。
0そうだね
プレイ済み
返信[2]
親投稿
printf printf
KUさん、暇人を構って頂いてありがとうございます 基本、画面が崩れなければオッケーなので、それも一つの正解だと思いますよー 何をもって「一番簡単」とするかは議論の余地があると思いますが、修正文字数の最小を目指した場合、今の所2文字です
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
85行目と95行目と98行目の表示命令の行の最後に セミコロンを付けます。 セミコロンを付けずにコンソール画面の一番下の行で表示をすると 強制スクロールするため表示が崩れます。 SX,SYの値が大きすぎるとエラーになってしまうんで 14行目の次に IF SX+W>50 OR SY+H>30 THEN ? "SX,SYのしょきちをかくにんしてください。”:END ENDIF も有った方がいいかな? ついでに14行目の後に IF SX>W>40 OR SY+H>20
0そうだね
プレイ済み
返信[4]
親投稿
printf printf
otta777さん、ご回答ありがとうございます 表示が崩れる直接的な原因はおっしゃる通りですねー テキストベースでゲームを作る場合には必要な場合が多いですよね
0そうだね
プレイ済み
返信[5]
親投稿
pinfu ANNAININ
う~ん。難しい! 難しく考えすぎなのかしら?? 2ヶ所訂正・・・ SXとSYの値をそっともとに戻す。 初心者には、これぐらいしか・・・・
0そうだね
プレイ済み
返信[6]
親投稿
printf printf
pinfuさん、悩んでくださってありがとうございます 画面が崩れなければオッケーなので、そっと戻すもまた一つの正解だと思います
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
>printfさん この現象を利用すると逆スクロールのレースゲームとか、 スキーゲームがSCROLL命令の無いBASICでも組めるので 重宝しました。
2そうだね
プレイ済み