金曜日, 6月 19, 2009

開発:Tokyo Railways


 あいかわらず「Tokyo Railways コンピュータ版」の次期バージョンの開発を進めています。
 先週から思考ルーチンの刷新に取り組んでましたが、ようやくまともに動くようになってきました。

 先週から苦労していたのは、なぜかコンピュータがジグザグに線路を引くことがあるという問題で、従来にはなかったので何が原因だか調べていたのですが、これがなかなか解らなかった。
 試しに同じ処理でユーザーの線路を建設してみるとまともに引ける。
 だけど、デバッガーでコンピュータの作るルートを見てみると、同じ条件でもやるたびにランダムに変わる。

 いったい何が原因かじっくりソースを追ってみたら、昨日になって原因を見つけました。
 原因は経路の評価ポイントを計算する部品を、複数のスレッドで共有していたからでした。
 計算結果を複数のスレッドで書き換えてたら、そりゃ当然デタラメななコースになりますよ。
 この問題、ちゃんと従来の処理では考えて、スレッドごとに別の部品を割り当ててたのに、今回はそんなことすっかり忘れていたというわけです。自分のプログラムなのに他人のものみたい(苦笑)
 
 ほんの数ヶ月前に作ったプログラムのことをきれいさっぱり忘れているというのは困ったものです。

0 件のコメント: