スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 色々と大変ではある | トップページ | 「鉄子の旅」、とか »

HTML5版を更新

今は、MasterReversiの次バージョンを開発中なのだが、昨日書いた様に、HTML5版に不具合がある、と、メールを貰ったので、短時間でやれる筈の事を先にする、というマルチタスクの鉄則に従って、今日は、その原因究明と修正を行った。指摘された不具合は無くなった筈だ。

指摘された不具合というのは、設定を変更し、コンピュータのコメントのみOnにした状態で対局していると、コンピュータ側がパスするタイミングでフリーズする、というモノだ。

巷のリバーシプログラムのダウンロードページにあるコメントなんかを見ていると、自分が不利な局面になるとクラッシュする、と言う様なちゃぶ台返しをするリバーシプログラムも多々ある感じだ。

HTML5版MasterReversiも、正に、そんな感じだった訳なのだが、巷に、そういうリバーシプログラムが多いのは、通常、リバーシプログラムの方が、その作者よりも強いので、コンピュータ側が不利になる局面でのデバッグがあまり行えないからだ。

更に、HTML5版MasterReversiでは、現象が発生したのはデフォルト設定を変更した場合に限られたので、より、発生ケースを経験するのが難しかった訳だ。

と、いう事で、作者的には、指摘されるまで、不具合の存在は認識していなかった訳なのだが、不具合の状況を鑑みれば、コンピュータプレイヤーのコメント表示ルーチンに問題がありそうな事は、すぐに想定できた。

なので、最初に、そのルーチンを見てみたのだが、パスが発生しようがしまいが、処理内容は同じだった訳だ。

このため、原因の究明には少し時間がかかったのだが、結論から書いてしまうと、「オリエント急行殺人事件」、みたいな感じになっていた。

つまり、コンピュータのコメント処理は、パス発生時以外の通常時にも間違っていて、パス発生時には、その影響から例外が発生し、フリーズする格好になっていた訳だ。

と、いう事なので、コンピュータのコメント処理ルーチンを修正したので、とりあえず、作者が再現できていた不具合は無くなったのだが、それに付随して、元々は、人間側の着手に対するコンピュータのコメントのバリエーションは少なかったのだが、本来のコメントが行われる様にもなった。

HTML5版については、開発時のブログ記事を見てもらえば判る筈なのだが、作者的な関心の殆どは、処理性能にあったので、デバッグ時にはコンピュータのコメント表示は行わせていなかった。

そして、その後も、自分で遊ぶ場合にはアニメーションはOnにしていたし、他ソフトと対戦させてみる場合には、コンピュータのコメントはOffにしていた。

なので、メールで指摘されるまで、パス発生時にフリーズする事には気が付かなかった訳なのだが、作者の着手に対するコンピュータのコメントが変だった事に気が付かなかったのは、情けないかもしれない。

ちなみに、より詳細にバグの内容を書いておくと、コンピュータのコメントは、人間が着手した手の良し悪しによって変化させているので、局面評価が終わるまで、コメントの生成は待たせなければならない。

当然の事ながら、作者はその事を判っていたので、不具合が発生していた処理ルーチンでも、待たせてはいた。

しかし、局面評価処理には時間がかかるので、極力、アニメーション処理なんかと並行動作させる格好にしていた訳だ。

その結果、コンピュータがパスする局面では、人間が着手する局面の評価が終わり、コンピュータのコメントを表示する前に、次の局面の評価を開始していた訳だ。

にも関わらず、局面評価結果を格納している筈の変数を参照していたので、コンピュータのコメント生成処理では、まだ評価が完了していない次の局面評価値を参照する格好になり、例外が発生する事になった訳だ。

上記の通りなので、アニメーションをOnにしていた場合には、アニメーション中に二回目の局面評価も終了していたので、コンピュータのコメント表示処理で例外が発生する事は無かったのだが、この場合にも、コメントは、次局面の評価値から生成されていたので、正しいコメントにはなっていなかった。

もっとも、それ以前に、コメント生成処理が参照している変数の一部にも問題があって、値が入れられていない変数を参照していた。

なので、コメントのバリエーションは少なかった訳なのだが、JavaScriptの場合、それでも例外は発生しないので、通常時には、一見、普通に動作している様に見えてしまった訳だ。

= この記事に関連する公開中ソフト =

MasterReversi

MasterReversi

(2016/05/04追記)

« 色々と大変ではある | トップページ | 「鉄子の旅」、とか »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63356058

この記事へのトラックバック一覧です: HTML5版を更新:

« 色々と大変ではある | トップページ | 「鉄子の旅」、とか »

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google