Debug this:

Code:
Module Module1

    Private tmr As New Timers.Timer
    Private s As New Snake
    Private grid As New Rectangle
    Private playing As Boolean = False

    Sub Main()
        AddHandler tmr.Elapsed, AddressOf tmr_tick

        grid.location = New Point(0, 0)
        grid.size = New Size(15, 15)

        Call NewGame()

        Do Until True = False
            If playing = False AndAlso Console.ReadKey(True).Key = ConsoleKey.Spacebar Then
                playing = True
                tmr.Start()
            ElseIf playing = True AndAlso Console.ReadKey(True).Key = ConsoleKey.LeftArrow Then
                s.direction = Direction.Left
            ElseIf playing = True AndAlso Console.ReadKey(True).Key = ConsoleKey.RightArrow Then
                s.direction = Direction.Right
            ElseIf playing = True AndAlso Console.ReadKey(True).Key = ConsoleKey.UpArrow Then
                s.direction = Direction.Up
            ElseIf playing = True AndAlso Console.ReadKey(True).Key = ConsoleKey.DownArrow Then
                s.direction = Direction.Down
            End If
        Loop
    End Sub

    Private Sub tmr_tick(sender As Object, e As Timers.ElapsedEventArgs)
        s.prior_location = s.location

        Select Case s.direction
            Case Direction.Left
                s.location = New Point(s.prior_location.x - 1, s.prior_location.y)
            Case Direction.Right
                s.location = New Point(s.prior_location.x + 1, s.prior_location.y)
            Case Direction.Up
                s.location = New Point(s.prior_location.x, s.prior_location.y - 1)
            Case Direction.Down
                s.location = New Point(s.prior_location.x, s.prior_location.y + 1)
        End Select

        Console.CursorLeft = s.prior_location.x
        Console.CursorTop = s.prior_location.y
        Console.Write(" ")

        'Collision!
        If grid.IntersectsWith(s.location) Then
            playing = False
            tmr.Stop()
            Call NewGame()
        End If

        Call DrawSnake(s)

    End Sub

    Private Sub NewGame()
        playing = False

        Call DrawRect(grid.location, grid.size)

        With s
            .direction = Direction.Right
            .location = New Point(1, 1)
            .prior_location.x = Nothing
            .prior_location.y = Nothing
            .speed = 250
        End With

        tmr.Interval = s.speed

    End Sub

    Private Sub DrawRect(ByVal pt As Point, ByVal siz As Size)

        Dim x, y, wid, hei As Integer
        x = pt.x : y = pt.y
        wid = siz.width : hei = siz.height

        Console.ForegroundColor = ConsoleColor.Green

        Console.CursorLeft = x
        Console.CursorTop = y

        'Draw the top line
        For start As Integer = 0 To wid
            Console.Write("-")
        Next

        Console.CursorLeft = x
        Console.CursorTop = y + 1

        'Draw the left line
        For start As Integer = 0 To hei - 2
            Console.Write("|")
            Console.CursorLeft -= 1
            Console.CursorTop += 1
        Next

        Console.CursorLeft = x
        Console.CursorTop = y + hei

        'Draw the bottom line
        For start As Integer = 0 To wid
            Console.Write("-")
        Next

        Console.CursorLeft = x + wid
        Console.CursorTop = y + 1

        'Draw the right line
        For start As Integer = 0 To hei - 2
            Console.Write("|")
            Console.CursorLeft -= 1
            Console.CursorTop += 1
        Next

    End Sub

    Private Sub DrawSnake(ByVal snake As Snake)
        If snake.prior_location.x <> Nothing AndAlso snake.prior_location.y <> Nothing Then
            Console.CursorLeft = snake.prior_location.x
            Console.CursorTop = snake.prior_location.y
            Console.Write("")
        End If

        Console.CursorLeft = snake.location.x
        Console.CursorTop = snake.location.y
        Console.Write("@")

    End Sub

    Structure Point
        Public x As Integer
        Public y As Integer
        Sub New(p1 As Integer, p2 As Integer)
            Me.x = p1
            Me.y = p2
        End Sub
    End Structure

    Structure Size
        Public width As Integer
        Public height As Integer
        Sub New(s1 As Integer, s2 As Integer)
            Me.width = s1
            Me.height = s2
        End Sub
    End Structure

    Structure Rectangle
        Public location As Point
        Public size As Size

        Public Function IntersectsWith(ByVal pt As Point) As Boolean
            If pt.x <= location.x OrElse pt.x >= location.x + size.width Then
                Return True
            ElseIf pt.y < location.y OrElse pt.y >= location.y + size.height Then
                Return True
            Else
                Return False
            End If
        End Function
    End Structure

    Enum Direction
        Up
        Down
        Left
        Right
    End Enum

    Structure Snake
        Public location As Point
        Public prior_location As Point
        Public direction As Direction
        Public speed As Integer
    End Structure

End Module
Its a fun little console app game.