score

A calculus for scoreboard optimization.

Optimizations

set fusion

scoreboard players set a _ 1
scoreboard players set a _ 2

scoreboard players add b _ 1
scoreboard players set b _ 2

scoreboard players remove c _ 1
scoreboard players set c _ 2

scoreboard players reset d _
scoreboard players set d _ 2

scoreboard players set a _ 2
scoreboard players set b _ 2
scoreboard players set c _ 2
scoreboard players set d _ 2

add/remove fusion

scoreboard players add a _ 2
scoreboard players remove a _ 3
scoreboard players add a _ 2
scoreboard players add a _ 1

Strength reduction

scoreboard players set _ _ 2
scoreboard players operation a _ *= _ _
scoreboard players operation a _ += a _

Batch operation

scoreboard players set a_0 A 0
scoreboard players set a_1 A 0
scoreboard players set b_0 B 0
scoreboard players set b_1 B 0
observe a_0 A
observe a_1 A
observe b_0 B
observe b_1 B
scoreboard players set b_0 B 1
scoreboard players set b_1 B 1
scoreboard players set a_0 A 1

scoreboard players set a_0 A 0
scoreboard players set a_1 A 0
scoreboard players set b_0 B 0
scoreboard players set b_1 B 0
observe a_0 A
observe a_1 A
observe b_0 B
observe b_1 B
scoreboard players set * B 1
scoreboard players reset a_1 B

Algebraic simplification

scoreboard players set a _ 1
scoreboard players operation a _ += b _
scoreboard players operation a _ -= b _
scoreboard players set a _ 1

Dataflow analysis

scoreboard players set a _ 0
execute if score b _ matches 0 run function
    execute unless score b _ matches 0 run scoreboard players operation a _ += b _
    scoreboard players operation a _ += b _
    scoreboard players set b _ 1
    execute unless score b _ matches 0 run scoreboard players operation a _ += b _

    scoreboard players set _ _ 2
    scoreboard players operation a _ /= _ _
    scoreboard players set _ _ 2
    scoreboard players operation b _ %= _ _

scoreboard players set a _ 0
execute if score b _ matches 0 run function
    scoreboard players add a _ 1

    scoreboard players set _ _ 2
    scoreboard players operation a _ /= _ _
    scoreboard players operation b _ %= _ _

GitHub

View Github