旅人への電文・旅人からの電文 掲示板
10544Hit.
一歩先行く掲示板
[投稿][検索]
あけぼの
Re:ごっちさん
Re:SB3の「戦闘開始」画面
こんにちは。
はい、ラベルの書き間違えやif文の書き方も、そのようにチェックして、エラーが出ないように本当に何十回もそこだけテストしました。
それでもたまに出てしまうことはあるようです。確率的にはかなり低いと思いますが。
ごっちさんのお考えを拝すると、今公開しているものは、すべて公開中止にせざるを獲ません。
つまり、こちらはかなり細かくチェックしているのですが、バグが出る以上、「品物」「サービス」として送り出すことはできないということになります。
lteですか?何倍かと聞かれるとなんとも言えませんが、時間的には10分の1程度でファイルのアップロードができた感じです。
そうですね、ごっちさんのおっしゃることはごもっともです。エラーが出る物をネットに出すのは、ユーザーに対して失礼ですし、作者としてやってはならないことですよね。
完璧なものが作れない、そこまでスキルがない以上、現在のアプリはすべて公開中止も視野に、今後の対応を検討させていただきます。
貴重なご助言、ありがとうございました。
[返信][削除]
ごっち
Re:あけぼのさん
Re:SB3の「戦闘開始」画面
2000文字をこえてしまったので分割!
3Gのころと比べてLTEは何倍早くなった気がしますか?
私の今のオトノベ用テキストは読み込むのに3分8秒かかります。
[返信][削除]
ごっち
Re:あけぼのさん
Re:SB3の「戦闘開始」画面
ランダム命令のパラメータにするラベル名に間違いはないですか?
ランダム→軍艦を1加える→繰り返す回数の現在の値を修正→ランダムへ行く、の繰り返しのところで、繰り返す上限の回数を=で書いていませんか?
異常、または以下、になるように、>=、もしくは<=で書くと無用な無限ループにはならないかも。
(より小さい、より大きいの書き方でもいいですよ)
むむむむむむ、、ちゃんとしっかりと書いておられるのであれば、となると、書き方の問題ではなくて、構造というか、組み立て方に何かしら、何かがあるのかもしれない?
原因は分からないけど毎回起こる、ときどき/たまに起きるなど、
エラーが起こることが分かっているものは、出来上がっていても公開してはならないんじゃないかと私は思う。エラーが起きるのが分かっているのは、出来上がっていないといっていいと思う。
ほんとにめったに誰もこれを選択しないだろう、そこはめったにしないだろうという箇所につぶせないバグがある場合はしかたないかも。公開もやむをえず。
つぶせないというのは追いかけ方が不十分、足りないと思うんだけど。
今はネットがあるから見切り発車でまあまあのエラーがあっても公開してもそれほど大きなことではないのかも。。重大なエラーじゃなきゃ大丈夫、後から修正パッチを公開すればなんとかなる、みたいな。
バグ探しの方法を書きます。
スクリプトテキストを開いて、バグに関連する始まりのラベルから、カーソルを上下左右矢印キーで流れを辿りながら、進んでいきます。ラベルはラベル部分をコピーし、検索でヒットさせて移動します。たとえ2行下にそのラベルがあっても、もしかしたら同じラベル名を二個、三個書いてしまっていないかもチェックできます。
値を意識して、命令の意味を考えながら、自分がCPUになったつもりで書かれている通りに上下移動し、if文分岐でその両方の行き先を確認し、とりうる値はこれでいいのか考え、この命令は余計なことをしていないか考えたり、こういうことをしないと、何度実行させてもなかなか見つけにくいバグは見つからないかも?
エラーの原因の発見の仕方、バグの見つけ方はもうだいたいかきつくした感があります。とにかく根気よく辿っていかないと…、って、もういいって。アハハハ。
[返信][削除]
あけぼの
Re:ごっちさん
Re:SB3の「戦闘開始」画面
こんばんは。
まったくそのとおりですね。
私も「スパゲティ」にならないように、記述には気をつけています。
そうですね、白兵戦などのイベントは、一定の条件を満たすまで、ランダムでパラメータを割り振るという計算が必要になるため、こちらもかなり繰り返して記述をしなおしたりしましたが、たまに「たらい回し」になりますね。
複数の敵艦が出てくるイベントも、一定の条件になるまで、ランダムで割り振る計算を繰り返すので、たまに出ます。
こちらでもif文の書き換えとか、その都度パラメータをわざと表示させてこまかくチェックしながらテストしたりと、何十回もテストや書き直しをして、現時点でもっともエラーの確率が低い記述で出しています。
今日からlteになりましたが、アップロードの速さがまるで違いますね。以前、有線ルーターでネットをしていたときの感覚です。
「SB3」は今、テストしながらプログラムを手直しし、またテストしてチェックするという作業を繰り返しています。
私も、バグは載せてなるものかとやっています。半角と全角、大文字、小文字、記号やスペルの書き間違えなど、少しでもおかしいなと思う箇所は、細かく見直して書き上げて行っています。
ただ、「SB3」は、イベントの関係で、シリーズでは一番ファイルサイズが大きくなっていて、プレイするときにちょっとだけ読み込みに自艦がかかりますね。
座標などのパラメータはほぼ問題なく動くので、今はわざと隠しイベントが出るようにして、それが正しくプレイとして流れていくか、それを確認しているところです。
それが問題なければ、アップロードできるかと思います。とにかく、数回セーブしながらテストをして、怪しいところがないか、調べつつプレイしています。
[返信][削除]
ごっち
Re:あけぼのさん
Re:SB3の「戦闘開始」画面
隠しイベントを作ったんですね、そうかあなるほどー。
まだ10パーセントしか作ってないけど、すでにここまで大きくなったテキストでも
新しく作った部分を合体させて実行させてもほとんどエラーは出ないです。
何事も無くすんなり動作する、し続ける場合が、ほとんどです。
それは作るときに、一度たりともここにはバグが潜んでないかなんて探しにこないぞと思いながら書いているから。
どうしてエラーになるのかわかんない、どこにバグがあるのかわかんない、私の書いたスクリプトは正しいのに、この元々のプログラムにバグがあるからに違いない、
だめだお手上げだ、せっかくここまで書いたのにこのテキストは削除しよう、残念だけど、
なんてことは絶対に避けなければならないことです。
非常に分かりにくい、あっち行ってこっち行ってのぼってくだってがたくさんたくさんあるプログラム(スクリプト)を
スパゲティーとか、スパゲティープログラムとか昔言ってる時代がありました。今はもう誰も言ってないと思いますけど。
分かりやすいのであればきっと流れが見やすい、バグを探しやすいのかなと思います。
スパゲティーになっていませんか?
> 私もゲームの中身のプログラムが複雑化し、行数が多くなるにつれ、いきなり「エラー」が起きる回数が増えた気がします。
どこか 値とパラメータとを取り違えている箇所があるから?
どんなエラーですか?教えてください。
> 今の「sb」シリーズでも、白兵戦イベントや複数の敵艦が登場するイベントの計算途中で、突然プログラムが停止することがあります。
たぶんぐるぐる回っているんだと思いますよ、たらいまわしになっているんだと思いますよ。無限ループ状態。
値を意識しながら流れを実際の行を追ってみてください?
> 起きないように記述をいろいろとかえたり工夫してみましたが、完全に防げていません。
値がプラス、0、マイナスの時どうなるかを考えるとか、
命令や値、パラメータは半角文字、表示する文章は全角文字(ここだけの話、今では半角文字も表示できるようになりましたけどね)、この文字種の違いは厳格に守って 書かないと。
[返信][削除]
ごっち
Re:あけぼのさん
Re:SB3の「戦闘開始」画面
エラー7のことで、内容が分かりにくく書いてしまったので、分かりやすく整理し、書き直してみる。
エラー7は、以前に調べたら、
配列変数で存在しない配列に対しどうこうしようとして出てくる、
その他のケースもある(いくつか内容が書いてあったがあまり関係がうすいと思い省略した)
ここまでのことできっと好感度パラメータで1から999の範囲外の好感度を
どうこうしようとしてこのエラーが起きると思ってた。
しかし今回go命令の行き先のラベルを書き忘れていた、そしてそのgo命令が実行された、その結果エラー7が起きた。
go命令なのでパラメータは関係していない。それでもエラー7が起きた。
通常、go命令やif文で行き先のラベルがない(書き忘れや書き間違いなど)の場合、
ラベルが見つかりません
と言われるのだが。
そこで実験してみた。
今回ラベルが無くてエラー7が出たものは行数が4万8千行あり、それなりに20個、30個のパートに分かれて作ってある、ラベル数もそれなりに多い、コメント行もそれなりに多い。
実験とはいえ同様なスクリプトを1から作るのはめんどくさいので、15行程度のいろんな命令を書いたものをコピペして5万行へ膨らませた。
だがこれでもラベルがみつからないといわれてしまった。
エラー7は単純に行数が多いからではなさそうだ、
リアルにたくさん異なるラベルを書き、異なる好感度パラメータに対して何かする命令を書かないと、エラー7はでないのかもしれない。
[返信][削除]
[次へ][最新]
[投稿する]
[投稿通知]
[ホームに戻る]
[過去ログ倉庫]
[管理画面]
[LINEでURLを送る]
[無料レンタル掲示板]