DEV 1303: Add empty and royale maps and update game map interface (#72)

* move random generator into Settings

* add empty and royale maps

* place snakes on either cardinal or corner positions first
This commit is contained in:
Rob O'Dwyer 2022-05-17 15:45:56 -07:00 committed by GitHub
parent 6fa2da2f01
commit e94d758a9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 479 additions and 52 deletions

View file

@ -191,3 +191,26 @@ func TestStageFuncContract(t *testing.T) {
require.NoError(t, err)
require.True(t, ended)
}
func TestRulesetBuilderGetRand(t *testing.T) {
var seed int64 = 12345
var turn int32 = 5
ruleset := rules.NewRulesetBuilder().WithSeed(seed).PipelineRuleset("example", rules.NewPipeline(rules.StageGameOverStandard))
rand1 := ruleset.Settings().GetRand(turn)
// Should produce a predictable series of numbers based on a seed
require.Equal(t, 80, rand1.Intn(100))
require.Equal(t, 94, rand1.Intn(100))
// Should produce the same number if re-initialized
require.Equal(
t,
ruleset.Settings().GetRand(turn).Intn(100),
ruleset.Settings().GetRand(turn).Intn(100),
)
// Should produce a different series of numbers for another turn
require.Equal(t, 22, rand1.Intn(100))
require.Equal(t, 16, rand1.Intn(100))
}