Tässä pieni noppafunktio niile, jotka aikovat tehdä tietokoneroolipelin. Sen käyttö on todella yksinkertaista.
Noppa-funktio
FUNCTION Noppa (Kertaa, Sivut, Muutos) RANDOMIZE TIMER Noppa = INT(Kertaa * Sivut * RND + 1 + Muutos) END FUNCTION
Esimerkkipeli
CLS
kesto = 20
pahis = 20
valmis = 0
DO
PRINT "Oma kesto:" + STR$(kesto)
PRINT "Vastustajan kesto:" + STR$(pahis)
DO
INPUT "Mitä teet? 1.Hyökkää 2.Pakoon ", toimi
PRINT
LOOP UNTIL toimi <> 0
IF toimi = 2 THEN
pakoon = Noppa(1, 100, 0) 'Prosenttinoppa
IF pakoon < 50 THEN
PRINT "Pääsit pakoon!"
valmis = 1
GOTO loppu
ELSE
PRINT "Et pääsyt pakoon!"
GOTO pahis
END IF
END IF
hyokkaa = Noppa(1, 6, 0) 'Tavallinen 6-sivuinen noppa
suoja = Noppa(1, 2, 0)
vahinko = hyokkaa - suoja
IF vahinko < 0 THEN vahinko = 0
pahis = pahis - vahinko
IF pahis <= 0 THEN
PRINT "Teit hirviölle" + STR$(vahinko) + " vahinkoa ja se kuoli."
valmis = 1
GOTO loppu
ELSE
PRINT "Teit hirviölle" + STR$(vahinko) + " vahinkoa."
END IF
pahis:
PRINT
hyokkaa = Noppa(1, 6, 0)
suoja = Noppa(1, 2, 0)
vahinko = hyokkaa - suoja
IF vahinko < 0 THEN vahinko = 0
kesto = kesto - vahinko
IF kesto <= 0 THEN
PRINT "Hirviö teki sinulle" + STR$(vahinko) + " vahinkoa ja kuolit."
valmis = 1
ELSE
PRINT "Hirviö teki sinulle" + STR$(vahinko) + " vahinkoa."
END IF
PRINT
loppu:
LOOP UNTIL valmis = 1Vaikuttaa hyvältä, taidankin hyödyntää tuota..
Jaah.. mikäs tuossa..
RANDOMIZE TIMER:iä pitäisi kutsua kuitenkin vain kerran, eli se pitäis siirtää tuolta Noppa-funktiosta jonnekin inittiin.
Mutta jaapa jaa.. simppeliä tavaraa jälleen kerran.
Tein esimerkkipelin n.15 minuutissa, joten virheitä saattaa olla.
Hieno.
Erikoinen noppa, kun usealla nopalla voi heittää yhteensä ykkösen. Jakaumakin on väärin. Oikeasti kaksi kuuden sivun noppaa on eri asia kuin yksi 12-sivuinen noppa, ja siksi tuo kertolasku menee vikaan. Noppaa pitää heittää silmukassa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.