There's no such thing as a stupid question, but they're the easiest to answer.
JoinTour
Login
 
Tag Cloud
access audio avg avg 8 bios blue screen boot bsod computer connection cpu crash css dell desktop dma driver drivers dvd email error excel explorer firefox firefox 3 freeze gimp graphics hard drive hardware hijackthis hjt install internet internet explorer itunes keyboard laptop macro malware monitor motherboard network networking outlook outlook 2003 outlook 2007 outlook express pio problem problems router seo server slow sound sp3 spyware trojan usb video virtumonde virus vista vundo windows windows vista windows xp winxp wireless
Software Development
Search
Search in:
 
Advanced Search
Tech Support Guy Forums > Software & Hardware > Software Development >
Problem with VB code


HELLO AND WELCOME! Before you can post your question, you'll have to register -- it's completely free! Click here to join today! We highly recommend that you print a copy of our Guide for New Members. Enjoy!

 
Thread Tools
Daz224's Avatar
Member with 47 posts.
 
Join Date: Aug 2005
Experience: Good with most things technical
28-Aug-2005, 07:44 PM #1
Problem with VB code
Hi there, I'm coding a card game and running into problems. I wrote a function that will check a user's hand for pairs and report back if there are any. Trouble is, it's misreporting most of the time.

Code:
Private Sub CheckPairs()

Dim i As Integer, j As Integer, booPairs As Boolean

booPairs = False

    For i = 0 To 11
        For j = i + 1 To 11
            If (intHand(0, j) Mod 13) = (intHand(0, i) Mod 13) Then booPairs = True
                If intHand(0, j) = 99 And intHand(0, i) = 99 Then booPairs = False: Exit For
        Next j
    Next i

    If booPairs = True Then lblMessage.Caption = "You still have pairs!" Else lblMessage.Caption = "Right let's go"

End Sub
aewarnick's Avatar
Senior Member with 839 posts.
 
Join Date: Sep 2002
28-Aug-2005, 09:18 PM #2
To optimize your code I would make the second If an else if (else if is C++).
What is intHand?
Daz224's Avatar
Member with 47 posts.
 
Join Date: Aug 2005
Experience: Good with most things technical
29-Aug-2005, 05:19 AM #3
inthand is the variable that holds the card values. (0) is Player 1's hand.
jiml8's Avatar
Senior Member with 1,514 posts.
 
Join Date: Jul 2005
Experience: I've been at this for too long.
29-Aug-2005, 04:51 PM #4
When you say it "misreports", I'll bet it is double-counting the pairs, isn't it.

You are searching the same dimension of one array using two indices, and you are looping both indices over the entire array. So everything will be picked up twice.
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are Off
Refbacks are Off

You Are Using:
Server ID
Advertisements do not imply our endorsement of that product or service.
All times are GMT -4. The time now is 03:30 AM.
Copyright © 1996 - 2008 TechGuy, Inc. All rights reserved.
Powered by vBulletin, Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Powered by Cermak Technologies, Inc.