日記/2011-01-16

Last-modified: 2011-01-17 (月) 14:45:46

某所にて、あまりにも美しいコードを発見したので保存がてら。
アドベンチャーゲームのひな形のようだが・・・

	title "てすと"
	width 640,480,0,0
	cls 0
	sdim nowmes, 1024

*start
	redraw 0
	color 255,255,255
	boxf
	color

	day = day + 1

	;メッセージ
	nowmes = " "
	if day = 1 : nowmes = "1"
	if day = 2 : nowmes = "2"
	if day = 3 : nowmes = "3"
	if day = 4 : nowmes = "4"
	if day = 5 : nowmes = "5"

	pos 0,0
	mes " " + day + "日目"
	pos 0,110
	button "次の日" , *tugi

*mess ;メッセージ表示部
	pos 0,350
	mesbox nowmes, 640, 130, 0
	redraw 1
	stop

*tugi
	goto *start

	end

素晴らしくまとめられたソースコードである。何が素晴らしいって、HSPをはじめたばかりの人が学ぶべき点が凝縮されている点である。
具体的に間違いをあげてみると

  • 3行目にいらないcls
  • *messといういらないラベル
  • 絶対に到達できないend
  • redraw0の後にboxfで白く塗りつぶすことで、ボタンとメッセージボックスが消えると思っている
  • メッセージを表示するたびにメッセージボックスを作成している

さらに、もとはインデントされていなかった。
どこかで一回でもマトモなサンプルを見る機会があればこんな芸術は生まれ出でなかったであろう。redrawやclsの違い、画面に表示される文字やオブジェクトの違いなどが一同に学べるダメの見本市と呼べるコードなので、HSPでノベル作りたいけどよくわからんという初心者の方々はこれを直すためにヘルプやサンプルを総ざらいすることから始めるといいだろう。