HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0402
祐通長すぎるスクリプト12解決


祐通

リンク

2007/4/2(Mon) 18:42:19|NO.6843

スクリプトって長すぎたら動作がとまるのですか?
約400行あるんですけど、
内容(命令)にもよるんですよね?
ifを使った条件分岐をして、ラベルに飛ぶのですが、ラベルが200あるんですけれど...
ラベルなんで、省略できないとき、どのような対策を取るべきでしょうか?



この記事に返信する


a

リンク

2007/4/2(Mon) 19:04:26|NO.6845

何十万行でもない限り止まりません。
対策を取る必要もありません。



GENKI

リンク

2007/4/2(Mon) 20:11:32|NO.6849

 ソースファイル(.HSP/.AS)の最大サイズは無制限となっています。(マニュアル参照)
また、宣言できるラベルの最大数も無制限となっています。(マニュアル参照)
400行程度のスクリプトならファイルサイズとしてもたいしたことないので作業上も何ら問題ないと思います。
スクリプトが長すぎることが原因で止まることはあまり考えられません。原因はスクリプトにあると思われます。

 実際にそのようなスクリプトを作成して実行したときに止まってしまったのでしょうか?
止まったときにエラーメッセージは出ましたか?
出て来たエラーメッセージには何と書いてありましたか?
もう少し尋ねたいところですが、まずはここまでにしときます。



X-plate

リンク

2007/4/2(Mon) 20:41:25|NO.6852

自分は一万行超えても問題なく動作しました

っていうかこんな長いの書くの自分ぐらいなのかな



GENKI

リンク

2007/4/2(Mon) 21:19:18|NO.6854

 昔作ったゲームのスクリプトをいくつか見てみたんですが、私の場合どれも2000行(メインスクリプト1000行+モジュール1000行)ぐらいですね。
どうやら1000行超えると私の作業許容範囲を超えるようです。w

 「ラベル一覧」が表示しっぱなしにできてなおかつ、ラベル行のコメントまで表示してくれると助かるんですけどねー。
「エラー行に移動」とかあるとなお便利なんですが…。


> 自分は一万行超えても問題なく動作しました

流石に作業しにくくありませんか?(^_^;
複数ファイルに分けてincludeで連結するのも手ですよ。



祐通

リンク

2007/4/3(Tue) 00:09:37|NO.6862

やりたいことは↓のとおりです。

画面A:ボタン作成
画面B:ランダム数表示

画面Aのボタンで画面Bにランダム数を表示。
画面Bで1〜200までのランダム数表示。
出来た数が1なら*1へ。
出来た数が2なら*2へ。
というのが200あって、エラーは出ていません。
何回かやったところ、出来た数が35の時、急にとまって動きません。
スクリプトは間違ってないんですけど・・・。



.

リンク

2007/4/3(Tue) 07:32:02|NO.6870

過去に作ったスクリプトを見たら1400行程度。
問題なく動作してます。

ラベル*35の内容に問題があるとしか…



. . .

リンク

2007/4/3(Tue) 10:28:02|NO.6886

一万行を超えるとプログラムやPCの環境によっては実行に10秒以上かかる場合もありますね。


ちなみに通さん
上級者ならそのスクリプトのラベルは5つ追加に減らせそうな気がします(^^;
>ifを使った条件分岐をして、ラベルに飛ぶ
のはループとifを使えば・・

button "1",*a button "2",*a stop *a s=stat repeat 2 if cnt=s { ;・・・ } loop



祐通

リンク

2007/4/3(Tue) 13:04:14|NO.6894

私は上級者ではないので。(汗
*35ですが、間違った箇所は絶対にない・・・はず。
スクリプト載せたほうがいいですかね???



ゆちボン

リンク

2007/4/3(Tue) 15:25:23|NO.6900

自分が作っているプログラムは正直30000行超えてます。
さすがに「hsed3.exe」ではすごく遅く動作するので、
「hsedle.exe」または「Terapad」でプログラミングしてます。
(↑前のカラーでない方で。)



祐通

リンク

2007/4/3(Tue) 15:55:34|NO.6902

頑張ってみます。
ありがとうございました。



GENKI

リンク

2007/4/3(Tue) 20:36:19|NO.6932

> 私は上級者ではないので。(汗

慣れるまでは今のやり方のほうがいいと思います。もう少し慣れたら挑戦ってことで。


> *35ですが、間違った箇所は絶対にない・・・はず。

 エラーメッセージが出ないということなので、おそらく思わぬところでstopが入っていたり無限ループにつかまったりしているかもしれません。
rnd関数で35が出たと想定して、ボタンを押すところから順番にプログラムの処理を1行ずつ処理を確認しながら追いかけてみてはどうでしょうか?
ミスしてないと思い込んでると意外につまらないミスをしていることがよくあります。(経験上よくあります。)
 全体で400行あっても実際に追いかける部分は全体の数パーセントだと思うので、作業はそんなに大変じゃないと思います。
ちょっと面倒かもしれませんが、指で追いかけていく作業は上級者でも行う作業です。頑張ってみてください。

せっかくなので「デバッグの仕方」が載ってるページを紹介しときます。
http://quasiquote.org/hspwiki/%a5%c7%a5%d0%a5%c3%a5%b0%a4%ce%bb%c5%ca%fd


> スクリプト載せたほうがいいですかね???

 掲示板での400行は多すぎなのでカンベンしてください。(^ ^;
掲示板でのスクリプト掲載は数十行が限界です。



> 自分が作っているプログラムは正直30000行超えてます。

うお…すごいですね。
私は頑張りが足りてないな…。



いくす

リンク

2007/4/3(Tue) 20:56:35|NO.6934

> 自分が作っているプログラムは正直30000行超えてます。
三万行って…コメントとか全部含めてですか…?
> どうやら1000行超えると私の作業許容範囲を超えるようです。w
そのとおりです…自分で作っておきながら私もスプリクトをよく見失います
私の場合いってもメインスプリクトで600〜1000です…
皆さんは天才ですか?



ONION software Copyright 1997-2023(c) All rights reserved.