24 lines
546 B
Text
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;
|