Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Jatsin yhdistelmät

Sivun loppuun

NixDu [21.12.2004 05:12:57]

#

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.php?tunnus=jatsi
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ä.

BadSource [21.12.2004 06:50:25]

#

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!"

Blaze [21.12.2004 11:24:25]

#

Eikös lopputyötä tehdessä pitäis jo osata jotain? ;)

Antti Laaksonen [21.12.2004 13:30:42]

#

Nopat kannattaa järjestellä ennen tarkistuksia. Silloin yhtä yhdistelmää kohden riittää muutama ehtolause. Ja jos esimerkkiä kaipaat, niin tuon oppaan lopussa semmoinen on.

petrinm [21.12.2004 16:15:43]

#

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)

NixDu [21.12.2004 21:47:10]

#

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.zip <--- pelkkä peli

Niihin on jäänyt turhaa tavaraa myös joita en ole jaksanut vielä poistaa

Antti Laaksonen [21.12.2004 22:51:29]

#

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.

NixDu [21.12.2004 23:39:10]

#

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ä!

NixDu [22.12.2004 01:46:19]

#

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!

NixDu [22.12.2004 10:31:14]

#

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!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta