Toon posts:

[vb.net] loop probleem *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met het maken van een simpele bingo game alleen nu is het volgende probleem opgetreden. het probleem zit hem in de loop, hij geeft namelijk wel netjes 90 willekeurige getallen, maar zoals we allemaal weten mag je bij bingo nooit 2 maal hetzelfde getal hebben. ik heb dit dus al proberen op te lossen door een if then statement maar op de een of andere manier blijft ie met onderstaande code hangen bij het 40e getal ongeveer. (dit komt waarschijnlijk omdat ik bytcounter -1 do). Kijk maar even, ik hoop dat jullie me snappen, in ieder geval bedankt.

Dim bingogevallen as new bingogevallen
Dim getal As Integer, wrap As String, getrokkengetal As Byte
Dim dubbelgetal As Integer, bytX As Byte, fout As Boolean
bytCounter = bytCounter + 1

fout = True
getrokkengetal = Int(Rnd() * 90 + 1)
For bytX = 1 To bytCounter - 1
If arrBingo(bytX) = getrokkengetal Then

txtBoxNumber.Text = bytCounter - 1
txtBoxNumber.Text = CStr(getrokkengetal)
Else
fout = False
txtBoxNumber.Text = CStr(getrokkengetal) arrBingo(bytCounter) = CByte(txtBoxNumber.Text) 'bytcouarrBingo(bytCounter) = CByte(txtBoxNumber.Text) End If
Next

If Not fout Then
Label1.Text = IIf(bytCounter = 1, "Er is " & CStr(bytCounter) & " getal getrokken", "Er zijn " & CStr(bytCounter) & " getallen getrokken")

If bytCounter = 90 Then
MsgBox("Er is een Bingo gevallen !!!", MsgBoxStyle.Critical)
bingogevallen.Show()
bytCounter = 0
End If
End If

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

2 vragen:

1. Welke taal is het? VB5? VB6? VB.Net? VBA?
2. Kan je [norml]
Visual Basic .NET:
1
[/] gebruiken om je code?

[ Voor 22% gewijzigd door gorgi_19 op 10-11-2003 22:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Sick Nick
  • Registratie: Februari 2001
  • Laatst online: 18-08 22:23

Sick Nick

Drop the top!

Wat je zou kunnen doen is een array nemen met de getallen 1 tot 90 en dan random daaruit de getallen halen. Als je dan een leeg veld krijgt nog een keer totdat alle getallen zijn geweest.

Verwijderd

Topicstarter
het is visual basic .net...
was ik even vergeten, srry

en vraag 2: nee dat kan niet.

voor sick nick: kan je me misschien een voorbeeldje geven ofzoiets ?

[ Voor 49% gewijzigd door Verwijderd op 10-11-2003 22:54 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 10 november 2003 @ 22:52:
en vraag 2: nee dat kan niet.
euhm, doe maar even wel, dat leest namelijk wat makkelijker

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op 10 november 2003 @ 22:55:
[...]


euhm, doe maar even wel, dat leest namelijk wat makkelijker
ohw, bedoel je op die manier...ik zal je zeggen, kep geen id wat jullie er precies mee bedoelen, ben een beginneling in vb.net moet je weten.

hoop dat iemand me evengoed een beetje kan helpen ?? _/-\o_

[ Voor 10% gewijzigd door Verwijderd op 10-11-2003 22:58 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

zie de GoT FAQ, helemaal onderaan

Als je hier code op het forum post, dan kun je dat doen tussen code tags, in jouw geval [norml]
Visual Basic .NET:
1
... je code hier...
[/], dan blijft de formatting behouden :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op 10 november 2003 @ 22:59:
zie de GoT FAQ, helemaal onderaan

Als je hier code op het forum post, dan kun je dat doen tussen code tags, in jouw geval [norml]
Visual Basic .NET:
1
... je code hier...
[/], dan blijft de formatting behouden :)
Op die manier, ik zal het eens doen hieronder, thanks m8...

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 Dim bingogevallen As New BingoGevallen
        Dim wrap As String, getrokkengetal As Byte
        Dim bytX As Byte, fout As Boolean

        bytCounter = bytCounter + 1

        fout = True
        getrokkengetal = Int(Rnd() * 90 + 1)
        For bytX = 1 To bytCounter - 1
            If arrBingo(bytX) = getrokkengetal Then

                txtBoxNumber.Text = bytCounter - 1
                txtBoxNumber.Text = CStr(getrokkengetal)
            Else
                fout = False
                txtBoxNumber.Text = CStr(getrokkengetal)
                arrBingo(bytCounter) = CByte(txtBoxNumber.Text)
            End If
        Next

        If Not fout Then
            Label1.Text = IIf(bytCounter = 1, "Er is " & CStr(bytCounter) & " getal getrokken", "Er zijn " & CStr(bytCounter) & " getallen getrokken")


            If bytCounter = 90 Then
                MsgBox("Er is een Bingo gevallen !!!", MsgBoxStyle.Critical)
                bingogevallen.Show()
                bytCounter = 0
            End If
        End If


<span style="color:blue">.modbreak: die [norml] tags moet je natuurlijk wel achterwege laten, dat maakt het alleen maar mogelijk om de tekst binnen de tags letterlijk te laten zien zoals het is ;)</span>

Rapt0r says: thanks !

[ Voor 11% gewijzigd door Verwijderd op 10-11-2003 23:09 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Sorry, maar ik moet je toch dringend adviseren de FAQs te lezen
Algemene GoT FAQ
P&W FAQ - Het FAQ/Beleid topic
P&W FAQ - De "quickstart"

Daar stond sowieso al het gebruik van de code tags in, maar bijvoorbeeld ook dat het niet gewenst is om een topic binnen 24 uur te kicken. Je topic staat nog vrij bovenaan in de topiclijst, en er zal heus wel op een gegeven moment iemand langskomen om je probleem te analyseren. Je zult gewoon geduld moeten hebben

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

ik heb de volgende code gemaakt, wel niet getest. Het werkt recursief
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    Public Sub genereerGetal(ByRef rij() As Integer, ByVal index As Integer)
        If index > 90 Then
            Exit Sub
        Else
            Dim temp As Integer = New Random().Next * 60 + 1
            If check(rij, temp) Then
                genereerGetal(rij, index)
            Else
                rij(index) = temp
            End If
            genereerGetal(rij, index + 1)
        End If
    End Sub

    Public Function check(ByRef rij() As Integer, ByVal getal As Integer) As Boolean
        Dim i As Integer = 0
        While rij(i) <> 0
            If rij(i) = getal Then
                Return True
            End If
        End While
    End Function

Verwijderd

Topicstarter
thanks, ik zal eens zien wat er gebeurt...
Pagina: 1