randy.pub

Personal homepage
Author Randy Boyes
Updated
Nav Home Publications Resume Posts
using DataFrames
using TidierData

state_list = DataFrame[]

prizes = [14000, 10000, 7000, 5000, 5000, 5000, 5000, 5000,
   2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500]

for i in 1:10000
    current_state = DataFrame(
        id = 1:63,
        kills = vcat(
            repeat([5], 1),
            repeat([4], 2),
            repeat([3], 2),
            repeat([2], 21),
            repeat([1], 18),
            repeat([0], 63-44)
        ),
        post_r3_kills = vcat(
            repeat([5], 1),
            repeat([4], 2),
            repeat([3], 2),
            repeat([2], 21),
            repeat([1], 18),
            repeat([0], 63-44)
        ),
    )

    for round in 1:45
        killer = rand(1:nrow(current_state))
        killed = rand(vcat(1:(killer-1), (killer+1):nrow(current_state)))
        current_state.kills[killer] += 1
        delete!(current_state, [killed])
    end

    sort!(current_state, :kills, rev = true)
    current_state.iter .= i
    current_state.prize = prizes

    push!(state_list, current_state)
end

@chain vcat(state_list...) begin
    @group_by(post_r3_kills, id)
    @summarize(av_win = sum(prize)/10000)
    @summarize(ev = mean(av_win))
    @arrange(desc(ev))
end
MIT License Randy Boyes. Website built with Franklin.jl and the Julia programming language. Design inspired by The Monospace Web. Code for this website is available on Github.