RosettaCodeData/Task/RPG-attributes-generator/Prolog/rpg-attributes-generator-1.pro

17 lines
440 B
Prolog
Raw Permalink Normal View History

2025-08-11 18:05:26 -07:00
generate_stat(Stat) :-
length(DiceRolls, 4),
maplist(random_between(1, 6), DiceRolls),
sum_list(DiceRolls, Sum),
min_list(DiceRolls, Min),
Stat is Sum - Min.
generate_stats(Stats) :-
once((repeat,
length(Stats, 6),
maplist(generate_stat, Stats),
sum_list(Stats, Total),
Total >= 75,
aggregate_all(count, ( member(Stat, Stats), Stat > 15 ), Count),
Count >= 2
)).