D&D Nopanheittäjä

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

D&D Nopanheittäjä

Post by Misthema »

En kyllä suuremmin ole CB:llä tehtyjä roolipelejä tms pelaillut, mutta ehkä joku keksii tälle funktiolle käyttöä. =)

Teh soors:

Code: Select all

Randomize Timer()

dice$ = "1d20+3"
//dice$ = "1d20-5"
//dice$ = "4d8+10"

For i = 1 To 20
	Print "Rolling "+dice+": "++RollDice(dice) 
Next i

WaitKey

Function RollDice(die$)
	If Left(die,1) = "d" Then die = "1" + die
	Dim roll$(2)
    roll(0) = GetWord(die,1,"d")
    roll(1) = GetWord(die,2,"d")
	ppos = InStr(roll(1),"+")
	mpos = InStr(roll(1),"-")
	'bonus%, total%
	If ppos > 0
		bonus = Int(Mid(roll(1), ppos+1, Len(roll(1))-ppos))
		roll(1) = Left(roll(1), ppos-1)
	ElseIf mpos > 0
		bonus = Int(Mid(roll(1), mpos, Len(roll(1))-mpos+1))
		roll(1) = Left(roll(1), mpos-1)
	EndIf
	For i = 1 To Int(roll(0))
		total=total+ Rand(Int(roll(1)))
	Next i
	Return total + bonus
End Function
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 7:40 pm
Location: C:\Työpöytä

Re: D&D Nopanheittäjä

Post by TukeKoodi »

Siis mikä tän idea on? Ei oikein selvinnyt.
EDIT:

Okei.

Last edited by TukeKoodi on Wed Mar 30, 2011 9:09 am, edited 1 time in total.
Aloittelija, koodaaja, jotain...
CbFUN :D
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: D&D Nopanheittäjä

Post by valscion »

TukeKoodi wrote:Siis mikä tän idea on? Ei oikein selvinnyt.
Roolipeleissä käytetään usein apuna virtuaalisia noppia, joita heittämällä lasketaan esim. kuinka paljon pelaaja lyö toista pelaajaa. Tämä lisää pelin satunnaisuutta hieman pehmeämmällä tavalla kuin pelkän Rand:n käyttö. Esimerkiksi jos halutaan heittää viittä tavallista noppaa (eli noppaa jossa on 6 tahkoa, arvot 1-6) niin tälle funktiolle annettaisiin parametrina merkkijono "5d6". Useasti halutaan vielä tuohon noppien heittämään tulokseen lisätä tai siitä poistaa tietty arvo, jonka suuruus voi vaikka kertoa taitojen kehittymisestä. Eli jos aluksi pelaaja voi lyödä vastustajaa "1d3", eli siis arvoilla 1-3, niin kun pelaajan "puukotus"-taito vaikkapa kehittyy niin hyökkäykselle voitaisiin arpoa arvo "1d3+2", eli arvot väliltä 3-5.

Esimerkiksi "4d20+10" tarkoittaa sitä, että heitetään 4 kertaa 20-tahkoista noppaa (eli sellaista jossa olisi arvot 1-20 ja jokainen on yhtä todennäköinen saada), lasketaan näiden tulokset yhteen ja lisätään arvoon vielä 10. Tällöin mahdolliset palautusarvot olisivat välillä 4-90, mutta todennäköisesti se on kuitenkin lähellä lukua 50. Noppien määrän lisääminen vähentää yhen nopan arvon vaihtelun merkitystä, jolloin todennäköisyydet saada noppien arvojen keskiarvo palautusarvona nousee.

Toivottavasti tämä sekava selitys auttaa ymmärtämään, mikä tämän nopanheittäjän idea on :)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: D&D Nopanheittäjä

Post by Ilmuri »

Mainittakoot nyt vielä että kyseessä on yleinen notaatio nopanheitoille, joita löytyy sitten pöytäroolipelien sääntökirjoista kommunikoimaan pelimekaniikkojen toiminta. "2d6+4" on paljon lyhempi, ja kenties selkeämpikin kuin "heitä kaksi kuusisivuista noppaa ja lisää tulokseen neljä".
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Post Reply