I am currently programming the Snake game with Python 3.7.0. I use pygame. I am new to Python and I don't know how to change the color since the background itself is black and the "Window Bar" on top of it is also black. This makes it hard to see where the field is over. I am not sure if it's even possible to do but if someone know a way please let me know. For the picture I changed the background color sou you can see what I mean This is the Game. Usually it has a Black background.
This is the code I am currently using:
import pygame
import time
import random
pygame.init()
white = (255, 255, 255)
yellow = (255, 255, 102)
black = (0, 0, 0)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
dis_width = 600
dis_height = 400
dis = pygame.display.set_mode((dis_width, dis_height))
pygame.display.set_caption('Snake')
clock = pygame.time.Clock()
snake_block = 10
snake_speed = 15
font_style = pygame.font.SysFont("8514oem.fon", 40)
score_font = pygame.font.SysFont("8514oem.fon", 30)
def our_snake(snake_block, snake_list):
for x in snake_list:
pygame.draw.rect(dis, white, [x[0], x[1], snake_block, snake_block])
def message(msg, color):
mesg = font_style.render(msg, True, color)
dis.blit(mesg, [dis_width / 6, dis_height / 3])
def gameLoop():
game_over = False
game_close = False
x1 = dis_width / 2
y1 = dis_height / 2
x1_change = 0
y1_change = 0
snake_List = []
Length_of_snake = 1
foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
while not game_over:
while game_close == True:
dis.fill(red)
message("GAME OVER", white)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
game_over = True
game_close = False
if event.key == pygame.K_e:
game_over = True
game_close = False
if event.key == pygame.K_r:
gameLoop()
if event.key == pygame.K_SPACE:
gameLoop()
if event.key == pygame.K_RETURN:
gameLoop()
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
y1_change = -snake_block
x1_change = 0
elif event.key == pygame.K_DOWN:
y1_change = snake_block
x1_change = 0
if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0:
game_close = True
x1 += x1_change
y1 += y1_change
dis.fill(red)
pygame.draw.rect(dis, green, [foodx, foody, snake_block, snake_block])
snake_Head = []
snake_Head.append(x1)
snake_Head.append(y1)
snake_List.append(snake_Head)
if len(snake_List) > Length_of_snake:
del snake_List[0]
for x in snake_List[:-1]:
if x == snake_Head:
game_close = True
our_snake(snake_block, snake_List)
pygame.display.update()
if x1 == foodx and y1 == foody:
foodx = round(random.randrange(0, dis_width - snake_block) / 10.0) * 10.0
foody = round(random.randrange(0, dis_height - snake_block) / 10.0) * 10.0
Length_of_snake += 1
clock.tick(snake_speed)
pygame.quit()
quit()
gameLoop()
Code from https://www.edureka.co/blog/snake-game-with-pygame/#install I just changed it so it is better for me.
Best Regards -Sandro
I haven't used pygame too much myself but I remember reading something like the following might help
color = input("Choose a background color: ")
if color == "red":
screen.fill(red)
pygame.display.update()
Not 100% sure if this is right