i must get this code to work am having an error "Q.Enqueue(rec)"
can't figure it out, it's a 2 player snake game
it's urgeennntttttttt
and i suck with VB.net really suck
Imports system.data.sqlclient
Public Class Snake
Dim rec As Rectangle
Dim rec2 As Rectangle
Dim player As Integer
Dim Direction As String
Dim Q As New Queue
Dim q1 As New Queue
Dim keypressed, keypressed2 As String
Dim prev, prev2 As String
Dim Score As Integer
Dim g As Graphics
Public counter As Integer = 1, value As Integer = 0, points As Integer = 0 'For Snake
Public counter2 As Integer = 1, value2 As Integer = 0, points2 As Integer = 0 'For Snake 2
Public food_erase As Pen = New Pen(Color.Black, 2)
Public foodx, foody As Integer
Public Sub Show_Food()
Dim RandomNumber As New Random
foodx = RandomNumber.Next(20, Me.Width - 60)
foody = RandomNumber.Next(20, Me.Height - 60)
'Me.CreateGraphics.DrawRectangle(food, foodx, foody, 2, 2)
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerSnake.Tick
Dim rd As Rectangle
Dim rd1 As Rectangle
'If player = 1 Then
If Direction = "R" Then
rec.X += 10
ElseIf Direction = "L" Then
rec.X -= 10
ElseIf Direction = "U" Then
rec.Y -= 10
ElseIf Direction = "D" Then
rec.Y += 10
End If
Q.Enqueue(rec)
g.DrawRectangle(Pens.Red, rec)
If Q.Count > Score Then
rd = Q.Dequeue()
g.DrawRectangle(Pens.Black, rd)
End If
g.Flush()
'ElseIf player = 2 Then
' If Direction = "R" Then
' rec.X += 10
' rec2.X += 10
' ElseIf Direction = "L" Then
' rec.X -= 10
' rec2.X -= 10
' ElseIf Direction = "U" Then
' rec.Y -= 10
' rec2.Y -= 10
' ElseIf Direction = "D" Then
' rec.Y += 10
' rec2.Y += 10
' End If
' Q.Enqueue(rec)
' q1.Enqueue(rec2)
' g.DrawRectangle(Pens.Red, rec)
' g.FillRectangle(Brushes.Red, rec)
' g1.DrawRectangle(Pens.Yellow, rec2)
' g1.FillRectangle(Brushes.Yellow, rec2)
' If Q.Count > Score Then
' rd = Q.Dequeue()
' rd1 = q1.Dequeue()
' g.DrawRectangle(Pens.Black, rd)
' g.DrawRectangle(Pens.Black, rd1)
' End If
' g.Flush()
' g1.Flush()
'End If
If player = 2 Then
Me.Text = Convert.ToString("Player 1" & ":" & points.ToString & vbCrLf & " - Player2" & ":" & points2.ToString)
Else
Me.Text = Convert.ToString(" Player1" & ":" & points.ToString)
End If
End Sub
Private Sub Snake_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If player = 1 Then
If (e.KeyCode = Keys.Down) And ((prev = "up") Or (prev = "right") Or (prev = "left") Or (prev = "")) Then keypressed = "down" 'Snake
If (e.KeyCode = Keys.Up) And ((prev = "down") Or (prev = "") Or (prev = "right") Or (prev = "left")) Then keypressed = "up" 'Snake
If (e.KeyCode = Keys.Right) And ((prev = "left") Or (prev = "") Or (prev = "up") Or (prev = "down")) Then keypressed = "right" 'Snake
If (e.KeyCode = Keys.Left) And ((prev = "right") Or (prev = "") Or (prev = "up") Or (prev = "down")) Then keypressed = "left" 'Snake
ElseIf player = 2 Then
If (e.KeyCode = Keys.S) And ((prev2 = "up") Or (prev2 = "right") Or (prev2 = "left") Or (prev2 = "")) Then keypressed2 = "down" 'Snake 2
If (e.KeyCode = Keys.W) And ((prev2 = "down") Or (prev2 = "") Or (prev2 = "right") Or (prev2 = "left")) Then keypressed2 = "up" 'Snake 2
If (e.KeyCode = Keys.D) And ((prev2 = "left") Or (prev2 = "") Or (prev2 = "up") Or (prev2 = "down")) Then keypressed2 = "right" 'Snake 2
If (e.KeyCode = Keys.A) And ((prev2 = "right") Or (prev2 = "") Or (prev2 = "up") Or (prev2 = "down")) Then keypressed2 = "left" 'Snake 2
End If
If e.KeyCode = Keys.Escape Then
Me.Close()
End If
'If e.KeyCode = Keys.F5 Then
' TimerSnake.Start()
'ElseIf e.KeyCode = Keys.Up Then
' Direction = "U"
'ElseIf e.KeyCode = Keys.Down Then
' Direction = "D"
'ElseIf e.KeyCode = Keys.Left Then
' Direction = "L"
'ElseIf e.KeyCode = Keys.Right Then
' Direction = "R"
'End If
'If e.KeyCode = Keys.W Then
' Direction = "U"
'ElseIf e.KeyCode = Keys.S Then
' Direction = "D"
'ElseIf e.KeyCode = Keys.A Then
' Direction = "L"
'ElseIf e.KeyCode = Keys.D Then
' Direction = "R"
'End If
End Sub
Private Sub Snake_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
player = InputBox("combien de joueur vous voulez jouer?", "nbre de joueur")
g = Panel1.CreateGraphics
'g1 = Panel1.CreateGraphics
rec = New Rectangle(200, 200, 10, 10)
'rec2 = New Rectangle(100, 100, 10, 10)
Q = New Queue
'q1 = New Queue
Direction = "R"
Score = 5
End Sub
Private Sub TimerFood_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerFood.Tick
End Sub
Public Sub Erase_Food()
Me.CreateGraphics.DrawRectangle(food_erase, foodx, foody, 2, 2)
End Sub
End Class