Moikka!
Mulla on tässä nyt semmonen peliprojekti meneillään ja siinä sitten pitäis taistella vihuja vastaan vuoropohjasessa taistelusysteemissä ja nyt tarviisin vähän vinkkejä ja vihjeitä että miten pystyn toteuttamaan systeemin joka hakee random vihun taulukosta? Tai siis ku siinä on tietokantafilu josta se peli hakee kaikki vihujen tiedot ja tallentaa ne sitten MonsterDataTypeen (itsetehty taulukkotsydeemi). Ja siihen MonsterDataTypeen kuuluu esim MonHp, MonLvl, MonName ja muuta vastaavaa sälää. Niin tässä nyt ei sinäällään valmista koodia kysellä (eikä tarvii edes välttämättä tietää just Visual Basic 6:sesta yhtikäs mitään, kunhan muuten ohjelmointikonsepti hanskassa). Niin että vinkkejä, vihjeitä ja ideoita, mistä suunnasta tätä ongelmaa kannattais lähteä lähestymään, olisi oikein mukava saada!
-Feltsu
Tekstistäsi en ymmärtänyt, mikä on ongelmana. Satunnaisen vihollisen saa, kun arpoo luvun ja ottaa luvun osoittaman vihollisen taulukosta. Pseudokoodina siis näin:
min = alaraja(vihollistaulu) max = ylaraja(vihollistaulu) i = arvo_luku_valilta(min, max) vihollinen = vihollistaulu(i)
Ei ole kovin ihmeellistä, vai onko? Itse en ainakaan tarvitse tähän yhtäkään erityistä "ohjelmointikonseptia", vaan ihan taulukko ja satunnaislukufunktio riittävät.
MORJENS TAAS feltsu!
tässä valmispaskaa vihun arpomiseen VBA-versiona...
Private Type EnemyType Name As String isAlive As Boolean 'jne... End Type Private Enemies() As EnemyType Private CurrentEnemy As Integer Private Sub UserForm_Activate() Static IsInitialized As Boolean If Not IsInitialized Then IsInitialized = True Dim i As Integer ReDim EnemyTable(0) For i = 0 To 9 ReDim Preserve Enemies(i) Enemies(i).Name = "Enemy " & CStr(i) Enemies(i).isAlive = True Next i End If End Sub Private Sub CommandButton1_Click() Dim theEnemy As Variant Dim index As Integer DoItAgain: index = RaffleIndex(LBound(Enemies), UBound(Enemies)) If Enemies(index).isAlive Then CurrentEnemy = index theEnemy = Enemies(index).Name MsgBox theEnemy Else GoTo DoItAgain End If End Sub Private Function RaffleIndex( _ min As Integer, max As Integer) As Integer Randomize RaffleIndex = CInt((max - min) * Rnd() + min) End Function
UI! KIITTI! Tosta oli kyllä loads of help :D Nyt koitan vaan soveltaa että vertaa vielä player leveliä monsterin leveliin ja valitsee vaan oikean tasoisia vastuksia :D Kivaa aivotyöskentelyä kyllä! Mutta luultavasti viimeistään maanantaina tuun itkemään ku en saa toimimaan :D Kohtuu nuub viel näissä touhuissa, mut toisaalta tällä tavalla opinkin parhaiten (taino toisiks parhaiten, parhaimmin oppimisin jos istuisin tunnilla ja maikka selittäis mutta se on sitte taas ihan toinen juttu)
-Feltsu
Aihe on jo aika vanha, joten et voi enää vastata siihen.