Article View: be.comp.programming
Article #5521vier op een rij controleren (vb.net)
From: TRAX
Date: Mon, 31 Mar 2003 12:46
Date: Mon, 31 Mar 2003 12:46
68 lines
3616 bytes
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-mailShow 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