🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5521

vier op een rij controleren (vb.net)

#5521
From: TRAX
Date: Mon, 31 Mar 2003 12:46
68 lines
3616 bytes

Ik heb een algoritme om te controleren of er op een diagonaal (van links
beneden, naar rechts boven) in een tabel vier op een rij aanwezig is. De
tabel wordt correct opgevuld dmv een gui, daar zit het probleem zeker niet
maar als ik vier op een rij maak in die diagonaal wilt hij het maar niet
detecteren. Hier volgt de code met wat uitleg:

--begin code--
'rechts diagonaal checken
        kol = kolom
'kolom is de waarde van de kolom van het laatste blokje dat wordt geplaatst
        Dim rijbegin = 0
        Dim kolombegin = 0
        Dim rijeinde = 0
        Dim kolomeinde = 0
        aantalgelijk = 0
        Dim r = rij
'rij is de waarde van de rij waar het laatste blokje is geplaatst
        Dim j As Integer
        Do Until (r >= 5 Or rijbegin <= -3)
            r += 1
            rijbegin -= 1
        Loop
'zoeken tot waar ik moet teruglopen om 4 op een rij te zoeken (er zijn 7
kolommen en 6 rijen)
        Do Until (kol <= 0 Or kolombegin <= -3)
            kol -= 1
            kolombegin -= 1
        Loop
        kol = kolom
        r = rij
        Do Until (r <= 0 Or rijeinde >= 3)
            r -= 1
            rijeinde += 1
        Loop
        Do Until (kol >= 6 Or kolomeinde >= 3)
            kol += 1
            kolomeinde += 1
        Loop
'ik heb nu de waarden van de tabelelementen die een diagonaal vormen met de
waarde van de cel waar het laatste blokje gezet is en hoever die diagonaal
verderloopt
'maximum 3 cellen ervoor en 3 erna (diagonaal bekeken), binnen de grenzen
van de tweedimensionale tabel
        For i = rijbegin To rijeinde Step 1
            For j = kolombegin To kolomeinde Step 1
                If tabel(rij - i, kolom + j) = tabel(rij, kolom) Then
                    aantalgelijk += 1
                    If aantalgelijk = 4 Then
                        Return True
                    End If
                Else
                    aantalgelijk = 0
                End If
            Next
        Next
'dit is een lus om te kijken of er 4 op een rij voorkomt in die diagonaal
--einde code--

Het probleem: als ik 4 op een rij in die diagonale richting zet doet hij
niks, ik heb al met verschillende breakpoints de waarden van al die
variabelen getest en ik vermoed dat kolom begin en einde, en rijbegin en
einde wel juist worden ingesteld maar aantalgelijk blijft steeds op 0. Ik
heb al vanalles geprobeerd dus als iemand ziet waar de fout zit, of als er
iets niet duidelijk is: be my guest!

alvast bedankt!
Technical Details
Message-ID: <gMWha.15346$t_2.1589@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!kibo.news.demon.net!demon!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,4d5ee2bdead95399,start
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-03-31 04:48:03 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!kibo.news.demon.net!demon!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
From: "TRAX" <Stijn.Verspeet@pandora[delete.this].be>
Newsgroups: be.comp.programming
Subject: vier op een rij controleren (vb.net)
Lines: 70
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Message-ID: <gMWha.15346$t_2.1589@afrodite.telenet-ops.be>
Date: Mon, 31 Mar 2003 12:46:04 GMT
NNTP-Posting-Host: 213.118.62.66
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1049114764 213.118.62.66 (Mon, 31 Mar 2003 14:46:04 MET DST)
NNTP-Posting-Date: Mon, 31 Mar 2003 14:46:04 MET DST
Organization: Telenet Internet