Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Hirsipuu

sooda [11.07.2004 10:47:52]

#

Hirsipuu siten miten mä olen sen oppinut. Puuhomma ja muutkin on tehty printillä :D (sen takia kun tein tän vähä aika sitte psionilleni ja porttasin sen suoraan tähän :P), mutta siinä on se hyöty ettei formille tartte mitään controlleja. Hyvä pohja, helppo muokata esim. tota hirsipuun piirtohommelia.

Ainiin ja exe: http://sooda.dy.fi/foo/hirsipuu.exe

Private Sanat(), Arvattava, Arvattu, Väärät, Arvatut, Pelatut, Voitetut

Private Sub Form_Load()

    Sanat = Array("sana", "toinensana", "kolmassana") 'vaihda tähän ne sanat mitä voi arvata. Helppoa kuin koodaus.
    FontName = "fixedsys" 'print toimii tasalevyisillä fonteilla tässä tapauksessa parhaiten
    FontSize = 10 'näkyvä koko
    ScaleMode = 3 'pixelit
    AutoRedraw = True 'ettei pyyhkiydy turhaan
    Randomize 'alustetaan vb:n integroitu lineaarinen satunnaislukugeneraattori
    Show
    uus 'arvo uusi

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)

    'kirjainta painettu?
    If (KeyAscii >= Asc("Arvattava") And KeyAscii <= Asc("z")) Or KeyAscii = Asc("ö") Or KeyAscii = Asc("ä") Then
        t = InStr(Arvattu, Chr(KeyAscii)) 'missä kohtaa se. Arvattu on arvattava sana jossa on arvatuiden merkkien kohdalla väli.
        If t Then 'jos löytyy niin irrotetaan
            While t 'etitään kaikki
                at 2 * t, 1: Print Mid(Arvattu, t, 1) 'kerrotaan se käyttäjälle
                Mid(Arvattu, t, 1) = " " 'pyyhitään pois, ei tartte arvata enää
                t = InStr(Arvattu, Chr(KeyAscii)) 'ja uusi kohta
            Wend
            Arvatut = Arvatut & Chr(KeyAscii) 'lisätään arvattu merkki arvatuihin.
            at 1, 16: Print "Arvatut: " & Arvatut 'kerrotaan ne käyttäjälle
            If Trim(Arvattu) = "" Then 'jos arvattu kaikki jo eli Arvattu-variaapeli on pelkkiä välilyöntejä
                MsgBox "Arvasit sanan " & Arvattava
                Pelatut = Pelatut + 1
                Voitetut = Voitetut + 1
                uus 'arvotaan uusi
            End If
        Else 'arvattiin merkki jota ei ole sanassa
            If InStr(Arvatut, Chr(KeyAscii)) = 0 Then 'jos sitä ei ole vielä arvattu
                Arvatut = Arvatut & Chr(KeyAscii) 'lisätään arvattu merkki arvatuihin.
                at 1, 16: Print "Arvatut: " & Arvatut 'kerrotaan ne käyttäjälle
                Väärät = Väärät + 1
                vrong 'printataan hirsipuusta osa.
            End If
        End If
    End If

End Sub

Sub uus()

    Cls 'vanhat roskat vek
    Arvattava = Sanat(Int((UBound(Sanat) + 1) * Rnd))
    Arvattu = Arvattava
    For i = 1 To Len(Arvattu)
        Print " _"; 'printataan _-merkit jotta näkisi millainen sana on. Välejä välissä selkeyden vuoksi
    Next
    'resetataan pari variaapelia
    Väärät = 0
    Arvatut = ""
    'kerrotaan voittoprosentti ja pelatut pelit
    If Pelatut Then at 1, 17: Print "Voitettu " & Voitetut & "/" & Pelatut & " (" & Voitetut / Pelatut * 100 & "%)"

End Sub

Sub vrong() 'väärin arvattu!

    'MAHTAVAA merkkigraffaa :)
    'tätä voit tietty muuttaa jos haluat peliä helpommaksi/vaikeammaksi.
    'muista tunkea viimeiseen häviöhommeli.
    Select Case Väärät
        Case 1 'maata
            at 1, 10
            Print "  _____  "
            Print " /     \ "
            Print "/       \"
            Print "|       |"
        Case 2 'pystylankku
            at 1, 5
            Print "    |"
            Print "    |"
            Print "    |"
            Print "    |"
            Print "    |"
            Print "    |"
        Case 3 'tukihommat lankulle
            at 4, 10: Print "/"
            at 6, 10: Print "\"
        Case 4 'vaakalankku...
            at 5, 4: Print "--------"
        Case 5 'tuki vaakalankkua varten
            at 6, 5: Print "/"
        Case 6 'naru
            at 12, 5: Print "|"
            at 12, 6: Print "|"
        Case 7 'ukkelin piirto alkaa...
            at 11, 7: Print "\o/"
        Case 8
            at 12, 8: Print "|"
            at 12, 9: Print "|"
        Case 9
            at 12, 10: Print "|"
            at 11, 11: Print "/ \"
            'häviöhommeli. ei enempää piirrettävää. 9 kertaa saa vastata väärin.
            MsgBox "Voi EI!! Hirttäydyit sanalla " & Arvattava & "! Hävisit!"
            Pelatut = Pelatut + 1
            uus
    End Select

End Sub

Sub at(x, y) 'psionin komento jolla siirretään tekstikursori.

    CurrentX = TextWidth(" ") * (x - 1)
    CurrentY = TextHeight(" ") * (y - 1)

End Sub

hunajavohveli [11.07.2004 20:46:55]

#

Koodin puolesta näyttää lupaavalta. Harmi vain, ettei VB5:ssa pelaa kaikki ominaisuudet.

makeuu [11.07.2004 21:17:03]

#

Hyvää, selkeää ja yksinkertaista koodia

sooda [12.07.2004 10:36:34]

#

Voffeli: esim toi array() homma on helppo korvata esim näin:
Private Sanat(3)

Sanat(1)="Moi"
Sanat(2)="Hei"
Sanat(3)="Töh"

Muut kai toimii vb5:ssä.

hunajavohveli [12.07.2004 12:21:23]

#

Joo, hoksasin tuon vähän ajan päästä itsekin. Hienosti toimii.

jrantala [12.07.2004 16:26:56]

#

soot mun idoli <3

Vastaus

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

Tietoa sivustosta