なんじゃこりぁ~
ペナントの選手データ管理のずさんさにまいっております。
IDの流れを追ってみました。
1年目は1~1E0に綺麗に収まっており、途中加入の選手は1E1からIDが追加され、
格納場所も1E1番目から順番になっています。
しかし、シーズンオフに選手が辞めたりFA宣言したりすると一旦チームから抜けます。
FA・自由契約→再契約の場合は管理上は出戻りとなるため、IDも格納場所も変わらないまま。
そして、再採用されなかったり引退・帰国した選手はデータが格納場所からクリアされます。
そして、コーチになった場合はコーチのデータ格納場所にIDを持ったまま移動します。
しかし、IDは今後使いません。
こうして、空きができてしまいます。
適当に日程を流していくと次シーズンに移るまでに50人程度の異動があるようです。
そのため、格納場所を次々と後に足していくだけでは4~5年程度で使い切ってしまいます。
これを防ぐため、空いた場所にとりあえずぽーんっと新しい選手を格納しているわけですね。
・・・ぃゃぁ・・・大迷惑だ。整理整頓しろ!これは人員整理だろが!
流石に回していないけど、10年経ったころにはかなり酷いことになっているかと・・・
対応策を寝ながら考えました。
元々デフォルトデータのときの選手の登録順を示すデータがペナントでは不使用。
なので、これをデータ分だけ上書き再ソートさせます。
ペナントの格納順を示すデータの並びに従って仮想メモリに転送。
仮想メモリ上でデータを書き換え。
書き換えたら再び戻す・・・
しかし、これにも問題がありまして・・・
ペナントの格納順を示すデータの並びに従ってって20年間でどれくらいIDが増えるのかと。
どこまで飛ばしたか把握のやりようがないのに連れ戻すことってできないじゃん。
50人×20年と勝手に見積もるとかで対応するしかないというか・・・
プロスピみたいにチームIDでって思ったけど、
同じチームが複数ペナント参加できるのでこれは使えないし・・・
・・・考えれば考えるほど、
最初で整理整頓しておけばかなりゲーム上の負担も減らせたのではと思わざるを得ません。
まぁ、整理整頓ができないのは昔っからですが・・・
最近のコメント