Group: Forum Members
Posts: 7,
Visits: 1
|
I am making a Hangman game and it has gone bizzerk. Can you help figure out the last part to fix it? I need it to Randomly pick a word then put it in the TxtBox but as question marks. Then you have to guess the word and the legs,arms and finally the head will go "POOF" if you get it wrong. All the letters used go to the a "Used letter" TxtBox and the letter button become disabled. I am stuck help me if you can figure out the finally part. ~Code listed below~ *Warning it is VERY long* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Public Class Form1Inherits System.Windows.Forms.FormDim theWord As StringDim arrayWord(8) As StringDim wrongGuess As IntegerDim myrand As IntegerDim wordcount As IntegerPrivate Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.ClickDim arrayWord() As StringDim myrand2 As RandomDim myword As StringDim x As IntegerDim ff As IntegerwrongGuess = 0 ' reset wrong guessespb1.Image = ImageList1.Images(0) ' Get a unique file numberff = FreeFile() Dim strAnimal() As StringDim i As Integer' Open the file for input to read itFileSystem.FileOpen(ff, "H:\HangMan\Animalnames.txt", OpenMode.Input) ' Add each line from the file to an arrrayDo While Not EOF(ff)ReDim Preserve strAnimal(i)strAnimal(i) = FileSystem.LineInput(ff) i += 1 Loop' Close the fileFileSystem.FileClose(ff) ReDim arrayWord(Len(myrand))' Initalize the random generatorRandomize() ' Get a random indexi = CType(Rnd() * (i + 1), Integer)' Show the random line in the text boxlblWord.Text = strAnimal(i) If Len(myrand) = 0 ThenMessageBox.Show("You must enter a word", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit SubElseCall enableAll() ' enable all lettersEnd IftheWord = UCase(myrand) theWord = (strAnimal(i)) lblWord.Text = "" For x = 1 To Len(myrand)lblWord.Text += "?" arrayWord(x) = "?" Nextbtn1.Enabled = Falsebtn2.Enabled = Falsebtn3.Enabled = FalsebtnAgain.Enabled = TrueEnd SubPrivate Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.ClickwrongGuess = 0 ' reset wrong guessespb1.Image = ImageList1.Images(0) Call enableAll() ' enable all lettersDim x As IntegerDim ff As IntegerDim strComput() As StringDim i As Integer' Get a unique file numberff = FreeFile() ' Open the file for input to read itFileSystem.FileOpen(ff, "H:\HangMan\Computerterms.txt", OpenMode.Input) ' Add each line from the file to an arrrayDo While Not EOF(ff)ReDim Preserve strComput(i)strComput(i) = FileSystem.LineInput(ff) i += 1 Loop' Close the fileFileSystem.FileClose(ff) ' Initalize the random generatorRandomize() ' Get a random indexi = CType(Rnd() * (i + 1), Integer)' Show the random line in the text box'lblWord.Text = strComput(i)If Len(myrand) = 0 ThenMessageBox.Show("You must enter a word", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit SubElseCall enableAll() ' enable all lettersReDim arrayWord(Len(myrand))End IftheWord = (strComput(i)) lblWord.Text = "" For x = 1 To Len(theWord)lblWord.Text += "?" arrayWord(x) = "?" Nextbtn1.Enabled = Falsebtn2.Enabled = Falsebtn3.Enabled = FalsebtnAgain.Enabled = TrueEnd SubPrivate Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.ClickwrongGuess = 0 ' reset wrong guessespb1.Image = ImageList1.Images(0) Call enableAll() ' enable all lettersDim x As IntegerDim ff As IntegerDim strCar() As StringDim i As Integer' Get a unique file numberff = FreeFile() ' Open the file for input to read itFileSystem.FileOpen(ff, "H:\HangMan\CarNames.txt", OpenMode.Input) ' Add each line from the file to an arrrayDo While Not EOF(ff)ReDim Preserve strCar(i)strCar(i) = FileSystem.LineInput(ff) i += 1 Loop' Close the fileFileSystem.FileClose(ff) ' Initalize the random generatorRandomize() ' Get a random indexi = CType(Rnd() * (i + 1), Integer)' Show the random line in the text box'lblWord.Text = strCar(i)If Len(myrand) = 0 ThenMessageBox.Show("You must enter a word", "ERROR!", MessageBoxButtons.OK, MessageBoxIcon.Information) Exit SubElseCall enableAll() ' enable all lettersReDim arrayWord(Len(myrand))End IftheWord = (strCar(i)) lblWord.Text = "" For x = 1 To Len(theWord)lblWord.Text += "?" arrayWord(x) = "?" Nextbtn1.Enabled = Falsebtn2.Enabled = Falsebtn3.Enabled = FalseEnd SubPrivate Sub lblWord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblWord.ClickEnd Sub Public Sub guess(ByVal letter As String)lblWord.Text = "" Dim goodFlag As Boolean = FalseDim x As IntegerDim winFlag As Boolean = True' check to see if the letter fitsFor x = 1 To Len(theWord)If letter = Mid(theWord, x, 1) ThenarrayWord(x) = letter goodFlag = TrueEnd IflblWord.Text += arrayWord(x) Next' see if its a winner or notFor x = 1 To Len(theWord)If "?" = arrayWord(x) ThenwinFlag = FalseExit ForEnd IfNextIf winFlag = True ThenMessageBox.Show("YOU WIN!!!!", "A WINNER!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) btnAgain.Enabled = TruedisableAll() Exit SubEnd If' put the letter in if correctIf goodFlag = False ThenlblWrong.Text += " " & letter Call SubwrongGuess()End IfEnd SubPublic Sub SubwrongGuess()wrongGuess += 1 lblWrongcount.Text = wrongGuess If wrongGuess = 1 Then PictureBox10.Visible = FalseIf wrongGuess = 2 Then PictureBox9.Visible = FalseIf wrongGuess = 3 Then PictureBox8.Visible = FalseIf wrongGuess = 4 Then PictureBox7.Visible = FalseIf wrongGuess = 5 Then PictureBox6.Visible = FalseIf wrongGuess = 5 Then pb1.Image = ImageList1.Images(1)If wrongGuess = 6 Then PictureBox5.Visible = FalseIf wrongGuess = 7 Then PictureBox4.Visible = FalseIf wrongGuess = 8 Then PictureBox3.Visible = FalseIf wrongGuess = 9 Then PictureBox2.Visible = FalseIf wrongGuess = 10 Then PictureBox1.Visible = FalseIf wrongGuess = 10 Then pb1.Image = ImageList1.Images(2)If wrongGuess = 11 Thenpb1.Image = ImageList1.Images(3) Call disableAll()MessageBox.Show("You loose...") End IfEnd SubPublic Sub ResetAll()btnA.Visible = TruebtnB.Visible = Truebtnc.Visible = TruebtnD.Visible = TruebtnE.Visible = TruebtnF.Visible = TruebtnG.Visible = TruebtnH.Visible = TruebtnI.Visible = TruebtnJ.Visible = TruebtnK.Visible = TruebtnL.Visible = TruebtnM.Visible = TruebtnN.Visible = TruebtnO.Visible = TruebtnP.Visible = TruebtnQ.Visible = TruebtnR.Visible = TruebtnS.Visible = TruebtnT.Visible = TruebtnU.Visible = TruebtnV.Visible = TruebtnW.Visible = TruebtnX.Visible = TruebtnY.Visible = TruebtnZ.Visible = TruebtnGo.Enabled = True'txtWord.Text = ""'txtWord.Focus()lblWord.Text = "" Call disableAll()lblWrongcount.Text = "0" lblWrong.Text = "" pb1.Image = ImageList1.Images(0) PictureBox1.Visible = TruePictureBox2.Visible = TruePictureBox3.Visible = TruePictureBox4.Visible = TruePictureBox5.Visible = TruePictureBox6.Visible = TruePictureBox7.Visible = TruePictureBox8.Visible = TruePictureBox9.Visible = TruePictureBox10.Visible = TrueEnd SubPublic Sub enableAll()btnA.Enabled = TruebtnB.Enabled = Truebtnc.Enabled = TruebtnD.Enabled = TruebtnE.Enabled = TruebtnF.Enabled = TruebtnG.Enabled = TruebtnH.Enabled = TruebtnI.Enabled = TruebtnJ.Enabled = TruebtnK.Enabled = TruebtnL.Enabled = TruebtnM.Enabled = TruebtnN.Enabled = TruebtnO.Enabled = TruebtnP.Enabled = TruebtnQ.Enabled = TruebtnR.Enabled = TruebtnS.Enabled = TruebtnT.Enabled = TruebtnU.Enabled = TruebtnV.Enabled = TruebtnW.Enabled = TruebtnX.Enabled = TruebtnY.Enabled = TruebtnZ.Enabled = TrueEnd SubPublic Sub disableAll()btnA.Enabled = FalsebtnB.Enabled = Falsebtnc.Enabled = FalsebtnD.Enabled = FalsebtnE.Enabled = FalsebtnF.Enabled = FalsebtnG.Enabled = FalsebtnH.Enabled = FalsebtnI.Enabled = FalsebtnJ.Enabled = FalsebtnK.Enabled = FalsebtnL.Enabled = FalsebtnM.Enabled = FalsebtnN.Enabled = FalsebtnO.Enabled = FalsebtnP.Enabled = FalsebtnQ.Enabled = FalsebtnR.Enabled = FalsebtnS.Enabled = FalsebtnT.Enabled = FalsebtnU.Enabled = FalsebtnV.Enabled = FalsebtnW.Enabled = FalsebtnX.Enabled = FalsebtnY.Enabled = FalsebtnZ.Enabled = FalseEnd SubPrivate Sub btnA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnA.Clickguess(btnA.Text) btnA.Visible = FalseEnd SubPrivate Sub btnB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB.Clickguess(btnB.Text) btnB.Visible = FalseEnd SubPrivate Sub btnc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnc.Clickguess(btnc.Text) btnc.Visible = FalseEnd SubPrivate Sub btnD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnD.Clickguess(btnD.Text) btnD.Visible = FalseEnd SubPrivate Sub btnE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnE.Clickguess(btnE.Text) btnE.Visible = FalseEnd SubPrivate Sub btnF_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnF.Clickguess(btnF.Text) btnF.Visible = FalseEnd SubPrivate Sub btnG_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnG.Clickguess(btnG.Text) btnG.Visible = FalseEnd SubPrivate Sub btnH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnH.Clickguess(btnH.Text) btnH.Visible = FalseEnd SubPrivate Sub btnI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnI.Clickguess(btnI.Text) btnI.Visible = FalseEnd SubPrivate Sub btnJ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnJ.Clickguess(btnJ.Text) btnJ.Visible = FalseEnd SubPrivate Sub btnK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnK.Clickguess(btnK.Text) btnK.Visible = FalseEnd SubPrivate Sub btnL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnL.Clickguess(btnL.Text) btnL.Visible = FalseEnd SubPrivate Sub btnM_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnM.Clickguess(btnM.Text) btnM.Visible = FalseEnd SubPrivate Sub btnN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnN.Clickguess(btnN.Text) btnN.Visible = FalseEnd SubPrivate Sub btnO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnO.Clickguess(btnO.Text) btnO.Visible = FalseEnd SubPrivate Sub btnP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnP.Clickguess(btnP.Text) btnP.Visible = FalseEnd SubPrivate Sub btnQ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQ.Clickguess(btnQ.Text) btnQ.Visible = FalseEnd SubPrivate Sub btnR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnR.Clickguess(btnR.Text) btnR.Visible = FalseEnd SubPrivate Sub btnS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnS.Clickguess(btnS.Text) btnS.Visible = FalseEnd SubPrivate Sub btnT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnT.Clickguess(btnT.Text) btnT.Visible = FalseEnd SubPrivate Sub btnU_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnU.Clickguess(btnU.Text) btnU.Visible = FalseEnd SubPrivate Sub btnV_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnV.Clickguess(btnV.Text) btnV.Visible = FalseEnd SubPrivate Sub btnW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnW.Clickguess(btnW.Text) btnW.Visible = FalseEnd SubPrivate Sub btnX_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnX.Clickguess(btnX.Text) btnX.Visible = FalseEnd SubPrivate Sub btnY_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnY.Clickguess(btnY.Text) btnY.Visible = FalseEnd SubPrivate Sub btnZ_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZ.Clickguess(btnZ.Text) btnZ.Visible = FalseEnd SubPrivate Sub btnAgain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgain.ClickCall ResetAll()btnAgain.Enabled = False ' disable play again until game overbtn1.Enabled = Truebtn2.Enabled = Truebtn3.Enabled = TrueEnd SubEnd Class~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I live my life A quarter mile at a time.
|
Group: Forum Members
Posts: 8,
Visits: 3
|
F*CK that. lol
Wise man once said, man who goes to bed with it
|
Group: Forum Members
Posts: 827,
Visits: 132
|
|
Group: Forum Members
Posts: 910,
Visits: 5.4K
|
This is VB.NET and I know next to NILL about it. You don't say what the problem is just that there is a problem. If someone here has to run the program to check it then they will need your form and images. Program suggestions: If you use a control array for your buttons you will save a lot of typing and make your code more readable. Such as in your sub to disable all buttons you use: btnA.Enabled = False btnB.Enabled = False btnc.Enabled = False btnD.Enabled = False etc,etc,etc With a control array array named btnAlpha you would type: For X = 0 To 25 btnAlpha(X).Enabled=False Next X As you can see this takes 3 line where yours takes 26. This also holds true for your enabled sub. You can further decrease it by combining the two subs like this Private Sub EnableAll( ByValue En as Boolean) Dim X as Integer For X=0 To 25 btnAlpha(x).Enabled=En Next X End Sub You now have taken 52 lines of code to 3 lines. Also your button clicks for the alphabet: Private Sub btnA_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnA.Click guess (btnA.Text) btnA.Visible = False End Sub Private Sub btnB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnB.Click guess (btnB.Text) btnB.Visible = False End Sub etc, etc, etc Without the control array you need 4 lines for each click event times 26 buttons you have 104 lines of code Using this: Private Sub BtnAlpha_Click(Index as Integer) guess btnAlpha(Index) btnAlpha(Index).Visible=False End Sub Taken with the other you have saved 149 lines. That is a lot of typing (just like this reply). I will stop now. Take this in the spirit it is given. I am not criticizing you just showing another way to program it.
Wayne I know enough to be dangerious. It is hard to understand how a cemetery can raise its burial rates and blame it on the cost of living.
|