Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

I need to re-populate board after all buttons have been selected.

Posted on 2008-10-15
7
Medium Priority
?
233 Views
Last Modified: 2010-04-23
I've created a Jeopardy style game. What I need to do is re-populate the board of buttons with new questions once all the questions have been answered. When a button has been selected, the text is changed to " ". I've created a function to check if all the button text is blank but it doesn't seem to be calling for the next round of questions. Can anyone see what is wrong?
~TIA
Friend Function roundOver(ByVal sRoundOver As String) As Boolean
        Dim ctrl As Control
        Dim bRoundOver As Boolean = True
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is Button And ctrl.Text = "" = True Then
                bRoundOver = False
                Exit For
            End If
        Next ctrl
    End Function
 
If bRoundOver = True Then
            'hook up array
            arrCol1(0) = btn1200
            arrCol1(1) = btn1400
            arrCol1(2) = btn1600
            arrCol1(3) = btn1800
            arrCol1(4) = btn11000
 
            arrCol2(0) = btn2200
            arrCol2(1) = btn2400
            arrCol2(2) = btn2600
            arrCol2(3) = btn2800
            arrCol2(4) = btn21000
 
            arrCol3(0) = btn3200
            arrCol3(1) = btn3400
            arrCol3(2) = btn3600
            arrCol3(3) = btn3800
            arrCol3(4) = btn31000
 
            arrCol4(0) = btn4200
            arrCol4(1) = btn4400
            arrCol4(2) = btn4600
            arrCol4(3) = btn4800
            arrCol4(4) = btn41000
 
            arrCol5(0) = btn5200
            arrCol5(1) = btn5400
            arrCol5(2) = btn5600
            arrCol5(3) = btn5800
            arrCol5(4) = btn51000
 
            arrCol6(0) = btn6200
            arrCol6(1) = btn6400
            arrCol6(2) = btn6600
            arrCol6(3) = btn6800
            arrCol6(4) = btn61000
 
            dtCategories = oBoard.GetCategories
 
            txtCat1.Text = dtCategories.Rows(0).Item(1)
            txtCat2.Text = dtCategories.Rows(1).Item(1)
            txtCat3.Text = dtCategories.Rows(2).Item(1)
            txtCat4.Text = dtCategories.Rows(3).Item(1)
            txtCat5.Text = dtCategories.Rows(4).Item(1)
            txtCat6.Text = dtCategories.Rows(5).Item(1)
 
            For x = 0 To 5
                oBoard.Used(dtCategories.Rows(x).Item(0))
            Next
            For x = 0 To 4
                arrCol1(x).Text = ("$" & (x + 1) * 200)
                arrCol2(x).Text = ("$" & (x + 1) * 200)
                arrCol3(x).Text = ("$" & (x + 1) * 200)
                arrCol4(x).Text = ("$" & (x + 1) * 200)
                arrCol5(x).Text = ("$" & (x + 1) * 200)
                arrCol6(x).Text = ("$" & (x + 1) * 200)
                My.Computer.Audio.Play("BoardFill.wav")
            Next
            m_Categories = dtCategories
            Me.Show()
        Else
            arrCol1(0) = btn1200
            arrCol1(1) = btn1400
            arrCol1(2) = btn1600
            arrCol1(3) = btn1800
            arrCol1(4) = btn11000
 
            arrCol2(0) = btn2200
            arrCol2(1) = btn2400
            arrCol2(2) = btn2600
            arrCol2(3) = btn2800
            arrCol2(4) = btn21000
 
            arrCol3(0) = btn3200
            arrCol3(1) = btn3400
            arrCol3(2) = btn3600
            arrCol3(3) = btn3800
            arrCol3(4) = btn31000
 
            arrCol4(0) = btn4200
            arrCol4(1) = btn4400
            arrCol4(2) = btn4600
            arrCol4(3) = btn4800
            arrCol4(4) = btn41000
 
            arrCol5(0) = btn5200
            arrCol5(1) = btn5400
            arrCol5(2) = btn5600
            arrCol5(3) = btn5800
            arrCol5(4) = btn51000
 
            arrCol6(0) = btn6200
            arrCol6(1) = btn6400
            arrCol6(2) = btn6600
            arrCol6(3) = btn6800
            arrCol6(4) = btn61000
 
            dtCategories = oBoard.GetCategories
 
            txtCat1.Text = dtCategories.Rows(0).Item(1)
            txtCat2.Text = dtCategories.Rows(1).Item(1)
            txtCat3.Text = dtCategories.Rows(2).Item(1)
            txtCat4.Text = dtCategories.Rows(3).Item(1)
            txtCat5.Text = dtCategories.Rows(4).Item(1)
            txtCat6.Text = dtCategories.Rows(5).Item(1)
 
            For x = 0 To 5
                oBoard.Used(dtCategories.Rows(x).Item(0))
            Next
            For x = 0 To 4
                arrCol1(x).Text = ("$" & (x + 1) * 400)
                arrCol2(x).Text = ("$" & (x + 1) * 400)
                arrCol3(x).Text = ("$" & (x + 1) * 400)
                arrCol4(x).Text = ("$" & (x + 1) * 400)
                arrCol5(x).Text = ("$" & (x + 1) * 400)
                arrCol6(x).Text = ("$" & (x + 1) * 400)
                My.Computer.Audio.Play("BoardFill.wav")
            Next
            m_Categories = dtCategories
            Me.Show()
        End If
    End Sub
 
    Private Sub btnCol1_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1200.Click, btn1400.Click, btn1600.Click, btn1800.Click, btn11000.Click
 
        m_sender = Strings.Right(sender.tag, 1)
        icolumn = Strings.Left(sender.tag, 1) - 1
        irow = Strings.Right(sender.tag, 1) - 1
 
        temp = (m_sender * 200)
 
        'hook up array
        Dim frmQ As New frmQuestion
        vwQuestion.RowFilter = "CategoryID = '" & CStr(m_Categories.Rows(icolumn).Item("CategoryID")).Replace("'", "\'") & "'"
        frmQ.Question = vwQuestion.ToTable.Rows(irow).Item(2)
        frmQ.Answer1 = vwQuestion.ToTable.Rows(irow).Item(3)
        frmQ.Answer2 = vwQuestion.ToTable.Rows(irow).Item(4)
        frmQ.Answer3 = vwQuestion.ToTable.Rows(irow).Item(5)
        frmQ.Answer4 = vwQuestion.ToTable.Rows(irow).Item(6)
        frmQ.CorrectAnswer = vwQuestion.ToTable.Rows(irow).Item(7)
 
        Dim btn As Button = DirectCast(sender, Button)
        btn.Text = ""
        btn.Enabled = False
 
        iResult = frmQ.ShowDialog()
        If iResult = 1 Then
            Score = Score + temp
        Else
            Score = Score - temp
        End If
        lblScore.Text = Score
        Call roundOver(bRoundOver)
 
    End Sub

Open in new window

0
Comment
Question by:98fatboyrider
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
7 Comments
 
LVL 8

Expert Comment

by:rlh68
ID: 22727322

In your RoundOver method try changing this...

  If TypeOf ctrl Is Button And ctrl.Text = "" = True Then
                bRoundOver = False
                Exit For
            End If

to this...

  If TypeOf ctrl Is Button And ctrl.Text = "" Then
                bRoundOver = False
                Exit For
            End If
0
 
LVL 8

Expert Comment

by:rlh68
ID: 22727349

Also you are missing some code, however I am guessing you just mistakenly forgot to post part of your code. Your RoundOver method ends and the next bit of code starts with 'If bRoundOver = True Then' and this code ends with an End Sub.
0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 2000 total points
ID: 22727367
If you find a Button that is not " " then the round isn't over...because you have questions left right?

    Friend Function RoundIsOver() As Boolean
        For Each ctrl As Control In Me.Controls
            If TypeOf ctrl Is Button AndAlso ctrl.Text <> " " Then
                Return False
            End If
        Next
        Return True
    End Function

Call it like this:

    If RoundIsOver() Then
        ...
    End If
0
Nothing ever in the clear!

This technical paper will help you implement VMware’s VM encryption as well as implement Veeam encryption which together will achieve the nothing ever in the clear goal. If a bad guy steals VMs, backups or traffic they get nothing.

 
LVL 8

Expert Comment

by:rlh68
ID: 22727381
oops, yes check <> "" as Idle_Mind suggests.
0
 

Author Comment

by:98fatboyrider
ID: 22727732
Thanks, I think I almost have it now, but how do I check to see if all the buttons are " " after each one is selected?
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 22728368
Huh?...the RoundIsOver() function I gave you will return TRUE if all the buttons are " "...otherwise it returns False.

So just call the RoundIsOver() function in the Click() handler of the buttons or from where ever you execute code after a question is answered.
0
 

Author Closing Comment

by:98fatboyrider
ID: 31506577
Thank you.
0

Featured Post

Get your Conversational Ransomware Defense e‑book

This e-book gives you an insight into the ransomware threat and reviews the fundamentals of top-notch ransomware preparedness and recovery. To help you protect yourself and your organization. The initial infection may be inevitable, so the best protection is to be fully prepared.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Suggested Courses

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question