RosettaCodeData/Task/RPG-attributes-generator/SETL/rpg-attributes-generator.setl
2026-04-30 12:34:36 -04:00

24 lines
546 B
Text

program rpg_attributes_generator;
setrandom(0);
print(stats := genstats(), 'total:', +/stats);
proc genstats();
loop until valid(stats) do
stats := [roll4() : i in [1..6]];
end loop;
return stats;
end proc;
proc valid(stats);
return +/stats >= 75 and #[s in stats | s >= 15] >= 2;
end proc;
proc roll4();
rolls := [roll() : i in [1..4]];
return +/rolls - min/rolls;
end proc;
proc roll();
return 1 + random(5);
end proc;
end program;