Avatar billede adagio Nybegynder
21. juli 2001 - 15:40 Der er 6 kommentarer og
1 løsning

Yatzee

Jeg er lige igang med at lave et yatzee spil, eller rettere prøve at ændre på en fundet på \"planet source code\". Det jeg har ændret til nu er at få en terning mere i spillet (og så et par andre småting i spillet), men nu da det er en mere terning med (nu er det 6) virker small straight og big straight ikke mere.

Grunden er at der først var sagt at for at få small straight må man ikke have en 6\'er (og omvendt)

Her er koden jeg har prøvet at mixe sammen, men som det kan ses skal man kun har 1 ener for at få lille straight. Kan det ikke sættes til at den først kigger om man har en ener, har man det ser den efter om man har en toer osv...Eller hvordan kan det gøres?

-----------------------------------------------------
Private Function chkStraight(intBigSmall As Integer) As Integer
Dim i As Integer
Dim bolCheck, bolBigSmall As Boolean

For i = 0 To 5

If intBigSmall = 6 Then
    If DiceValue(i) = 1 Then
                      chkStraight = 15
    End If
End If
Next

End Function
-----------------------------------------------------
Avatar billede roenving Novice
21. juli 2001 - 18:35 #1
Jeg er ikke helt sikker på det hjørne i VB, men hvad med at prøve

Private Function chkStraight(intBigSmall As Integer) As Integer
Dim i As Integer
Dim bolCheck, bolBigSmall, Ch1, Ch2, Ch3, Ch4, Ch5 As Boolean

Ch1=false
Ch2=false
Ch3=false
Ch4=false
Ch5=false
 
If intBigSmall = 6 Then
For i = 0 To 5
    Select Case DiceValue(i)
    Case 1
        Ch1=True
    Case 2
        Ch2=True
    Case 3
        Ch3=True
    Case 4
        Ch4=True
    Case 5
        Ch5=True
    End Select
    If Ch1 And Ch2 And Ch3 And Ch4 And Ch5 Then
        chkStraight = 15
    End If
Next
End If

End Function

Nu kan jeg ikke gennemskue hvad du bruger intBigSmall til, men jeg har flyttet den udenfor løkken, det kan ikke være nødvendigt at spørge på den 5 gange.

hth
jes
Avatar billede roenving Novice
21. juli 2001 - 18:38 #2
Ups ...

Private Function chkStraight(intBigSmall As Integer) As Integer
Dim i As Integer
Dim bolCheck, bolBigSmall, Ch1, Ch2, Ch3, Ch4, Ch5 As Boolean

Ch1=false
Ch2=false
Ch3=false
Ch4=false
Ch5=false
 
If intBigSmall = 6 Then
For i = 0 To 5
    Select Case DiceValue(i)
    Case 1
        Ch1=True
    Case 2
        Ch2=True
    Case 3
        Ch3=True
    Case 4
        Ch4=True
    Case 5
        Ch5=True
    End Select
Next
End If

    If Ch1 And Ch2 And Ch3 And Ch4 And Ch5 Then
        chkStraight = 15
    Else
        chkStraight = 0
    End If

End Function
Avatar billede adagio Nybegynder
21. juli 2001 - 18:45 #3
Ahh, sådan kan man få det til at virke :) Jeg takker for hjælpen
Avatar billede mikker Nybegynder
21. juli 2001 - 18:48 #4
dim a,i,z as integer
a=1, z=1
nestetal:
if dicevalue(i) = a then
if z < a then
z = a 
a = a + 1
if a = 5 then chkstraight = 15
end if
end if
if z = a then a=a +1: goto nestetal

Eller noget i den stil?
Jeg tror den knækkede på et tidspunkt, kigger på det senere :-)

- Mikker
Avatar billede mikker Nybegynder
21. juli 2001 - 18:49 #5
roenving>> SELVFØLGELIG :-)

- Mikker
Avatar billede adagio Nybegynder
21. juli 2001 - 18:59 #6
For at få både den lille og den store straight til at virke fik jeg det til at se sådan ud:

------------------------------------------------
Private Function chkStraight(intBigSmall As Integer) As Integer
Dim i As Integer
Dim bolCheck, bolBigSmall, Ch1, Ch2, Ch3, Ch4, Ch5, Ch6 As Boolean

Ch1 = False
Ch2 = False
Ch3 = False
Ch4 = False
Ch5 = False
Ch6 = False
 
For i = 0 To 5
    Select Case DiceValue(i)
    Case 1
        Ch1 = True
    Case 2
        Ch2 = True
    Case 3
        Ch3 = True
    Case 4
        Ch4 = True
    Case 5
        Ch5 = True
    Case 6
        Ch6 = True
    End Select
Next

If intBigSmall = 6 Then
    If Ch1 And Ch2 And Ch3 And Ch4 And Ch5 Then
        chkStraight = 15
    Else
        chkStraight = 0
    End If
End If
   
If intBigSmall = 1 Then
    If Ch2 And Ch3 And Ch4 And Ch5 And Ch6 Then
        chkStraight = 30
    Else
        chkStraight = 0
    End If
End If

End Function
------------------------------------------------

Så der var ellers kun nogle småting der skulle ændres :)
Avatar billede roenving Novice
21. juli 2001 - 19:16 #7
É bingo ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester