File tree Expand file tree Collapse file tree 4 files changed +83
-1
lines changed Expand file tree Collapse file tree 4 files changed +83
-1
lines changed Original file line number Diff line number Diff line change 1
- # Python-project-Scripts.
1
+ # Python-project-Scripts.
2
2
3
3
[ ![ Open in Visual Studio Code] ( https://open.vscode.dev/badges/open-in-vscode.svg )] ( https://open.vscode.dev/larymak/Python-project-Scripts )
4
4
![ Contributors] ( https://img.shields.io/github/contributors/larymak/Python-project-Scripts?style=plastic )
Original file line number Diff line number Diff line change
1
+ # Snake Game
2
+
3
+ ### This is a simple snack game in built using python. the snake start with a small length and keeps growing as it keeps feeding on the food. The game is over when it hits the end of the terminal box or eats itself.
4
+
5
+ ## Requirements
6
+ - curses
7
+ - random
8
+
9
+ ## How to run
10
+ - open you command line and navigate to the path of the file
11
+ - do a pip install curses && pip install random
12
+ - then type python snake.py to run
13
+
14
+ ## The game in action is like this:
15
+
16
+ <img src =" https://github.com/oyerohabib/Python-project-Scripts/blob/oyerohabib-2/SNAKE_GAME/snake-game.png " >
Original file line number Diff line number Diff line change
1
+ import random
2
+ import curses
3
+
4
+ def play_game ():
5
+ s = curses .initscr ()
6
+ curses .curs_set (0 )
7
+ sh , sw = s .getmaxyx ()
8
+ w = curses .newwin (sh , sw , 0 , 0 )
9
+ w .keypad (1 )
10
+ w .timeout (100 )
11
+
12
+ snk_x = sw / 4
13
+ snk_y = sh / 2
14
+ snake = [
15
+ [snk_y , snk_x ],
16
+ [snk_y , snk_x - 1 ],
17
+ [snk_y , snk_x - 2 ]
18
+ ]
19
+
20
+ food = [sh / 2 , sw / 2 ]
21
+ w .addch (int (food [0 ]), int (food [1 ]), curses .ACS_PI )
22
+
23
+ key = curses .KEY_RIGHT
24
+
25
+ while True :
26
+ next_key = w .getch ()
27
+ key = key if next_key == - 1 else next_key
28
+
29
+ if snake [0 ][0 ] in [0 , sh ] or snake [0 ][1 ] in [0 , sw ] or snake [0 ] in snake [1 :]:
30
+ curses .endwin ()
31
+ quit ()
32
+
33
+ new_head = [snake [0 ][0 ], snake [0 ][1 ]]
34
+
35
+ if key == curses .KEY_DOWN :
36
+ new_head [0 ] += 1
37
+ if key == curses .KEY_UP :
38
+ new_head [0 ] -= 1
39
+ if key == curses .KEY_LEFT :
40
+ new_head [1 ] -= 1
41
+ if key == curses .KEY_RIGHT :
42
+ new_head [1 ] += 1
43
+
44
+ snake .insert (0 , new_head )
45
+
46
+ if snake [0 ] == food :
47
+ food = None
48
+ while food is None :
49
+ nf = [
50
+ random .randint (1 , sh - 1 ),
51
+ random .randint (1 , sw - 1 )
52
+ ]
53
+ food = nf if nf not in snake else None
54
+ w .addch (food [0 ], food [1 ], curses .ACS_PI )
55
+ else :
56
+ tail = snake .pop ()
57
+ w .addch (int (tail [0 ]), int (tail [1 ]), ' ' )
58
+
59
+ w .addch (int (snake [0 ][0 ]), int (snake [0 ][1 ]), curses .ACS_CKBOARD )
60
+
61
+ user_input = input ("Do you want to play the snake game, type 'yes' or 'no': " ).lower ()
62
+
63
+ if user_input == "yes" :
64
+ play_game ()
65
+ else :
66
+ quit ()
You can’t perform that action at this time.
0 commit comments