Please could you look at the code and see what wrong with it.
It saying syntax error with elif code.
https://drive.google.com/file/d/1in-315 ... sp=sharing
Probably the line *after* elif, starting with 'if'pcmanbob wrote: A quick look suggests your indentation is off on the elif line
The elif is not indented to match the if statement above it either.DirkS wrote: ↑Mon Apr 06, 2020 6:55 pmProbably the line *after* elif, starting with 'if'pcmanbob wrote: A quick look suggests your indentation is off on the elif line
But there are more problems. The indentation after the 'sys.exit()' cannot be correct. It puts all the code below it inside the 'gameover' procedure, meaning it will never be reached...
Hi, Below is the full code so you can see it more clearly and test itDirkS wrote: ↑Mon Apr 06, 2020 6:55 pmProbably the line *after* elif, starting with 'if'pcmanbob wrote: A quick look suggests your indentation is off on the elif line
But there are more problems. The indentation after the 'sys.exit()' cannot be correct. It puts all the code below it inside the 'gameover' procedure, meaning it will never be reached...
Code: Select all
jliddlejths wrote: ↑Tue Apr 07, 2020 5:39 pmHi, Below is the full code so you can see it more clearly and test itDirkS wrote: ↑Mon Apr 06, 2020 6:55 pmProbably the line *after* elif, starting with 'if'pcmanbob wrote: A quick look suggests your indentation is off on the elif line
But there are more problems. The indentation after the 'sys.exit()' cannot be correct. It puts all the code below it inside the 'gameover' procedure, meaning it will never be reached...
code][/code]Code: Select all
#!/usr/bin/env python # Raspbery Snake # Written by Gareth Halfacree for the Raspberry Pi User Guide import pygame, sys, time, random from pygame.locals import * pygame.init () fpsclock = pygame.time.Clock () playSurface = pygame.display.set_mode ((640, 480)) pygame.display.set_caption ('Raspberry Snake') redColour = pygame.Color (255, 0, 0) blackColour = pygame.Color (0, 0, 0) whiteColour = pygame.Color (255, 255, 255) greyColour = pygame.Color (150, 150, 150) snakePosition = [100,100] snakeSegments = [[100,100],[80,100],[60,100]] raspberryPosition = [300,300] raspberrySpawned = 1 direction = 'right' changeDirection = direction def gameOver (): gameOverFont = pygame.font.Font('freesansbold.ttf', 72) gameOverSurf = gameOverFont.render ('Game Over', True, greyColour) gameOverRect = gameOverSurf.get_rect() gameOverRect.midtop = (320, 10) playSurface.blit(gameOverSurf, gameOverRect) pygame.display.flip () time.sleep (5) pygame.quit() sys.exit() while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() elif event.type == KEYDOWN: if event.key == K_RIGHT or event.key == ord ('d'): changeDirection = 'right' if event.key == K_LEFT or event.key == ord ('a'): changeDirection = 'left' if event.key == K_UP or event.key == ord ('w'): changeDirection = 'up' if event.key == K_DOWN or event.key == ord ('s'): changeDirection = 'down' if event.key == K_ESCAPE: pygame.event.post (pygame.event.Event (QUIT)) if changeDirection == 'right' and not direction == 'left': direction = changeDirection if changeDirection == 'left' and not direction == 'right': direction = changeDirection if changeDirection == 'up' and not direction == 'down': direction = changeDirection if changeDirection == 'down' and not direction == 'up': direction = changeDirection if direction == 'right': snakePosition [0] += 20 if direction == 'left': snakePosition [0] -= 20 if direction == 'up': snakePosition [1] -= 20 if direction == 'down': snakePosition [1] += 20 snakeSegments.insert (0,list(snakePosition)) if snakePosition [0] == raspberryPosition [0] and snakePosition [1] == raspberryPosition [1]: raspberrySpawned = 0 else: snakeSegments.pop() if aspberrySpawned == 0: x = random.randrange (1,32) y = random.randrange (1,24) raspberryPosition = [int (x*20), int (y*20) ] raspberrySpawned = 1 playSurface.fill (blackColour) for position in snakeSegments: pygame.draw.rect (playSurface,whiteColour, Rect (position [0], position [1], 20,20)) pygame.draw.rect (playSurface,redColour,Rect (raspberryPosition [0], raspberryPosition[1], 20,20)) pygame.display.flip() if snakePosition [0] > 620 or snakePosition[0] < 0:[0] gameOver() if snakePosition[1] > 460 or snakePosition[1] < 0: for snakeBody in snakeSegments[1:]: if snakePosition[0] == snakeBody and snakePosition[1] == snakeBody[1]: gameOver() fpsClock.tick(30)ThanksCode: Select all
Jamie
I now fix the code but now I get a different message:B.Goode wrote: I would expect the Raspberry Pi User Guide and it's co-author Gareth Halfacree to be reliable. I therefore suspect some error has occurred in acquiring the script.