2017年4月
            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            

最近のトラックバック

無料ブログはココログ

« 年末年始は風邪でした | トップページ | 時刻表ビューの [表示]-[全時刻を表示] を試作-2 »

2012年1月15日 (日)

駅間所要時間が12時間を超えるダイヤ

 先日、ユーザーの方から「駅間所要時分が12時間を超える時刻表を入力すると、ダイヤグラム画面が正しく表示されなくなります。」というご指摘をメールで頂きました。たしかに、現在のOuDiaでは、駅間所要時間が12時間1分~23時間59分になるような入力を行うと、時刻を戻るような列車線が描画されます。

 僕自身は、駅間所要時間が12時間以上などというケースに遭遇したことがないのですが、このユーザーの方は、国際線航空機のダイヤを入力なさっているそうです。確かに、アメリカ中部→日本では、所要時間は12時間を越えますね。

 実は、この現象についてご指摘を受けたのは初めてではなく、2009年7月頃にも当ブログのコメントとして、ご指摘を受けたことがありました。このときの方は、ゲーム『A列車で行こう』の運行ダイヤを作成しているとのことでした(http://oudiary.cocolog-nifty.com/blog/2009/07/oudia-e7af.html)。しかし、僕自身が『A列車で行こう』をやったことがないため、ユーザーの方の要望内容が把握できませんでした。

 この現象の原因は、OuDiaでは、「2つの時刻の差を求める場合は、絶対値が小さい側の値を採用する 」という考え方をとっているためです。
 例えば、 23:00 は 1:00 の「22時間後」だとも言えますし、「2時間前」だとも言えます。この場合、OuDiaは絶対値の小さい「2時間前」を採用します。この結果に従って列車線を描画するため、時刻を戻るような列車線が表示されるのです。
 日付の概念のないOuDiaでは、この「時刻の差を正確に判定することができない」という問題は避けられません。

 OuDia設計当時の僕は、12時間以上の駅間所要時分の存在の可能性を考えもしませんでした。このため、上記の、「2つの時刻の差を求める場合は、絶対値が小さい側の値を採用する 」という考え方で問題を感じたことはありませんでした。その結果、 「12時間以上の駅間所要時分」は、今のOuDiaでは完全に設計想定外になっています。

 僕としては今のところ、この問題に対して修正を実施する予定はありません。理由は、僕自身は「駅間所要時間が12時間以上」という使い方をしていないため、どのような仕様にすればいいのかが判断できないためです。
 単純に考えれば、「2つの時刻の差を求める場合は、後の駅の時刻は必ず、前の駅の時刻より後と考える」という仕様が考えられますが、それは本当に便利でしょうか?
 一例として、

 (1) 時刻表の上から下にA駅・B駅・C駅の順で駅が並んでおり、A駅発を10:30・B駅発を10:35・C駅発を10:40の列車があるとします。

 (2) 上記列車入力時、誤ってC駅発を10:30と入力してしまったとします。

 (3) ここでダイヤグラムビューを表示させた場合は、B駅~C駅の列車線は、所要時間23時間55分相当で表示されることになります。これの見た目の印象は、

  1.  列車線がほとんど水平に見える 
  2.  B駅とC駅の縦の幅が極端に大きいダイヤグラムになる。場合によっては、ダイヤグラムの描画に非常に時間がかかる。ダイヤグラムの描画中はOuDiaは操作不能なため、実質的にはOuDiaのフリーズとなる。

のどちらかです。こんな表示で本当にいいのでしょうか?

« 年末年始は風邪でした | トップページ | 時刻表ビューの [表示]-[全時刻を表示] を試作-2 »

コメント

「A列車で行こう」の運行ダイヤについて
前書きーーーーーーーーーーーーーーーーーーーーーーーーーー
 | 「A列車で行こう」とは、鉄道会社経営ゲームです。この直後|
 |に触れだす「RailSim」とは、フリーソフトの鉄道模型シミュレ- |
 |ターです。                               |                      
  --------------------ーーーーーー
この機能はRailSimというフリーソフトにも搭載されています。それは、実際の時間よりもゲーム内の時間の方が速く進む機能です。これは必要な機能なのです。それでは説明してみましょう。
例えば、ゲームが実時間と同じ速さで進むとしましょう。そのゲームの中で1時間過ごしたら実時間も1時間過ごすことになります。もっと極端なことを書けば、ゲームの中で1日過ごしたら実時間も1日過ぎていきます。これでは、鉄道会社経営ゲームの「A列車で行こう」にとっては、プレイヤーが行った操作に対する効果の確認に時間がかかりすぎますし、鉄道模型シミュレーターの「RailSim」でも、鉄道模型の世界にも時間が流れていますので、1日の列車の動きを確認するには本当に実時間でも1日必要になります。これではあまりにも不便すぎます。そこで「ゲーム内の時間を実時間よりも速く進めてしまえ!」ということになりました。といっても、時間を早送りしているわけではないのです。わかりにくいので、もう少しわかりやすく説明してみましょう。
例えば、ゲーム内時間は実時間の30倍だとすれば、駅間距離13kmを実時間10分で結ぶ列車がゲーム内時間では、同じ距離を進むのに5時間かかる、ということです。つまり、時刻は進みが、時間を早送りしているわけではないので、到着時刻がずれていくのです。

というわけで、この、駅間所要時間が12時間を超えても、時刻を戻るような列車線が描画される問題を修正してほしいのです。

このコメントに対する質問があれば、「yutaro-ich@jcom.home.ne.jp」までメールをください。ただし、メールのタイトルは、「「OuDiary-OuDiaプログラム開発日誌」ー「駅間所要時間が12時間を超えるダイヤ」のコメントについて」でお願いします。 

貨物ダイヤ、配給ダイヤ等、限定的ですが需要はあるんではないでしょうか。

24時間営業の勤怠管理に似ている気がします。

日付を跨ぐ場合に「翌」のチェックボックスを設けて確実に翌日として扱うか、1時を25時、2時を26時といった値で扱う等で実装可能かと思いますがいかがでしょうか...

また、上記条件を前提に逆行するダイヤは全てエラーとして扱えば入力ミスによる予期せぬ動作はかなり避けられるのではないでしょうか。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

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

この記事へのトラックバック一覧です: 駅間所要時間が12時間を超えるダイヤ:

« 年末年始は風邪でした | トップページ | 時刻表ビューの [表示]-[全時刻を表示] を試作-2 »