152 lines
No EOL
5.9 KiB
VB.net
152 lines
No EOL
5.9 KiB
VB.net
Imports MySql.Data.MySqlClient
|
|
|
|
Public Class frmConnect4NetworkYourGames
|
|
|
|
'Declares the variable used to determine if a game has a second player or not
|
|
Dim NoOpp As Boolean = True
|
|
|
|
'Subroutine runs on form load
|
|
Private Sub frmConnect4NetworkYourGames_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
'Runs the OpenDB subroutine
|
|
OpenDB()
|
|
|
|
'Runs the UpdateList subroutine
|
|
UpdateList()
|
|
|
|
'Brings the host game form to the front
|
|
frmConnect4NetworkHostGame.BringToFront()
|
|
End Sub
|
|
|
|
'Subroutine runs when called on form load or btnRefresh_Click subroutines
|
|
Sub UpdateList()
|
|
'Clears the lobby listbox of data
|
|
lstYourGames.Items.Clear()
|
|
|
|
'Declares the variable used for the result of the confirmation messagebox
|
|
Dim Result As MsgBoxResult
|
|
'Declares the variable used to determine if the logged-in player is currently playing a given game
|
|
Dim CurrPlaying As String = ""
|
|
|
|
Dim sql As String
|
|
Dim dbcomm As MySqlCommand
|
|
Dim dbread As MySqlDataReader
|
|
|
|
'Builds SQL query to execute
|
|
sql = "SELECT * FROM tblconnect4 WHERE HostUsername = '" & LoggedInStudent.Username & "'"
|
|
|
|
dbcomm = New MySqlCommand(sql, DBConn)
|
|
dbread = dbcomm.ExecuteReader()
|
|
'Fills the various properties of the LoggedInStudent object with their respective values from the database
|
|
While dbread.Read
|
|
'If there is an opponent in the game...
|
|
If dbread("OppUsername").Value <> "" Then
|
|
'Sets CurrPlaying to positive
|
|
CurrPlaying = " - Opponent: " & dbread("OppUsername").Value
|
|
Else
|
|
'Otherwise CurrPlaying is negative
|
|
CurrPlaying = " - No opponent"
|
|
End If
|
|
'Add the game details to the lobby listbox
|
|
lstYourGames.Items.Add(dbread("GameID").Value & " - " & dbread("GameName").Value & " - " & dbread("HostUsername").Value & CurrPlaying)
|
|
dbread.Close()
|
|
Exit Sub
|
|
End While
|
|
dbread.Close()
|
|
End Sub
|
|
|
|
'Subroutine runs when the host game button is clicked
|
|
Private Sub btnHostGame_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHostGame.Click
|
|
'Shows the Connect Four network host game form
|
|
frmConnect4NetworkHostGame.Show()
|
|
End Sub
|
|
|
|
'Subroutine runs when the selected item of the lobby listbox is changes
|
|
Private Sub lstYourGames_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstYourGames.SelectedIndexChanged
|
|
'Determine the GameID of the selected game
|
|
Dim EndofGamID As Integer = InStr(1, lstYourGames.SelectedItem, " ", CompareMethod.Text)
|
|
Dim GamID As String = Mid(lstYourGames.SelectedItem, 1, EndofGamID)
|
|
|
|
'Declares the variable used to determine the username of the host
|
|
Dim Username As String
|
|
|
|
Dim sql As String
|
|
Dim dbcomm As MySqlCommand
|
|
Dim dbread As MySqlDataReader
|
|
|
|
Try
|
|
'Builds SQL query to execute
|
|
sql = "SELECT * FROM tblConnect4 WHERE GameID='" & GamID & "'"
|
|
|
|
'Sets the selected GameID
|
|
GameID = GamID
|
|
|
|
dbcomm = New MySqlCommand(sql, DBConn)
|
|
dbread = dbcomm.ExecuteReader()
|
|
'Fills the various properties of the LoggedInStudent object with their respective values from the database
|
|
While dbread.Read
|
|
'If there is an opponent...
|
|
If dbread("OppUsername") <> "" Then
|
|
'Sets the players
|
|
LoggedInStudent.C4Player = "Red"
|
|
OppStudent.C4Player = "Yellow"
|
|
|
|
'Sets the host
|
|
Username = dbread("OppUsername")
|
|
|
|
'Closes the recordset
|
|
dbread.Close()
|
|
|
|
'Builds the SQl query to execute
|
|
sql = "SELECT * FROM tblstudents WHERE username='" & Username & "'"
|
|
dbcomm = New MySqlCommand(sql, DBConn)
|
|
dbread = dbcomm.ExecuteReader()
|
|
|
|
'If there are records found...
|
|
While dbread.Read
|
|
'Populates the properties of the OppStudent object with the host's data
|
|
With OppStudent
|
|
.Fname = dbread("fname")
|
|
.Lname = dbread("lname")
|
|
.StudentID = dbread("StudentID")
|
|
.Username = dbread("username")
|
|
End With
|
|
|
|
'Sets the no opponent flag to false
|
|
NoOpp = False
|
|
dbread.Close()
|
|
Exit Sub
|
|
End While
|
|
'Sets the no opponent flag to true
|
|
NoOpp = True
|
|
dbread.Close()
|
|
Exit Sub
|
|
End If
|
|
'Closes the recordset
|
|
dbread.Close()
|
|
Exit Sub
|
|
End While
|
|
dbread.Close()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
'Subroutine runs when join game button is clicked
|
|
Private Sub btnJoinGame_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnJoinGame.Click
|
|
'If there is an opponent in the game...
|
|
If NoOpp = False Then
|
|
'Shows the Connect Four network game form
|
|
frmConnect4Network.Show()
|
|
'Closes this form
|
|
Me.Close()
|
|
Else
|
|
'Displays an error message
|
|
MsgBox("No opponent in game")
|
|
End If
|
|
End Sub
|
|
|
|
'Subroutine runs when the refresh button is clicked
|
|
Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
|
|
'Runs the UpdateList subroutine
|
|
UpdateList()
|
|
End Sub
|
|
End Class |