Dobbelstenen

Status
Niet open voor verdere reacties.

Ares123

Gebruiker
Lid geworden
16 feb 2012
Berichten
8
Ik heb een stuk geschreven dat 5 dobbelstenen gooit , maar ik vraag me nu af hoe ik sommige er van kan vastzetten en met de andere verder gooi, dus bv 2 houden hun nummer en de andere drie worden opnieuw gegooid, iemand advies?

Code:
Class Yathzee
    Public Shared Sub main()
        Dim Rollen1 As New Rollen
        Rollen1.Gooien()
        Dim Rollen2 As New Rollen
        Rollen2.Gooien()
        Dim Rollen3 As New Rollen
        Rollen3.Gooien()
    End Sub
End Class

Code:
Class Rollen
    Public m_Vastzetten As Boolean = False
    Public Property Vastzetten() As Boolean
        Get
            Return m_Vastzetten
        End Get
        Set(ByVal value As Boolean)
            m_Vastzetten = value
        End Set
    End Property
Code:
Public Sub Gooien()
        Dim randomgenerator As New Random()
        Dim i As Integer
        Dim reeks As String = ""
        For i = 1 To 5 Step 1
            reeks &= randomgenerator.Next(1, 7).ToString() & " "
        Next
        Console.WriteLine(reeks)
        Console.ReadLine()
    End Sub

End Class
 
Laatst bewerkt door een moderator:
Zorg altijd dat je een "randomize" meegeeft ergens. Enfin, het makkelijkste is om een array te gebruiken met 5 waarden om je getallen op te slaan. vastzetten kun je eventueel als binaire waarde doorgeven.

Code:
For i = 1 to 5
  if (value AND 2^i) = 0
    getal(i) = random...
  end if
next i
 
Zoals wampier al zegt: de getallen in een array plaatsen.

Wat moet er daarna mee gebeuren? Wanneer moet een dobbelsteen opnieuw gegooid worden?

[edit] Weet je niet wat een array is? Waar gaat het fout? :confused:[/edit]
 
Ik weet wat een array is , maar moet die in de main of ook in de rollen class of een nieuwe class voor " hold " ?


en hm, gooit 1 x, kiest welke er vastkomen te staan en welke nog es moete gerold worden

dan kies je weer welke vast en je rolt weer en dit weer een 3de x en dan klaar
 
Laatst bewerkt:
OK, worden de dobbelstenen die vast worden gehouden willekeurig gekozen of doet de gebruiker dat?
(Ik ken Yathzee wel van naam, maar heb het tot op heden nooit gespeeld :o)
 
De gebruiker kiest die

als je zo'n array maakt, hoe maak je dan dat de gebruiker deze kan vastzetten?
 
Laatst bewerkt:
Ik denk dat je dit het best met radiobuttons doet, (of dergelijke) iets waarmee je kan vinken.
Zodra je ze gerold hebt, kun je met de ' Select case ' werken, en case per case instellen.
Zodat wanneer je Case 1 aangevinkt hebt, deze waarde er blijft staan.
Natuurlijk komt hier ook nog een If functie aan te pas,


Code:
If radiobutton1.Checked = true then..
label1.Text = ...
else
... dezelfde functie waarmee je gerold hebt
end if
 
Laatst bewerkt door een moderator:
@ Anthon

Het is de bedoeling om dit volledig in de console te laten zien, we zitten nog niet toe aan het graphische gedeelte
 
mijn excuses dan, verkeerd gelezen
 
Laatst bewerkt door een moderator:
niet nodig, dank voor de reactie, had het in me eerste post moeten zetten
 
Ach had toch even tijd

Code:
    Class rollen
        Private vastgezet As Integer = 0
        Private getallen(5) As String
        Public Property vastzetten As Integer
            Get
                Return vastgezet
            End Get
            Set(ByVal value As Integer)
                vastgezet = value
            End Set
        End Property
        Public Sub gooien()
            Randomize()
            Dim generator As New Random()
            Dim i As Integer
            For i = 1 To 5
                If (vastgezet And 2 ^ (i - 1)) = 0 Then
                    getallen(i) = generator.Next(1, 7).ToString
                End If
            Next i
            
        End Sub
        Public Sub feedback()
            Console.WriteLine(Join(getallen))
        End Sub
    End Class


    Sub Main()
        Dim test As New rollen
        Dim feedback As String
        Dim stukje As Char
        Dim behouden As UInteger
        Dim i As Integer

        For i = 1 To 3
            test.gooien()
            test.feedback()
            Console.WriteLine("welke getallen vastzetten? 0 voor alles opnieuw gooien. (bijv: 135 om 1,3 en 5 te behouden")
            feedback = Console.ReadLine
            feedback = Val(feedback).ToString
            For Each stukje In feedback
                If Val(stukje) > 0 And Val(stukje) < 6 Then
                    behouden = behouden Or 2 ^ (Val(stukje) - 1)
                End If
            Next
            test.vastzetten = behouden
        Next i
        Console.ReadLine
    End Sub
 
slotjes doe je zelf door de vraag op opgelost te zetten. en zelfs dan mag je nog zeker eens posten hoe het is afgelopen :)
 
Vraag op opgelost zetten: Rechtsonderin je eerste post op 'Zet status opgelost' klikken ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan