python贪吃蛇完整代码不用pygame
时间: 2024-06-02 14:06:49 浏览: 13
Python贪吃蛇游戏的完整代码如下所示:
```
import random
import curses
import time
# 初始化curses
stdscr = curses.initscr()
curses.curs_set(0)
# 设置窗口尺寸
sh, sw = stdscr.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)
# 设置蛇的初始位置和身体
snake_x = sw // 4
snake_y = sh // 2
snake = [
[snake_y, snake_x],
[snake_y, snake_x - 1],
[snake_y, snake_x - 2]
]
# 设置食物的初始位置
food = [sh // 2, sw // 2]
w.addch(food, food, curses.ACS_PI)
# 初始化方向和键盘控制
key = curses.KEY_RIGHT
score = 0
while True:
# 获取键盘输入
next_key = w.getch()
key = key if next_key == -1 else next_key
# 判断是否获得食物
if snake[0] == food:
food = None
score += 1
while food is None:
new_food = [
random.randint(1, sh - 1),
random.randint(1, sw - 1)
]
food = new_food if new_food not in snake else None
w.addch(food, food, curses.ACS_PI)
else:
tail = snake.pop()
w.addch(tail, tail, ' ')
# 判断蛇头下一步的位置是否合法
head = snake
if key == curses.KEY_DOWN:
new_head = [head + 1, head]
elif key == curses.KEY_UP:
new_head = [head - 1, head]
elif key == curses.KEY_LEFT:
new_head = [head, head - 1]
elif key == curses.KEY_RIGHT:
new_head = [head, head + 1]
else:
new_head = [head, head]
# 添加新的蛇头
snake.insert(0, new_head)
w.addch(new_head, new_head, curses.ACS_CKBOARD)
# 判断游戏是否结束
if (
new_head in [0, sh - 1] or
new_head in [0, sw - 1] or
new_head in snake[1:]
):
msg = f"Game over! Your score is {score}"
w.addstr(sh // 2, sw // 2 - len(msg) // 2, msg)
w.nodelay(0)
w.getch()
break
# 关闭curses
curses.endwin()
```
注意:这份代码是在控制台中运行的,没有使用pygame库。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)