VB.net help, urgent

Questions about programming languages and debugging
Post Reply
User avatar
l0ngb1t
Fame ! Where are the chicks?!
Fame ! Where are the chicks?!
Posts: 598
Joined: 15 Apr 2009, 16:00
15
Contact:

VB.net help, urgent

Post by l0ngb1t »

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

Code: Select all

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
There is an UNEQUAL amount of good and bad in most things, the trick is to work out the ratio and act accordingly. "The Jester"

Post Reply