Hurray! Great to see a new developer.
This should do the trick, just pop it in a card script:
' --- Edit these vars to set the attributes of the grid.
gridMap$ = "0000"
gridSize = 7
tileSize = 44
northCard = [card number here]
southCard = [card number here]
westCard = [card number here]
eastCard = [card number here]
' --- Edit these vars to set the attributes of the player.
playerSprite$ = "player1.gif"
playerGridX = 4
playerGridY = 4
playerMoveSpeed = 16
' --- Determine the player's sprite coordinates based on its grid coordinates.
playerSpriteY = playerGridY * tileSize
playerSpriteY = playerSpriteY - tileSize
playerSpriteY = playerSpriteY + 5
playerSpriteX = playerGridX * tileSize
playerSpriteX = playerSpriteX - tileSize
playerSpriteX = playerSpriteX + 5
SPRITE 1 playerSpriteX playerSpriteY $playerSprite$$
'----------------------------------------------------------------------- -------------------------
ON KEYDOWN
 playerNewGridX = playerGridX
 playerNewGridY = playerGridY
 ' --- Check which direction the player wants to move in.
 IF keydown$ = "UPARROW" THEN playerNewGridY =playerGridY - 1
 IF keydown$ = "DOWNARROW" THEN playerNewGridY = playerGridY + 1
 IF keydown$ = "LEFTARROW" THEN playerNewGridX = playerGridX - 1
 IF keydown$ = "RIGHTARROW" THEN playerNewGridX = playerGridX + 1
 ' --- Check what kind of tile the player is trying to move onto. (check if it's traversable or not)
 playerNewGridXY = 0
 playerNewGridXY = gridSize * playerNewGridY
 playerNewGridXY = playerNewGridXY - gridSize
 playerNewGridXY = playerNewGridXY + playerNewGridX
 playerTile$ = MID$ gridMap$ playerNewGridXY 1
 IF playerTile$ = "0" THEN playerTile$ = "Empty"
 IF playerTile$ = "1" THEN playerTile$ = "Wall"
 '--- Check if the player is trying to leave the grid.
 IF playerNewGridX < 1 THEN
  playerGridX = gridSize
  GOTOCARD westCard
 END IF
 IF playerNewGridX > gridSize THEN
  playerGridX = 1
  GOTOCARD eastCard
 END IF
 IF playerNewGridY < 1 THEN
  playerGridY = gridSize
  GOTOCARD northCard
 END IF
 IF playerNewGridY > gridSize THEN
  playerGridY = 1
  GOTOCARD southCard
 END IF
 ' --- If the tile has no obstacles on it, move the player onto the tile.
 IF playerTile$ = "Empty" THEN
  playerGridX = playerNewGridX
  playerGridY = playerNewGridY
 END IF
 ' --- Determine the player's sprite coordinates based on its grid coordinates.
 playerSpriteY = playerGridY * tileSize
 playerSpriteY = playerSpriteY - tileSize
 playerSpriteY = playerSpriteY + 5
 playerSpriteX = playerGridX * tileSize
 playerSpriteX = playerSpriteX - tileSize
 playerSpriteX = playerSpriteX + 5
 SPRITEPATH 1 playerSpriteX playerSpriteY playerMoveSpeed
END KEYDOWN
Make sure to set the northCard, southCard, westCard and eastCard values at the beginning of the code. If the player walks off the grid to the left, the game will load whatever card number you assigned westCard, and so on.
If there's anything you don't understand, or if you'd like to add something to the engine, just ask. I love helping with grid navs!