Created
September 19, 2023 10:36
-
-
Save naazeri/674ee76daa8108ff70d6caeafb41df28 to your computer and use it in GitHub Desktop.
snake_game_in_30_line_python_pygame
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pygame as pg | |
pg.init() | |
y, step, head = segments = [15, 16, 17] | |
n, apple = step, 99 | |
screen = pg.display.set_mode([225] * 2, pg.SCALED) | |
score = 0 | |
while segments.count(head) % 2 * head % n * (head & 240): | |
for e in pg.event.get(768): | |
if e.type == pg.KEYDOWN: | |
if (e.key == pg.K_UP or e.key == pg.K_w) and step != n: | |
step = -n | |
elif (e.key == pg.K_DOWN or e.key == pg.K_s) and step != -n: | |
step = n | |
elif (e.key == pg.K_LEFT or e.key == pg.K_a) and step != 1: | |
step = -1 | |
elif (e.key == pg.K_RIGHT or e.key == pg.K_d) and step != -1: | |
step = 1 | |
segments = segments[apple != head :] + [head + step] | |
screen.fill("black") | |
if apple == head: | |
apple = segments[0] | |
score += 1 | |
for i, v in enumerate([apple] + segments): | |
screen.fill("green" if i else "red", ((v - 1) % n * y, (v - n) // n * y, y, y)) | |
pg.display.flip() | |
head += step | |
pg.time.wait(100) | |
print(f"{score=}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment