-
-
Save wynand1004/ec105fd2f457b10d971c09586ec44900 to your computer and use it in GitHub Desktop.
# Simple Snake Game in Python 3 for Beginners | |
# By @TokyoEdTech | |
import turtle | |
import time | |
import random | |
delay = 0.1 | |
# Score | |
score = 0 | |
high_score = 0 | |
# Set up the screen | |
wn = turtle.Screen() | |
wn.title("Snake Game by @TokyoEdTech") | |
wn.bgcolor("green") | |
wn.setup(width=600, height=600) | |
wn.tracer(0) # Turns off the screen updates | |
# Snake head | |
head = turtle.Turtle() | |
head.speed(0) | |
head.shape("square") | |
head.color("black") | |
head.penup() | |
head.goto(0,0) | |
head.direction = "stop" | |
# Snake food | |
food = turtle.Turtle() | |
food.speed(0) | |
food.shape("circle") | |
food.color("red") | |
food.penup() | |
food.goto(0,100) | |
segments = [] | |
# Pen | |
pen = turtle.Turtle() | |
pen.speed(0) | |
pen.shape("square") | |
pen.color("white") | |
pen.penup() | |
pen.hideturtle() | |
pen.goto(0, 260) | |
pen.write("Score: 0 High Score: 0", align="center", font=("Courier", 24, "normal")) | |
# Functions | |
def go_up(): | |
if head.direction != "down": | |
head.direction = "up" | |
def go_down(): | |
if head.direction != "up": | |
head.direction = "down" | |
def go_left(): | |
if head.direction != "right": | |
head.direction = "left" | |
def go_right(): | |
if head.direction != "left": | |
head.direction = "right" | |
def move(): | |
if head.direction == "up": | |
y = head.ycor() | |
head.sety(y + 20) | |
if head.direction == "down": | |
y = head.ycor() | |
head.sety(y - 20) | |
if head.direction == "left": | |
x = head.xcor() | |
head.setx(x - 20) | |
if head.direction == "right": | |
x = head.xcor() | |
head.setx(x + 20) | |
# Keyboard bindings | |
wn.listen() | |
wn.onkeypress(go_up, "w") | |
wn.onkeypress(go_down, "s") | |
wn.onkeypress(go_left, "a") | |
wn.onkeypress(go_right, "d") | |
# Main game loop | |
while True: | |
wn.update() | |
# Check for a collision with the border | |
if head.xcor()>290 or head.xcor()<-290 or head.ycor()>290 or head.ycor()<-290: | |
time.sleep(1) | |
head.goto(0,0) | |
head.direction = "stop" | |
# Hide the segments | |
for segment in segments: | |
segment.goto(1000, 1000) | |
# Clear the segments list | |
segments.clear() | |
# Reset the score | |
score = 0 | |
# Reset the delay | |
delay = 0.1 | |
pen.clear() | |
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) | |
# Check for a collision with the food | |
if head.distance(food) < 20: | |
# Move the food to a random spot | |
x = random.randint(-290, 290) | |
y = random.randint(-290, 290) | |
food.goto(x,y) | |
# Add a segment | |
new_segment = turtle.Turtle() | |
new_segment.speed(0) | |
new_segment.shape("square") | |
new_segment.color("grey") | |
new_segment.penup() | |
segments.append(new_segment) | |
# Shorten the delay | |
delay -= 0.001 | |
# Increase the score | |
score += 10 | |
if score > high_score: | |
high_score = score | |
pen.clear() | |
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) | |
# Move the end segments first in reverse order | |
for index in range(len(segments)-1, 0, -1): | |
x = segments[index-1].xcor() | |
y = segments[index-1].ycor() | |
segments[index].goto(x, y) | |
# Move segment 0 to where the head is | |
if len(segments) > 0: | |
x = head.xcor() | |
y = head.ycor() | |
segments[0].goto(x,y) | |
move() | |
# Check for head collision with the body segments | |
for segment in segments: | |
if segment.distance(head) < 20: | |
time.sleep(1) | |
head.goto(0,0) | |
head.direction = "stop" | |
# Hide the segments | |
for segment in segments: | |
segment.goto(1000, 1000) | |
# Clear the segments list | |
segments.clear() | |
# Reset the score | |
score = 0 | |
# Reset the delay | |
delay = 0.1 | |
# Update the score display | |
pen.clear() | |
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal")) | |
time.sleep(delay) | |
wn.mainloop() |
/bin/python3 "/home/devil/Code/Python/Turtle/Snake Game/snake_game.py"
Traceback (most recent call last):
File "/home/devil/Code/Python/Turtle/Snake Game/snake_game.py", line 4, in <module>
import turtle
File "/usr/lib/python3.10/turtle.py", line 107, in <module>
import tkinter as TK
ModuleNotFoundError: No module named 'tkinter'
how would one add a border around the playable area, as i would like to enlarge the game screen but a border around the playable are would make it easier to play
How to play?
module 'turtle' has no attribute 'Screen'
how to fix it when the snake hits the borders the game overs can you provide me some code for that?
foto do perfil
O que você consiga fazer
Eu sou um grande modelo de linguagem, também conhecido como IA conversacional ou chatbot treinado para ser informativo e abrangente. Sou treinado em uma enorme quantidade de dados de texto e sou capaz de comunicar e gerar texto semelhante ao humano em resposta a uma ampla gama de prompts e perguntas. Por exemplo, posso fornecer resumos de tópicos factuais ou criar histórias.
Aqui estão algumas coisas que posso fazer:
Vou tentar o meu melhor para seguir suas instruções e completar seus pedidos de forma atenciosa.
Usarei meu conhecimento para responder às suas perguntas de forma abrangente e informativa, mesmo que sejam abertas, desafiadoras ou estranhas.
Vou gerar diferentes formatos de texto criativo de conteúdo de texto, como poemas, código, scripts, peças musicais, e-mail, cartas, etc. Vou tentar o meu melhor para cumprir todos os seus requisitos.
Ainda estou em desenvolvimento e estou sempre aprendendo coisas novas. Estou animado para ver o que posso fazer no futuro!
foto do perfil
Gerar um código de aplicativo
Claro, eu posso te ajudar com isso. O que você gostaria de fazer? Você pode me dar mais detalhes sobre o seu aplicativo?
foto do perfil
Gerar um código para aplicativo de jogo da cobrinha
Claro, aqui está um código para um aplicativo de jogo da cobrinha em Python:
Python
import pygame
Define as dimensões da tela
WIDTH = 400
HEIGHT = 400
Cria uma janela pygame
screen = pygame.display.set_mode((WIDTH, HEIGHT))
Define as cores
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
Cria a cobra
snake = pygame.Rect(10, 10, 10, 10)
snake_color = RED
Cria a comida
food = pygame.Rect(300, 300, 10, 10)
food_color = WHITE
Inicia o contador de pontos
score = 0
Inicia o loop do jogo
running = True
while running:
# Limpa a tela
screen.fill(BLACK)
# Desenha a cobra
pygame.draw.rect(screen, snake_color, snake)
# Desenha a comida
pygame.draw.rect(screen, food_color, food)
# Checa se a cobra comeu a comida
if snake.colliderect(food):
score += 1
food.x = random.randint(10, WIDTH - 10)
food.y = random.randint(10, HEIGHT - 10)
# Checa se a cobra colidiu com a si mesma ou com as bordas da tela
for i in range(1, len(snake)):
if snake[0].colliderect(snake[i]):
running = False
break
if snake.x < 0 or snake.x > WIDTH or snake.y < 0 or snake.y > HEIGHT:
running = False
break
# Atualiza a posição da cobra
snake[0].x += snake_direction[0]
snake[0].y += snake_direction[1]
# Remove o último bloco da cobra
snake.pop()
# Adiciona um novo bloco na cabeça da cobra
snake.insert(0, pygame.Rect(snake[0].x, snake[0].y, 10, 10))
# Atualiza a tela
pygame.display.update()
# Checa se o usuário pressionou o botão de fechar
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
Finaliza o pygame
pygame.quit()
Simple Snake Game in Python 3 for Beginners
import turtle
import time
import random
delay = 0.1
Score
score = 0
high_score = 0
Set up the screen
wn = turtle.Screen()
wn.title("Snake Game")
wn.bgcolor("black")
wn.setup(width=600, height=600)
wn.tracer(0) # Turns off the screen updates
Snake head
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("red")
head.penup()
head.goto(0,0)
head.direction = "stop"
Snake food
food = turtle.Turtle()
food.speed(0)
food.shape("circle")
food.color("blue")
food.penup()
food.goto(0,100)
segments = []
Pen
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0, 260)
pen.write("Score: 0 High Score: 0", align="center", font=("Courier", 24, "normal"))
Functions
def go_up():
if head.direction != "down":
head.direction = "up"
def go_down():
if head.direction != "up":
head.direction = "down"
def go_left():
if head.direction != "right":
head.direction = "left"
def go_right():
if head.direction != "left":
head.direction = "right"
def move():
if head.direction == "up"and head.direction != "down":
y = head.ycor()
head.sety(y + 20)
if head.direction == "down" and head.direction != "up":
y = head.ycor()
head.sety(y - 20)
if head.direction == "left" and head.direction != "right":
x = head.xcor()
head.setx(x - 20)
if head.direction == "right" and head.direction != "left":
x = head.xcor()
head.setx(x + 20)
Keyboard bindings
wn.listen()
wn.onkeypress(go_up, "w")
wn.onkeypress(go_down, "s")
wn.onkeypress(go_left, "a")
wn.onkeypress(go_right, "d")
Main game loop
while True:
wn.update()
# Check for a collision with the border
if head.xcor()>290:
time.sleep(0.1)
head.goto(-290,y)
# head.direction = "stop"
if head.xcor()<-290:
time.sleep(0.1)
head.goto(290,y)
if head.ycor()>290:
time.sleep(0.1)
head.goto(x,-290)
if head.ycor()<-290:
time.sleep(0.1)
head.goto(x,290)
# Hide the segments
for segment in segments:
segment.goto(1000, 1000)
# Clear the segments list
# segments.clear()
# Reset the score
# score = 0
# Reset the delay
delay = 0.1
pen.clear()
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
# Check for a collision with the food
if head.distance(food) < 20:
# Move the food to a random spot
x = random.randint(-290, 290)
y = random.randint(-290, 290)
food.goto(x,y)
# Add a segment
new_segment = turtle.Turtle()
new_segment.speed(0)
new_segment.shape("square")
new_segment.color("red")
new_segment.penup()
segments.append(new_segment)
# Shorten the delay
delay -= 0.001
# Increase the score
score += 10
if score > high_score:
high_score = score
pen.clear()
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
# Move the end segments first in reverse order
for index in range(len(segments)-1, 0, -1):
x = segments[index-1].xcor()
y = segments[index-1].ycor()
segments[index].goto(x, y)
# Move segment 0 to where the head is
if len(segments) > 0:
x = head.xcor()
y = head.ycor()
segments[0].goto(x,y)
move()
# Check for head collision with the body segments
for segment in segments:
if segment.distance(head) < 20:
time.sleep(1)
head.goto(0,0)
head.direction = "stop"
# Hide the segments
for segment in segments:
segment.goto(1000, 1000)
# Clear the segments list
segments.clear()
# Reset the score
score = 0
# Reset the delay
delay = 0.1
# Update the score display
pen.clear()
pen.write("Score: {} High Score: {}".format(score, high_score), align="center", font=("Courier", 24, "normal"))
time.sleep(delay)
wn.mainloop()
Great i liked it
😄
Great code, here is is tutorial to make fruit ninja game in python
Traceback (most recent call last):
File "C:/Users/INDIA/AppData/Local/Programs/Python/Python311/Lovely game.py", line 90, in
wn.update()
File "C:\Users\INDIA\AppData\Local\Programs\Python\Python311\Lib\turtle.py", line 1304, in update
t._update_data()
File "C:\Users\INDIA\AppData\Local\Programs\Python\Python311\Lib\turtle.py", line 2647, in _update_data
self.screen._incrementudc()
File "C:\Users\INDIA\AppData\Local\Programs\Python\Python311\Lib\turtle.py", line 1293, in _incrementudc
raise Terminator
turtle.Terminator
"What to do with this now??"
Getting below error while running in Ubuntu terminal
Traceback (most recent call last):
File "/home/ubuntu/python/snake.py", line 12, in
wn = turtle.Screen()
File "/usr/lib/python3.10/turtle.py", line 3664, in Screen
Turtle._screen = _Screen()
File "/usr/lib/python3.10/turtle.py", line 3680, in init
_Screen._root = self._root = _Root()
File "/usr/lib/python3.10/turtle.py", line 435, in init
TK.Tk.init(self)
File "/usr/lib/python3.10/tkinter/init.py", line 2299, in init
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
ubuntu@ip-172-31-22-55:~/python$ nano snake.py
Thank you for the code! The snake game was amazing.
I think you're commenting to the wrong person, just saying
Wdym it works
arrow keys are not working in ubuntu how to play the game
its amazing game nice! I'm still learning how to code python thanks for sharing this!
Hey! I was wondering is there a way I can change the background from green to checkers?
You can
/bin/python3 "/home/devil/Code/Python/Turtle/Snake Game/snake_game.py" Traceback (most recent call last): File "/home/devil/Code/Python/Turtle/Snake Game/snake_game.py", line 4, in <module> import turtle File "/usr/lib/python3.10/turtle.py", line 107, in <module> import tkinter as TK ModuleNotFoundError: No module named 'tkinter'
go to terminal and type pip install tkinter, i hope it will work
Everything is thought out very cool. I am just learning to write games on Fiton and not only. In the future, I would like to create something with online games. I always have holandia kasyna as an example, I read about it https://pl.bestcasinos-pl.com/holandia-kasyna/ here. This would already be an achievement for me. But I can’t imagine how much more effort I will need to spend on this.
arrow keys are not working in ubuntu how to play the game
Change each of the letters for up, down, etc in the "onkeypress" statements to correspond to the literal words "Up" "Down" "Left" and "Right" in place of the 'wsad' options, and you'll get keyboard arrow functionality.
Nice game, you can create classes for the snake body, scoreboard, food and maybe wall. Then the code will be more structured :)