Juu eli mä oon tehny formille mun monopoly pelin Sitku heittää noppaa niin sen ukon pitäis liikkua sen noppa luvun verran siellä oisko kellää ideoita?
Tarvitset muuttujan, joka kertoo pelaajan senhetkisen paikan. Jokaisella pelilaudan paikalla on oma numero, esim. lähtöruutu voisi olla 0, Korkeavuorenkatu 1, yhteismaa 2 jne., kunnes Erottajalla on viimeinen numero (39, jos laskin oikein). Nopanheiton jälkeen paikka muuttuu näin:
paikka = (paikka + noppa) Mod 40
Jakojäännöksen ansiosta pelaaja lähtee kiertämään lautaa uudestaan lähtöruudun kohdalta. Jos esim. ollaan Erottajalla ja heitetään 3, tulos on (39 + 3) Mod 40 eli 42 Mod 40 eli 2, joka on yhteismaa niin kuin pitääkin.
Tämän lisäksi pitää tietenkin tietää, missä kohdassa mikäkin paikka on kuvassa. Jos olet piirtänyt kuvan jotenkin säännöllisesti, tämän voi ehkä laskea suoraan, mutta voit myös kirjoittaa taulukkoon kunkin paikan koordinaatit. Sitten pelaaja onkin helppo liikuttaa oikeaan paikkaan nopanheiton jälkeen.
Antti voisitkos selittää vähän tarkemmin jotenkin? Esim onko sulla msn messengeriä?
No tuo oli jo kohtalaisen tarkasti selitetty. Mutta kerro, mikä kohta jäi epäselväksi.
Toivottavasti alla oleva esimerkki selittää sitä, mitä Antti kertoili, tässä nytten koodilla selitettynä.
'pieni esimerkki siitä mitä Antti kertoi, ei kovin hyvää koodia, mutta eiköhän se aja asiaansa... Dim noppa As Integer, paikka As Integer 'tarvitaan pari muuttujaa Dim vanhapaikka As Integer Dim kadut Private Sub Form_Click() heitänoppaa 'mennääs funktioon riehumaan Form1.Caption = "paikka on nytten: " & paikka & ". vanhapaikka on: " & vanhapaikka & " ja noppa pisti luvun: " & noppa 'debuggausta varten End Sub Private Sub Form_Load() Randomize Timer 'alustetaan satunnaistin paikka = 0 'laitataas ukko lähtöruutuun kadut = Array("lähtöruutu", "ensimmäinenkatu", "toinen", "kolmas", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39") 'jokaiselle paikalle omat nimet, en jaksanut kirjoitella noita, kun en muistanut, niin pistin numerot ja krääsää. End Sub Function heitänoppaa() vanhapaikka = paikka 'vanhapaikka talteen (debuggausta varten) noppa = Int(Rnd * 6) + 1 'arvotaan luku 1...6 väliltä paikka = (paikka + noppa) Mod 40 'Antin viestistä, jonka Antti selitti hyvin. TarkistetaanPaikka paikka 'hypätään funkkariin ja parametrina toimikoon paikka, johon ollaan hypätty. End Function Function TarkistetaanPaikka(numero As Integer) MsgBox kadut(numero) 'viskataan paikan nimi messagepoksilla ruutuun End Function
Aihe on jo aika vanha, joten et voi enää vastata siihen.