-
-
Save sanchitgangwar/2158089 to your computer and use it in GitHub Desktop.
# SNAKES GAME | |
# Use ARROW KEYS to play, SPACE BAR for pausing/resuming and Esc Key for exiting | |
import curses | |
from curses import KEY_RIGHT, KEY_LEFT, KEY_UP, KEY_DOWN | |
from random import randint | |
curses.initscr() | |
win = curses.newwin(20, 60, 0, 0) | |
win.keypad(1) | |
curses.noecho() | |
curses.curs_set(0) | |
win.border(0) | |
win.nodelay(1) | |
key = KEY_RIGHT # Initializing values | |
score = 0 | |
snake = [[4,10], [4,9], [4,8]] # Initial snake co-ordinates | |
food = [10,20] # First food co-ordinates | |
win.addch(food[0], food[1], '*') # Prints the food | |
while key != 27: # While Esc key is not pressed | |
win.border(0) | |
win.addstr(0, 2, 'Score : ' + str(score) + ' ') # Printing 'Score' and | |
win.addstr(0, 27, ' SNAKE ') # 'SNAKE' strings | |
win.timeout(150 - (len(snake)/5 + len(snake)/10)%120) # Increases the speed of Snake as its length increases | |
prevKey = key # Previous key pressed | |
event = win.getch() | |
key = key if event == -1 else event | |
if key == ord(' '): # If SPACE BAR is pressed, wait for another | |
key = -1 # one (Pause/Resume) | |
while key != ord(' '): | |
key = win.getch() | |
key = prevKey | |
continue | |
if key not in [KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, 27]: # If an invalid key is pressed | |
key = prevKey | |
# Calculates the new coordinates of the head of the snake. NOTE: len(snake) increases. | |
# This is taken care of later at [1]. | |
snake.insert(0, [snake[0][0] + (key == KEY_DOWN and 1) + (key == KEY_UP and -1), snake[0][1] + (key == KEY_LEFT and -1) + (key == KEY_RIGHT and 1)]) | |
# If snake crosses the boundaries, make it enter from the other side | |
if snake[0][0] == 0: snake[0][0] = 18 | |
if snake[0][1] == 0: snake[0][1] = 58 | |
if snake[0][0] == 19: snake[0][0] = 1 | |
if snake[0][1] == 59: snake[0][1] = 1 | |
# Exit if snake crosses the boundaries (Uncomment to enable) | |
#if snake[0][0] == 0 or snake[0][0] == 19 or snake[0][1] == 0 or snake[0][1] == 59: break | |
# If snake runs over itself | |
if snake[0] in snake[1:]: break | |
if snake[0] == food: # When snake eats the food | |
food = [] | |
score += 1 | |
while food == []: | |
food = [randint(1, 18), randint(1, 58)] # Calculating next food's coordinates | |
if food in snake: food = [] | |
win.addch(food[0], food[1], '*') | |
else: | |
last = snake.pop() # [1] If it does not eat the food, length decreases | |
win.addch(last[0], last[1], ' ') | |
win.addch(snake[0][0], snake[0][1], '#') | |
curses.endwin() | |
print("\nScore - " + str(score)) | |
print("http://bitemelater.in\n") |
darkseid66
commented
Jan 23, 2021
via email
How do i extend the surface?
Hi I have this issue it was working, and next time I runned it breaks
PS C:\Users\roble> python -u "c:\Users\roble\Documents\Code\Projects\Python\Python-Projects\Snake\Snake-Culebrita.py"
Traceback (most recent call last):
File "c:\Users\roble\Documents\Code\Projects\Python\Python-Projects\Snake\Snake-Culebrita.py", line 18, in
win = curses.newwin( WINDOW_LARGO, WINDOW_ALTO, 0, 0) # y,x
_curses.error: curses function returned NULL
PS C:\Users\roble>
?
…
Am 10.05.2020 um 12:26 schrieb vanhung3007 @.***>: @vanhung3007 commented on this gist. ========================= Traceback (most recent call last): File "C:\Python36\x.py", line 4, in import curses File "C:\Python36\lib\curses__init__.py", line 13, in from _curses import * ModuleNotFoundError: No module named '_curses' me too u can help me? — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://gist.github.com/2158089#gistcomment-3298187, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOG2M4VCNM7NAVSEVMD5PNDRQZ6ODANCNFSM4HIO7INQ.
pip install curses
i always get errors when i try to import curses
curses.initscr()
File "/usr/lib/python3.6/curses/init.py", line 30, in initscr
fd=_sys.stdout.fileno())
_curses.error: setupterm: could not find terminal