Coder Social home page Coder Social logo

bve-random-map's People

Contributors

magicant avatar

Watchers

 avatar  avatar  avatar

bve-random-map's Issues

信号インデックスの自動計算

ATC に対応するにあたって、「制限速度区間の手前 (別のパートファイル) で ATC の信号を下げることができる」ようにするためにパートファイルを終着駅から始発駅に向かって読み込むようにした (#3)。この副作用として、閉塞を設置する際にその先にある閉塞の位置が分かるようになった。これまではその場その場で固定の信号インデックスの組合せを使用していたが、これからは先にある閉塞の位置に基づいてより適切な信号インデックスを動的に選ぶことができそうである。具体的にどうすればよいか?

課題: 信号インデックスを自動で計算したとして、その閉塞で取りうる信号インデックスの組合せに応じて自動で信号の灯数を選ぶのはとても難しそう。ただし常に五灯式にしておけば大きな問題はない。

CS-ATC

  • 閉塞の間隔を通常の信号システムより短くする
  • 閉塞標識に正しく番号を振る
  • 終着駅に到着できるようにする
    • ORP を置く
    • ORP 非対応の駅を終着駅にしないようにする

逆方向に路線を生成

路線を逆方向に生成するのはどうか? つまりパートファイルを読み込むごとに $distance の値が減ってゆく。終着駅から始発駅に向かってパートファイルを読んでゆく。

メリット:

  • 制限速度区間の手前 (別のパートファイル) で ATC の信号を下げることができる。
  • 先の信号の位置に基づいて手前の信号の取りうる信号インデックスを調整できる。
  • build.sh 内で特殊な分岐をしなくても、終着駅パートファイルが終着駅以外に出現しないようにできる。
  • 閉塞番号を数えることができるので閉塞番号によって閉塞標識を変えることができる。

デメリット:

  • 先行列車のダイヤを自車の始発駅出発時刻に合わせるのが容易でない? → 終着駅を起点に時刻を設定すれば大丈夫そう
  • 距離程の値が大きめになるので誤差が増える。
  • 距離程が 0 メートルを下回ったらどうなる?

CS-ATC: 地上子の配置を見直す

対応したい地上子:

  • 9: 停車駅予告
  • 11: 開扉側指定
  • 14: ホームドア連動有無
  • 17: 停止目標 (位置を 10.5 メートル前にする)
  • 33: 発車合図タイミング
  • 34: 列車番号

廃止する地上子:

  • 32: 停車駅予告 (9 番地上子があればこちらは要らないでしょう)

先行列車の動きと自車のダイヤの合わせ方

シナリオがまともに機能する要件として「自社の始発駅出発の時点で先行列車が自車より先に位置すること」がある。もし先行列車が自車の後ろにいたら信号が正しく機能しないからだ。さて、この要件を満たすにはマップファイル内で生成される先行列車の動き (各地点における先行列車の通過時刻) と自車の始発駅出発時刻を連動させなくていけない。どうやってそれを達成するか?

コミット e1add79 の時点では、ランダムに選んだシナリオ開始時刻に合わせて自車と先行列車の始発駅出発時刻を調整している。しかし #3 で路線を逆方向に生成するようになると、このやり方は機能しなくなる。別のやり方が必要だ。

CS-ATC 用車両

  • パネル
    • (19, 22, 23) ATC ランプ
    • (72) ATC 選択
    • (92) マスコンキー
    • (101) ×
    • (102) 0 km/h
    • (104) 10 km/h
    • (105) 15 km/h
    • (106) 20 km/h
    • (107) 25 km/h
    • (108) 30 km/h
    • (109) 35 km/h
    • (110) 40 km/h
    • (111) 45 km/h
    • (112) 50 km/h
    • (113) 55 km/h
    • (114) 60 km/h
    • (115) 65 km/h
    • (116) 70 km/h
    • (117) 75 km/h
    • (118) 80 km/h
    • (119) 85 km/h
    • (120) 90 km/h
    • (121) 95 km/h
    • (122) 100 km/h
    • (123) 105 km/h
    • (124) 110 km/h
    • (125) 120 km/h
    • (131) 停止信号
    • (132) 進行信号
    • (133) 前方予告
    • (134) ORP 動作
    • (135) ORP 速度
  • 音声
    • (1) ATS-S 持続警報
    • (2) ベル
    • (5) 停車駅接近 1
    • (6) 停車駅接近 2
    • (10) マスコンキー 入
    • (11) マスコンキー 切
    • (22) ATC 切替
    • (31) 発車合図

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.