スポンサーサイト

--.--.--.--:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

前回のバグ解消の記事の補足等

2014.09.03.03:42

思い出したことと、前回の説明補足が必要と感じたのでこちらも目を通していただければと思います。



まずは前回の補足から

ここまでけっこう説明をしてきたのとブラスラさんの経験によりうすうす感づいていると思いますが、確認の意味で伝えておいた方がいいと判断したので前の記事の補足です。

ランダムマップの記述でもっとも重要で頭に入れておかないといけないことかもしれません。

それは
「人間が思っているよりも、コンピュータは部分的にしか見れない」
ということです。



先の記事の説明でわかりにくかったかもしれませんが「田中さんが・・・」と例にだしたものについてですが

本来の「if」の意味はわかりきっていると思うので説明を省きましたが、ifの意味は「もし~(の条件)ならば」です。

つまりifを何度も組み合わせたのは「○&○&○&○(の条件)ならば」のような意味を持たせ、いくつもの条件をつけ、限定させるためのものでした。


なぜこのような方法と取らないといけないのか、再度事例とともに説明します。




私の方の爆ランでは「SEA_TYPE」「LAND_TYPE」という要素があります。
これは「海タイプ」か「陸タイプ」かというものですが、どちらかが選ばれるともう片方は選ばれません。


仮にそれぞれの中に
 ・「SEA_TYPE」・・・・・A、B
 ・「LAND_TYPE」・・・・C、D
という小さな要素があったとします。

ランダムで「SEA_TYPE」か「LAND_TYPE」か選び終えたあと、さらに次のランダムによる選択へと進みます。

もし「SEA_TYPE」が選ばれればさらにAかBかをランダムで選び、
もし「LAND_TYPE」が選ばれればさらにCかDかをランダムで選びます。

選択はこのようにされます。



ここで選択されたものがどのように処理されるか< TRERRAIN_GENERATION >等のスクリプトを見てみましょう。

if A
 Aの処理
elseif B
 Bの処理
endif

if C
 Cの処理
elseif D
 Dの処理
endif


こんな感じだとします。

そして今回のゲームでは、最初のランダムにより「SEA_TYPEのB」を選択されたとします。(この記述だとここで問題が生じます)

実際どういう処理をするかで、ifによる条件でBの条件が当てはまり「Bの処理」が実行されました。

この段階では作り手の人間には「よしよし、順調だ!」と思っていたのですが、コンピュータはここでやらかします。


ランダムによるマップ選択の段階では確かに「SEA_TYPEのB」が選ばれましたが「SEA_TYPE」の部分を見ていないコンピュータはCもしくはDも選んでしまいます。(検証してないですが、バグの原因として発生の可能性があるということ)

ここから「(おそらく)ランダムは全てで発生している」ということもわかりますが、困るのが実行する予定ではなかったCやDが実行されてしまうということです。(それを防ごうというのが前回のお話し)


解決策は前回「田中さんが~」でお話しした通り、ifによる条件の限定を行い、部分しか見ていないコンピュータへのフォローすれば問題ありません。

----------------------------------------------------------------
事例と言うことですが解決策を見つける前、今の例でだしたような記述を行っていました。
海タイプを出していろいろ検証しているときに、陸タイプの(あきらかに目立つ)地形がマップに散らばっていたのを確認したことがありました。

----------------------------------------------------------------

とりあえず、以上が前回の補足でした。




次のお話し

思い出したことは「else」についてです。

爆ランⅢ1.6でのバグの検証をしてる時に「else」がやらかしてる感じがしましたが、どうも私はこの「else」に対し曖昧な印象を受けます。

elseが持つ意味はご存知の通り「ifやelseifに当てはまらなかったら」というものです。

使い方によっては問題ないとは思いますが、コンピュータが広い解釈をしてしまった時、やはりバグの元となる気がします。

なので私は「elseを信用していないのでelseは使わず(記述の量は増えるけど)elseifで限定化を図って使用していました」というお話しでした。(限定するという意味では先ほどの補足と一緒ですね)

思い出したのはこれぐらいです。




最後にブラスラさんが現在開発してる爆ランを見て、放送では静かでしたが目をキラキラさせて見てました。(目がサボテンになるぐらい)
元々は舐めつくすようにキャンペーンをプレイしていたキャンペーン厨なので、きれいな街並みの爆ラン楽しみにしてます。でも体はお大事に。



スポンサーサイト

comment

Secret

プロフィール

スキタイ人の青年

管理人:スキタイ人の青年

最新記事
最新コメント
カテゴリ
月別アーカイブ
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。