Näköjään tästä pelistä on jonkin verran ollut kysyttävää, jotenka kysytään nyt vielä lisää!.....
https://www.ohjelmointiputka.net/oppaat/opas.
olen lukenut tuon linkin ja se ei auttanut minua mitenkään.
Dim i As Integer Dim j As Integer Dim sopii As Boolean Dim testi As Integer Dim noppahmm As Integer For i = 1 To 5 noppahmm = noppa1 sopii = True 'For j = 1 To i If "noppa" & i = Str(noppahmm) Then sopii = True End If 'Next j If sopii = True Then testi = Val(testi) + Val("noppa" & i) Else play1_4luku.Text = 0 End If Next i If testi <= 0 Then play1_4luku.Text = 0 Else play1_4luku.Text = testi End If End Sub
Miksi toi ei tarkista onko jossakin sama luku. Olen kokeillut eri tarkistus tavoilla ja tää toimii miten se itse haluaa. < If "noppa" & i = Str(noppahmm) Then > tässä olen myös kokeillut laittaa erisuuri merkin tuohon väliin niin silloin se sanoo kaikkien olevan eri suuria, mutta tällä se väittää kaiken olevan samoja.
Arvon nopat noppa1, noppa2.... soluihin 1-6 ja sen mukaan tulostan kuvan.
Sitten loppuun kysymys että oisko jotenki mahdollista saada tehtyy jatsi muulla kuin if lauseilla. Mulla on ohjelma pelkkää if lauseita täynä yli 2000 riviä. :D
Oisko missään mahdollisesti sourcea yatzista. Pakko saada tää peli tehtyä tammikuun loppuun ku pitää palauttaa tää loppu työnä.
Eihän tuossa koodin pätkässä ole mitään logiikkaa?!
Edit: Tässä oli koodinpätkän läpikäynti, mutta se meni sen verran dissauksen puolelle, että poistin sen.
Jos tuo "noppa" & i viittaa taulukkoon (tms.), niin sitä käytetään muodossa noppa(i), eli järjestysnumero annetaan suluissa. Jos taas arvot on muuttujissa "noppa1", "noppa2" jne. niin niihin pitää viitata koko nimellä. Kukaan tai mikään ei ymmärrä sitä muuten.
'taulukko Noppa sisältää viisi kokonaislukua (viisi nopanheittoa) Dim Noppa(1 to 5) As Integer Dim i As Integer, kuutosia as Integer 'alustetaan Randomizer, että saadaan joka kierros erilaisia satunnaislukuja Randomize Timer 'Arvotaan viisi nopan heittoa väliltä 1-6 'Rnd * 5 antaa jonkin luvun väliltä 0-5 (esim. 2,626423), jonka Int muuttaa kokonaisluvuksi Noppa(1) = Int(Rnd * 5) + 1 Noppa(2) = Int(Rnd * 5) + 1 Noppa(3) = Int(Rnd * 5) + 1 Noppa(4) = Int(Rnd * 5) + 1 Noppa(5) = Int(Rnd * 5) + 1 'Tässä sama uudelleen silmukalla, joka äsken tehtiin suoraan viittaamalla kyseiseen taulukon soluun For i = 1 to 5 Noppa(i) = Int(Rnd * 5) + 1 Next i 'Lasketaan montako kuutosta saatiin For i = 1 to 5 'tarkistetaan onko heiton arvo 6 If Noppa(i) = 6 Then 'kutonen löytyi, joten lisätään muuttujaan yksi kuutosia = kuutosia + 1 End If Next i 'ilmoitetaan tulos MsgBox "Kuutosia saatiin " & kuutosia & " kappaletta!"
Eikös lopputyötä tehdessä pitäis jo osata jotain? ;)
Nopat kannattaa järjestellä ennen tarkistuksia. Silloin yhtä yhdistelmää kohden riittää muutama ehtolause. Ja jos esimerkkiä kaipaat, niin tuon oppaan lopussa semmoinen on.
Tälläisensen muutoksen tekisin jos kaikki numeroiden määrät pitäisi saada koottua.
Dim Maarat(6) As Integer 'Lasketaan montako mitäkin numeroa saatiin For i = 1 To 5 Maarat(Noppa(i)) = Maarat(Noppa(i)) + 1 Next i 'ilmoitetaan tulos MsgBox "Arpakuutioiden numeroiden määrät" & Chr(13) & _ "1:" & Maarat(1) & Chr(13) & _ "2:" & Maarat(2) & Chr(13) & _ "3:" & Maarat(3) & Chr(13) & _ "4:" & Maarat(4) & Chr(13) & _ "5:" & Maarat(5) & Chr(13) & _ "6:" & Maarat(6)
Ihan kivoja viestejä, mutta tässä on semmoinen juttu että olen saanut jo yli puolet tehtyä siitä pelistä mutta kaikki on tehty if lauseilla ja jos haluaa saada 5 arvosanan niin pitää osa pelistä olla itse opiskeltu.
ja tuommoisen for silmukan sain itse tehtyä opettajan valmiista esimerkistä joka tarkistaa ettei tule kahta kertaa arvottua samaa numeroa.
Laitan tähän mun tekemän keskeneräisen pelin. Voitte arvostella mitä mieltä olette siitä.
http://www.kotikone.fi/petri.hiuspaa/yatzi.zip <-- Koko paska
http://www.kotikone.fi/petri.hiuspaa/only_exe.
Niihin on jäänyt turhaa tavaraa myös joita en ole jaksanut vielä poistaa
Tyylikäs peli päältäpäin.
Alkuhuomautuksena pelin nimi on joko "jatsi" tai "yatzy".
Yleensä kontrollit, joihin viitataan koodissa, kannattaa nimetä itse ja hylätä oletusnimet (Button2, Label20).
Sinun pitää tosiaan opetella For-silmukan käyttö. Sen avulla koodi lyhenee murto-osaan nykyisestä. Jos ohjelmassa on peräkkäin pitkä litania samanlaisia koodirivejä, jotka pientä yksityiskohtaa lukuun ottamatta vastaavat toisiaan, kannattaa käyttää For-silmukkaa. Silloin ties kuinka monen samanlaisen koodinpätkän asemesta tarvitaan vain yksi.
Noppien heittoon riittää todellisuudessa yksi ja sama painike, jonka tehtävä vain muuttuu heittokertojen välillä. Kuvia ei pidä ladata joka kerta uudestaan, vaan ne kannattaa ladata valmiiksi ohjelman alussa. Heittokoodi kutistuu muutaman rivin mittaiseksi For-silmukan avulla.
Tuloksen tarkistus vaatii vielä eniten työtä. Opettajan silmää ei miellytä mammuttimaiset If-rakenteet, ja monimutkaisimpien yhdistelmien tarkistaminen on käytännössä mahdotonta näin. Ratkaisu on jälleen kunnollisesti suunniteltu For-silmukka. Lisäksi nopat pitää lukea taulukkoon ja järjestellä ennen tarkistuksia.
Kiitoksia....
Noi button2, label20 nimet muutan sit ku toi ohjelma on valmis ja oon oppinut tekemään helpompi komentoja kuin if lauseet. Taulukoita en osaa juuri ollenkaan ku ei me keretty käymään kaikkia asioita läpi koulussa ja luulin ku aloin tekemään tuota että se olisi helpompi tehdä kuin mitä se oli. Mutta kiitos kommenteista.
Olisi kiva saada lisää apuja tuohon ohjelmaan, jotenka neuvokaas pikkaisen miten saan ne kuvat taulukkoon heti luettua
Uskoisin saavani tehtyä pari koodia helpommaksi noilla for esimerkeillä!
Testailin noita for lauseita mitä olitte laittaneet niin johan alko toimii paljon paremmin ja sain heti tehtyä tuon melkein valmiiksi! Kiitoksia BadSource:lle for-lauseista ja siitä vielä että käskit muuttaa noppien nimeksi noppa(i) eikä opettajan söhläyksen takia "noppa" & i .
Ne jotka ovat auttaneet tuon pelin tekemisessä saavat nimensä jos haluat pelin tekijöiden joukkoon!
Kiitoksia vielä kaikille! Sain tehtyä itse pelin jo valmiiksi noilla for komentoja käyttämällä aika helposti! :D
Enää pitää vain muokata tuota koodia ja lisätä osa valikoista toimiviksi!
Laitan toimivan exen sitten jakoon kun peli on valmis ja koodia voitte kysellä jos haluutte tietään miten tein sen!
Aihe on jo aika vanha, joten et voi enää vastata siihen.