20 Replies
2人でテストしてみたら両者2回から動かなくなりました
rankingコマンドどうなってるんやこれ
なにも意味成して無くないか
とおもいます
ネットで調べて海外の人が書いてたんでとりあえずパクってみたやつ
これって
どういう変数構造してるの?
{hoge::%uuid%}→数値
じゃ無さそうだよね
いや合ってるか
ぼくは値が更新されるたびに自動的に並び替えられるような仕組みをつくるべきだと思います
じゃないとランキングを取得するたびに毎回並び替え処理が発生します
sortすればいいな?
おそらくsort使わずに自前で実装したほうがいい
減ったら自分より下の奴と値を比較する
スマホで打ってみてるけど
あー
増えたら自分より上と比較
それありだな
毎回並び替え実装のつもりで書いてたわ
並び替え実装重いかな
重いわな
虫取りっていう要素があって、虫捕ったら{Catching::Hit::Success::%uuid of player%}に1加算される
からへることはないとおもいます
とりあえず加算用の関数を作っておいて変数変えるときは全部そっからやる
その中で並び替えを行うようにしましょう
しばらく考えてみたけど全体を並び替えるものしか思いつかなかった
nandeya
減ったら自分より下だったものより減ったか、増えたら自分より上だったものより増えたか
けんちするのって
どうする
そもそも常に順番が保持されるようにしておく
そのうえで更新時に順番も一緒に更新する
1位はこの人で〇回、2位はこの人で〇回って保持しといて
それを
どーすん
2位を更新するときに自分より上のやつ全員と更新後の値を比較して順位を変える
わからなかったらpriority queueで検索
記録の変数自体はindexが数字のリスト変数に格納しておいて
それとは別にプレイヤーから順位を取得できるリスト変数も作っておく(その逆も)
記録にアクセスするには順位を取得してから記録の変数から取り出す
記録更新時には順位を取得して自分より上の順位の記録と比較
順位が入れ替わる場所だけ更新
もう少し改善すれば多分比較回数減らせる
まぁskriptでツリー構造とかめんどくさいからこれで十分でしょ