Imports System.IO
Module Module1
Dim Word, CoveredWord As String, MoveCount As Integer = 8
Dim RndWord() As String, Score(2) As Integer, Guessed() As String
Sub Main()
Dim NoPlayers As Integer, Quit As String
Do
Console.Write("How Many Players Are There (1/2) : ") : NoPlayers = Console.ReadLine
Console.WriteLine()
Call WordChoose(NoPlayers)
Call GuessLetter()
Console.Write("Do You Wish To Continue (Y/N) : ") : Quit = Console.ReadLine
Loop Until LCase$(Quit) = "n"
End Sub
Sub WordChoose(ByVal NoPlayers As Integer)
Randomize()
Dim RandomNumber As Single = (Rnd() * 10)
Dim Input As String, Choose As Boolean = True
If NoPlayers = 1 Then
Call AssignArray(Choose)
Word = LCase$(RndWord(RandomNumber))
Else
Console.Write("Do You Wish To Enter Your Own Word (Y/N) : ") : Input = Console.ReadLine
Console.WriteLine()
Select Case LCase$(Input)
Case Is = "y"
Console.Write("Enter Your Word (Cannot Use Help As Choosen Word) : ") : Word = LCase$(Console.ReadLine)
Choose = False
Call AssignArray(Choose)
Console.Clear()
If LCase$(Word) = "help" Then
Console.WriteLine("Cannot Use Help As Choosen Word")
Console.WriteLine()
WordChoose(NoPlayers)
Exit Sub
End If
Case Is = "n"
Call AssignArray(Choose)
Word = LCase$(RndWord(RandomNumber))
End Select
End If
CoveredWord = New String("#", Len(Word))
End Sub
Sub AssignArray(ByVal Choose As Boolean)
If Choose = True Then
Dim CurrentReader As StreamReader
Dim ImportData As String, Count As Integer = 1
Dim Filename As String = "\\powley\wakefieldd$\RndWordDict.txt"
CurrentReader = New StreamReader(Filename)
Do While Not CurrentReader.EndOfStream
ImportData = CurrentReader.ReadLine
RndWord(Count) = ImportData
Count += 1
Loop
CurrentReader.Close()
End If
For i As Integer = 0 To 2
Score(i) = 0
Next
End Sub
Sub GuessLetter()
Dim GameOver As Boolean = False
Dim Guess As String
Do
Console.Write("Enter Your Guess (Help For Help) : ") : Guess = LCase$(Console.ReadLine)
If Guess = "help" Then
Console.WriteLine("Enter A Letter Or Word To Guess.")
Console.WriteLine("Enter $ To Reveal Word And Lose The Round.")
Console.WriteLine("Enter # To Exit Game.")
ElseIf Guess = "#" Then
Exit Sub
ElseIf Guess = "$" Then
CoveredWord = Word
GameOver = True
End If
Call WinCheck(Guess, GameOver)
Call DisplayProgress()
Loop While GameOver = False
End Sub
Sub WinCheck(ByVal Guess As String, ByRef GameOver As Boolean)
Dim StrPos, StrPosCheck As Integer, InWord As Boolean = False
If Guess <> "help" And Guess <> "#" And Guess <> "$" And MoveCount <> 0 Then
If Guess = Word Then
GameOver = True
CoveredWord = Word
Exit Sub
End If
StrPos = InStr(Word, Guess)
Do While GameOver = False And StrPos <> 0
StrPos = InStr(Word, Guess)
Mid$(CoveredWord, StrPos, 1) = Guess
Loop
If StrPos = 0 Then
MoveCount -= 1
End If
StrPosCheck = InStr(CoveredWord, "#")
If StrPosCheck <> 0 Then
GameOver = True
End If
End If
End Sub
Sub DisplayProgress()
Console.Clear()
Console.WriteLine("The Word You Have Guessed So Far Is " + CoveredWord)
Console.WriteLine("You Have " + MoveCount + " Guess's Left")
Console.Write("You Have Guessed ")
For i As Integer = LBound(Guessed) To UBound(Guessed)
Console.Write("," + Guessed(i).ToString())
Next
End Sub
End Module