43 lines
842 B
Plaintext
43 lines
842 B
Plaintext
FUNCTION min(a, b)
|
|
IF a < b THEN LET min = a ELSE LET min = b
|
|
END FUNCTION
|
|
|
|
FUNCTION d6
|
|
LET d6 = 1 + INT(RND * 6)
|
|
END FUNCTION
|
|
|
|
FUNCTION rollstat
|
|
LET a = d6
|
|
LET b = d6
|
|
LET c = d6
|
|
LET d = d6
|
|
LET rollstat = a + b + c + d - min(min(a, b), min(c, d))
|
|
END FUNCTION
|
|
|
|
DIM statnames$(6)
|
|
DATA "STR", "CON", "DEX", "INT", "WIS", "CHA"
|
|
FOR i = 1 TO 6
|
|
READ statnames$(i)
|
|
NEXT i
|
|
DIM stat(6)
|
|
LET acceptable = 0
|
|
|
|
RANDOMIZE ! RANDOMIZE TIMER en QBasic
|
|
DO
|
|
LET sum = 0
|
|
LET n15 = 0
|
|
FOR i = 1 to 6
|
|
LET stat(i) = rollstat
|
|
LET sum = sum + stat(i)
|
|
IF stat(i) >= 15 THEN LET n15 = n15 + 1
|
|
NEXT i
|
|
IF sum >= 75 AND n15 >= 2 THEN LET acceptable = 1
|
|
LOOP UNTIL acceptable = 1
|
|
|
|
FOR i = 1 to 6
|
|
PRINT statnames$(i); ": "; stat(i)
|
|
NEXT i
|
|
PRINT "--------"
|
|
PRINT "TOT: "; sum
|
|
END
|