Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在我的翻拍版中实现类?_Python_Class_Oop_Pygame - Fatal编程技术网

Python 如何在我的翻拍版中实现类?

Python 如何在我的翻拍版中实现类?,python,class,oop,pygame,Python,Class,Oop,Pygame,因此,我根据sentdex在Newboston youtube频道上发布的pygame教程,制作了一部《啃食蛇》的翻拍版。我做了很多小的美学上的改变,但总的来说,这是同一个游戏。下面是代码: import pygame import time import random pygame.init() # A few extra colors just for testing purposes. WHITE = (pygame.Color("white")) BLACK = ( 0, 0,

因此,我根据sentdex在Newboston youtube频道上发布的pygame教程,制作了一部《啃食蛇》的翻拍版。我做了很多小的美学上的改变,但总的来说,这是同一个游戏。下面是代码:

import pygame
import time
import random

pygame.init()

# A few extra colors just for testing purposes.
WHITE = (pygame.Color("white"))
BLACK = (  0,   0,  0)
RED   = (245,   0,  0)
TURQ  = (pygame.Color("turquoise"))
GREEN = (  0, 155,  0)
GREY  = ( 90,  90, 90)
SCREEN = (800, 600)
gameDisplay = pygame.display.set_mode(SCREEN)
#Set the window title and picture
pygame.display.set_caption('Slither')
ICON = pygame.image.load("apple10pix.png")

pygame.display.set_icon(ICON)
CLOCK = pygame.time.Clock()
FPS = 20
FONT = pygame.font.SysFont("arial", 25)
SNAKE_SIZE = 10 # The width of the snake in pixels, not the length. Start length is defined in the game loop.
APPLE_SIZE = 10
TINY_FONT = pygame.font.SysFont("candara", 15)
SMALL_FONT = pygame.font.SysFont("candara", 25)
MED_FONT = pygame.font.SysFont("candara", 50)
LARGE_FONT = pygame.font.SysFont("krabbypatty", 75)
HUGE_FONT = pygame.font.SysFont("krabbypatty", 150)
IMG = pygame.image.load("snakehead.png")
APPLE_IMG = pygame.image.load("apple10pix.png")
DIRECTION = "up"


def pause():
    paused = True
    message_to_screen("Paused",
                      BLACK,
                      Y_DISPLACE = -100,
                      size = "huge")
    message_to_screen("Press C to continue or Q to quit.",
                      BLACK,
                      Y_DISPLACE = 25)
    pygame.display.update()
    while paused:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key in (pygame.K_c, pygame.K_p):
                    paused = False
                elif event.key in(pygame.K_q, pygame.K_ESCAPE):
                    pygame.quit()
                    quit()
        CLOCK.tick(5)

def score(score):
    text = SMALL_FONT.render("Score: " + str(score), True, BLACK)
    gameDisplay.blit(text, [0, 0])
    pygame.display.update

def game_intro():
    intro = True
    while intro:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_c:
                    intro = False
                if event.key in (pygame.K_q, pygame.K_ESCAPE):
                    pygame.quit()
                    quit()
        gameDisplay.fill(WHITE)
        message_to_screen("Welcome to",
                          GREEN,
                          Y_DISPLACE = -170,
                          size = "large")
        message_to_screen("Block Worm",
                          GREEN,
                          Y_DISPLACE = -50,
                          size = "huge")
        message_to_screen("The objective of the game is to eat apples.",
                          BLACK,
                          Y_DISPLACE = 36,
                          size = "tiny")
        message_to_screen("The more apples you eat the longer you get.",
                          BLACK,
                          Y_DISPLACE = 68,
                          size = "tiny")
        message_to_screen("If you run into yourself or the edges, you die.",
                          BLACK,
                          Y_DISPLACE = 100,
                          size = "tiny")
        message_to_screen("Press C to play or Q to quit.",
                          GREY,
                          Y_DISPLACE = 210,)
        pygame.display.update()
        CLOCK.tick(FPS)

def snake(SNAKE_SIZE, SNAKE_LIST):
    if DIRECTION == "right":
        HEAD = pygame.transform.rotate(IMG, 270)
    elif DIRECTION == "left":
        HEAD = pygame.transform.rotate(IMG, 90)
    elif DIRECTION == "down":
        HEAD = pygame.transform.rotate(IMG, 180)
    else:
        DIRECTION == "up"
        HEAD = IMG
    gameDisplay.blit(HEAD, (SNAKE_LIST[-1][0], SNAKE_LIST[-1][1]))
    for XnY in SNAKE_LIST[:-1]:
        pygame.draw.rect(gameDisplay, GREEN, [XnY[0], XnY[1], SNAKE_SIZE, SNAKE_SIZE])
        pygame.display.update

def text_objects(text, color, size):
    if size == "tiny":
        TEXT_SURFACE = TINY_FONT.render(text, True, color)
    elif size == "small":
        TEXT_SURFACE = SMALL_FONT.render(text, True, color)
    elif size == "medium":
        TEXT_SURFACE = MED_FONT.render(text, True, color)
    elif size == "large":
        TEXT_SURFACE = LARGE_FONT.render(text, True, color)
    elif size == "huge":
        TEXT_SURFACE = HUGE_FONT.render(text, True, color)
    return TEXT_SURFACE, TEXT_SURFACE.get_rect()

def message_to_screen(msg, color, Y_DISPLACE = 0, size = "small"):
    TEXT_SURF, TEXT_RECT = text_objects(msg, color, size)
    TEXT_RECT.center = (SCREEN[0] / 2), (SCREEN[1] / 2) + Y_DISPLACE
    gameDisplay.blit(TEXT_SURF, TEXT_RECT)

def randAppleGen():
    randAppleX = random.randrange(0, (SCREEN[0] - APPLE_SIZE), APPLE_SIZE)
    randAppleY = random.randrange(0, (SCREEN[1]- APPLE_SIZE), APPLE_SIZE)
    return randAppleX, randAppleY

def gameLoop():
    global DIRECTION
    gameExit = False
    gameOver = False

    SNAKE_LIST = [] # Where the snake head has been.
    SNAKE_LENGTH = 1 #Length that the snake starts.

    lead_x = (SCREEN[0] / 2)
    lead_y = (SCREEN[1] - (SCREEN[1] / 5))
    move_speed = 10
    move_speed_neg = move_speed * -1
    lead_x_change = 0
    lead_y_change = -move_speed

    randAppleX, randAppleY = randAppleGen()

    while not gameExit:
        if gameOver == True:
            message_to_screen("Game over",
                              RED,
                              Y_DISPLACE = -50,
                              size = "huge")
            message_to_screen("Press C to play again or Q to quit.",
                              BLACK,
                              Y_DISPLACE = 50,
                              size = "small")
            pygame.display.update()
        while gameOver == True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gameExit = True
                    gameOver = False
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        gameOver = False
                        gameExit = True
                    elif event.key == pygame.K_c:
                        gameLoop()

        # Handles arrow key and WASD events.
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameExit = True
            elif event.type == pygame.KEYDOWN:
                if event.key in (pygame.K_LEFT, pygame.K_a):
                    lead_x_change = move_speed_neg
                    lead_y_change = 0
                    DIRECTION = "left"
                elif event.key in (pygame.K_RIGHT, pygame.K_d):
                    lead_x_change = move_speed
                    lead_y_change = 0
                    DIRECTION = "right"
                elif event.key in (pygame.K_UP, pygame.K_w):
                    lead_y_change = move_speed_neg
                    lead_x_change = 0
                    DIRECTION = "up"
                elif event.key in (pygame.K_DOWN, pygame.K_s):
                    lead_y_change = move_speed
                    lead_x_change = 0
                    DIRECTION = "down"
                elif event.key in (pygame.K_p, pygame.K_ESCAPE):
                    pause()

        # If the snake goes beyond the screen borders the game will end.
        if lead_x >= SCREEN[0] or lead_x < 0 or lead_y >= SCREEN[1] or lead_y <0:
            gameOver = True

        lead_x += lead_x_change
        lead_y += lead_y_change

        gameDisplay.fill(WHITE)

        # Draw the apple on screen
        APPLE_RECT = pygame.draw.rect(gameDisplay, RED, [randAppleX, randAppleY, APPLE_SIZE, APPLE_SIZE])
        if APPLE_RECT in SNAKE_LIST:
            APPLE_RECT #If the apple appears anywhere "under" the snake, it will immediately respawn elsewhere.

        # Draw the snake on screen
        SNAKE_HEAD = []
        SNAKE_HEAD.append(lead_x)
        SNAKE_HEAD.append(lead_y)
        SNAKE_LIST.append(SNAKE_HEAD)
        # If you hit yourself, game over.
        if SNAKE_HEAD in SNAKE_LIST[:-1]:
           gameOver = True
        if len(SNAKE_LIST) > SNAKE_LENGTH:
            del SNAKE_LIST[0]
        snake(SNAKE_SIZE, SNAKE_LIST)

        score(SNAKE_LENGTH - 1)

        # If the snake eats the apple
        if APPLE_RECT.collidepoint(lead_x, lead_y) == True:
            randAppleX, randAppleY = randAppleGen()
            SNAKE_LENGTH += 1

        pygame.display.update()
        CLOCK.tick(FPS)
    pygame.quit()
    quit()

game_intro()
gameLoop()
导入pygame
导入时间
随机输入
pygame.init()
#一些额外的颜色仅用于测试目的。
白色=(pygame.Color(“白色”))
黑色=(0,0,0)
红色=(245,0,0)
绿绿色=(pygame.Color(“绿松石”))
绿色=(0,155,0)
灰色=(90,90,90)
屏幕=(800600)
gameDisplay=pygame.display.set_模式(屏幕)
#设置窗口标题和图片
pygame.display.set_标题('Slither'))
ICON=pygame.image.load(“apple10pix.png”)
pygame.display.set_图标(图标)
CLOCK=pygame.time.CLOCK()
FPS=20
FONT=pygame.FONT.SysFont(“arial”,25)
SNAKE_SIZE=10#以像素为单位的蛇的宽度,而不是长度。开始长度在游戏循环中定义。
苹果大小=10
TINY_FONT=pygame.FONT.SysFont(“candara”,15)
SMALL\u FONT=pygame.FONT.SysFont(“坎达拉”,25)
MED_FONT=pygame.FONT.SysFont(“candara”,50)
大字体=pygame.FONT.SysFont(“krabbypatty”,75)
巨幅字体=pygame.FONT.SysFont(“krabbypatty”,150)
IMG=pygame.image.load(“snakehead.png”)
APPLE\u IMG=pygame.image.load(“apple10pix.png”)
方向=“向上”
def pause():
暂停=真
消息到屏幕(“暂停”,
黑色
Y_位移=-100,
size=“巨大”)
信息至屏幕(“按C键继续或按Q键退出”,
黑色
Y_位移=25)
pygame.display.update()
暂停时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出
如果event.type==pygame.KEYDOWN:
如果event.key(pygame.K_c,pygame.K_p):
暂停=错误
elif event.key in(pygame.K_q,pygame.K_ESCAPE):
pygame.quit()
退出
时钟滴答作响(5)
def分数(分数):
text=SMALL\u FONT.render(“分数:+str(分数),真,黑色)
blit(文本,[0,0])
pygame.display.update
def game_intro():
简介=正确
而简介:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame.quit()
退出
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_c:
简介=错误
如果event.key(pygame.K_q,pygame.K_ESCAPE):
pygame.quit()
退出
游戏显示。填充(白色)
信息至屏幕(“欢迎来到”,
绿色
Y_位移=-170,
size=“大”)
消息到屏幕(“阻止蠕虫”,
绿色
Y_位移=-50,
size=“巨大”)
信息到屏幕(“游戏的目标是吃苹果。”,
黑色
Y_位移=36,
size=“微小”)
向屏幕发送信息(“你吃的苹果越多,吃的时间越长。”,
黑色
Y_位移=68,
size=“微小”)
屏幕上的信息(“如果你撞到自己或边缘,你会死。”,
黑色
Y_位移=100,
size=“微小”)
信息至屏幕(“按C键播放或按Q键退出。”,
灰色
Y_位移=210,)
pygame.display.update()
时钟滴答声(FPS)
def snake(蛇的大小、蛇的列表):
如果方向==“右”:
HEAD=pygame.transform.rotate(IMG,270)
elif方向==“左”:
HEAD=pygame.transform.rotate(IMG,90)
elif方向==“向下”:
HEAD=pygame.transform.rotate(IMG,180)
其他:
方向==“向上”
头=内模
blit(头,(蛇列表[-1][0],蛇列表[-1][1]))
对于SNAKE_列表中的XnY[:-1]:
pygame.draw.rect(游戏显示,绿色,[XnY[0],XnY[1],蛇大小,蛇大小])
pygame.display.update
def text_对象(文本、颜色、大小):
如果大小=“微小”:
TEXT\u SURFACE=TINY\u FONT.render(文本、真、彩色)
elif大小==“小”:
TEXT\u SURFACE=小字体。渲染(文本、真、彩色)
elif大小==“中等”:
TEXT\u SURFACE=MED\u FONT.render(文本、真、彩色)
elif大小==“大”:
TEXT\u SURFACE=大字体。渲染(文本、真、彩色)
elif大小==“巨大”:
TEXT\u SURFACE=大字体。渲染(文本、真、彩色)
返回TEXT\u SURFACE,TEXT\u SURFACE.get\u rect()
def消息到屏幕(消息,颜色,Y_置换=0,大小=“小”):
TEXT\u SURF,TEXT\u RECT=TEXT\u对象(消息、颜色、大小)
TEXT_RECT.center=(屏幕[0]/2),(屏幕[1]/2)+Y_置换
gameDisplay.blit(TEXT\u SURF,TEXT\u RECT)
def randAppleGen():
randAppleX=random.randrange(0,(屏幕[0]-苹果大小),苹果大小)
randAppleY=random.randrange(0,(屏幕[1]-苹果大小),苹果大小)
返回randAppleX,randAppleY
def gameLoop():
全球方向
gameExit=False
gameOver=False
蛇头列表=[]蛇头所在的位置。
蛇的长度=蛇开始的长度。
铅x=(屏幕[0]/2)
铅y=(屏幕[1]-(屏幕[1]/5))
移动速度=10
移动速度负=移动速度*-1
lead_x_change=0
lead_y_change=-移动速度
randAppleX,randAppleY=randAppleGen()
不退出游戏时:
如果gameOver==True:
向屏幕发送消息(“游戏结束”,
红色
Y_位移=-50,
size=“巨大”)
信息至屏幕(“按C键重新播放或按Q键退出。”,
黑色
import pygame
import time
import random

pygame.init()

WHITE = (pygame.Color("white"))
BLACK = (  0,   0,  0)
RED   = (245,   0,  0)
TURQ  = (pygame.Color("turquoise"))
GREEN = (  0, 155,  0)
GREY  = ( 90,  90, 90)
SCREEN = (800, 600)
gameDisplay = pygame.display.set_mode(SCREEN)
#Set the window title and picture
pygame.display.set_caption('Block Worm')
ICON = pygame.image.load("apple10pix.png")

pygame.display.set_icon(ICON)
CLOCK = pygame.time.Clock()
FPS = 20
FONT = pygame.font.SysFont("arial", 25)
APPLE_SIZE = 10
TINY_FONT = pygame.font.SysFont("candara", 15)
SMALL_FONT = pygame.font.SysFont("candara", 25)
MED_FONT = pygame.font.SysFont("candara", 50)
LARGE_FONT = pygame.font.SysFont("krabbypatty", 75)
HUGE_FONT = pygame.font.SysFont("krabbypatty", 150)
IMG = pygame.image.load("snakehead.png")
APPLE_IMG = pygame.image.load("apple10pix.png")


def pause():
    paused = True
    message_to_screen("Paused",
                      BLACK,
                      Y_DISPLACE = -100,
                      size = "huge")
    message_to_screen("Press C to continue or Q to quit.",
                      BLACK,
                      Y_DISPLACE = 25)
    pygame.display.update()
    while paused:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key in (pygame.K_c, pygame.K_p):
                    paused = False
                elif event.key in(pygame.K_q, pygame.K_ESCAPE):
                    pygame.quit()
                    quit()
        CLOCK.tick(5)

def score(score):
    text = SMALL_FONT.render("Score: " + str(score), True, BLACK)
    gameDisplay.blit(text, [5, 5])
    pygame.display.update

def game_intro():
    intro = True
    while intro:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_c:
                    intro = False
                if event.key in (pygame.K_q, pygame.K_ESCAPE):
                    pygame.quit()
                    quit()
        gameDisplay.fill(WHITE)
        message_to_screen("Welcome to",
                          GREEN,
                          Y_DISPLACE = -170,
                          size = "large")
        message_to_screen("Block Worm",
                          GREEN,
                          Y_DISPLACE = -50,
                          size = "huge")
        message_to_screen("The objective of the game is to eat apples.",
                          BLACK,
                          Y_DISPLACE = 36,
                          size = "tiny")
        message_to_screen("The more apples you eat the longer you get.",
                          BLACK,
                          Y_DISPLACE = 68,
                          size = "tiny")
        message_to_screen("If you run into yourself or the edges, you die.",
                          BLACK,
                          Y_DISPLACE = 100,
                          size = "tiny")
        message_to_screen("Press C to play or Q to quit.",
                          GREY,
                          Y_DISPLACE = 210,)
        pygame.display.update()
        CLOCK.tick(FPS)

def text_objects(text, color, size):
    if size == "tiny":
        TEXT_SURFACE = TINY_FONT.render(text, True, color)
    elif size == "small":
        TEXT_SURFACE = SMALL_FONT.render(text, True, color)
    elif size == "medium":
        TEXT_SURFACE = MED_FONT.render(text, True, color)
    elif size == "large":
        TEXT_SURFACE = LARGE_FONT.render(text, True, color)
    elif size == "huge":
        TEXT_SURFACE = HUGE_FONT.render(text, True, color)
    return TEXT_SURFACE, TEXT_SURFACE.get_rect()

def message_to_screen(msg, color, Y_DISPLACE = 0, size = "small"):
    TEXT_SURF, TEXT_RECT = text_objects(msg, color, size)
    TEXT_RECT.center = (SCREEN[0] / 2), (SCREEN[1] / 2) + Y_DISPLACE
    gameDisplay.blit(TEXT_SURF, TEXT_RECT)

def randAppleGen():
    randAppleX = random.randrange(0, (SCREEN[0] - APPLE_SIZE), APPLE_SIZE)
    randAppleY = random.randrange(0, (SCREEN[1]- APPLE_SIZE), APPLE_SIZE)
    return randAppleX, randAppleY

class Snake:
    def __init__(self, image, x, y, direction, speed):
        self.image = image
        self.rect = self.image.get_rect()
        self.width = self.rect.width
        self.rect.x = x
        self.rect.y = y
        self.direction = direction
        self.speed = speed
        self.trail = [] # Where the snake head has been.
        self.length = 1 # Length that the snake starts.
    def snake_direction_change(direction):
        if direction == "right":
            self.image = pygame.transform.rotate(self.image, 270)
        elif direction == "left":
            self.image = pygame.transform.rotate(self.image, 90)
        elif direction == "down":
            self.image = pygame.transform.rotate(self.image, 180)
        else:
            direction == "up"
        pygame.display.update
    def snake_grow(x, y, z):
        gameDisplay.blit(self.image, (self.trail[-1][0], self.trail[-1][1]))
        for XnY in snake.trail[:-1]:
            pygame.draw.rect(gameDisplay, GREEN, [XnY[0], XnY[1], self.width, self.width])
            pygame.display.update


def gameLoop():
    gameExit = False
    gameOver = False

    lead_x_change = 0
    lead_y_change = -snake.speed

    randAppleX, randAppleY = randAppleGen()

    gameDisplay.fill(WHITE)

    snake = Snake(IMG,
                  x = (SCREEN[0] / 2),
                  y =(SCREEN[1] - (SCREEN[1] / 5)),
                  direction = "up",
                  speed = 10,)

    while not gameExit:
        if gameOver == True:
            message_to_screen("Game over",
                              RED,
                              Y_DISPLACE = -50,
                              size = "huge")
            message_to_screen("Press C to play again or Q to quit.",
                              BLACK,
                              Y_DISPLACE = 50,
                              size = "small")
            pygame.display.update()
        while gameOver == True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    gameExit = True
                    gameOver = False
                elif event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        gameOver = False
                        gameExit = True
                    elif event.key == pygame.K_c:
                        gameLoop()

        # Handles arrow key and WASD events.
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                gameExit = True
            elif event.type == pygame.KEYDOWN:
                if event.key in (pygame.K_LEFT, pygame.K_a):
                    lead_x_change = snake.speed * -1
                    lead_y_change = 0
                    snake.snake_direction_change("left")
                elif event.key in (pygame.K_RIGHT, pygame.K_d):
                    lead_x_change = snake.speed
                    lead_y_change = 0
                    snake.snake_direction_change("right")
                elif event.key in (pygame.K_UP, pygame.K_w):
                    lead_y_change = snake.speed * -1
                    lead_x_change = 0
                    snake.snake_direction_change("up")
                elif event.key in (pygame.K_DOWN, pygame.K_s):
                    lead_y_change = snake.speed
                    lead_x_change = 0
                    snake.snake_direction_change("down")
                elif event.key in (pygame.K_p, pygame.K_ESCAPE):
                    pause()

        # If the snake goes beyond the screen borders the game will end.
        if snake.rect.x >= SCREEN[0] or snake.rect.x < 0 or snake.rect.y >= SCREEN[1] or snake.rect.y <0:
            gameOver = True

        snake.rect.x += lead_x_change
        snake.rect.y += lead_y_change

        gameDisplay.fill(WHITE)

        # Draw the apple on screen
        APPLE_RECT = pygame.draw.rect(gameDisplay, RED, [randAppleX, randAppleY, APPLE_SIZE, APPLE_SIZE])
        if APPLE_RECT in snake.trail:
            APPLE_RECT #If the apple appears anywhere "under" the snake, it will immediately respawn elsewhere.

        # Draw the snake on screen
        SNAKE_HEAD = []
        SNAKE_HEAD.append(snake.rect.x)
        SNAKE_HEAD.append(snake.rect.y)
        snake.trail.append(SNAKE_HEAD)
        # If you hit yourself, game over.
        if SNAKE_HEAD in snake.trail[:-1]:
            gameOver = True
        if len(snake.trail) > snake.length:
            del snake.trail[0]
        snake.snake_grow(snake.width, snake.trail)

        score(snake.length - 1)

        # If the snake eats the apple
        if APPLE_RECT.collidepoint(snake.rect.x, snake.rect.y) == True:
            randAppleX, randAppleY = randAppleGen()
            snake.length += 1

        pygame.display.update()
        CLOCK.tick(FPS)
    pygame.quit()
    quit()

game_intro()
gameLoop()
class Snake:
    def __init__(self, SNAKE_SIZE, SNAKE_LIST):
        if DIRECTION == "right":
            HEAD = pygame.transform.rotate(IMG, 270)
        elif DIRECTION == "left":
            HEAD = pygame.transform.rotate(IMG, 90)
        elif DIRECTION == "down":
            HEAD = pygame.transform.rotate(IMG, 180)
        else:
            DIRECTION == "up"  # note: this line does nothing
            HEAD = IMG
        gameDisplay.blit(HEAD, (SNAKE_LIST[-1][0], SNAKE_LIST[-1][1]))
        for XnY in SNAKE_LIST[:-1]:
            pygame.draw.rect(gameDisplay, GREEN, [XnY[0], XnY[1], SNAKE_SIZE, SNAKE_SIZE])
            pygame.display.update  # note: this likely does nothing - I think you want to call it (pygame.display.update())
snake(SNAKE_SIZE, SNAKE_LIST)
snake = Snake(SNAKE_SIZE, SNAKE_LIST)