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 = 1
Vaikuttaa 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.