python贪吃蛇代码
时间: 2023-09-14 16:11:58 浏览: 59
这是一个简单的 Python 贪吃蛇代码,你可以根据自己的需要进行修改:
```python
import curses
import random
# 初始化屏幕
screen = curses.initscr()
curses.curs_set(0)
# 获取屏幕的大小
screen_height, screen_width = screen.getmaxyx()
# 创建蛇头和初始位置
snake_head = [screen_height // 2, screen_width // 2]
snake_body = [snake_head, [snake_head[0] + 1, snake_head[1]], [snake_head[0] + 2, snake_head[1]]]
# 创建食物的初始位置
food = [random.randint(1, screen_height - 1), random.randint(1, screen_width - 1)]
# 设置游戏边界
screen.border(0)
# 设置键盘输入不需要回车
screen.keypad(1)
# 设置游戏速度
game_speed = 100
# 游戏循环
while True:
# 显示蛇头和蛇身
screen.addstr(snake_head[0], snake_head[1], "#")
for body_part in snake_body[1:]:
screen.addstr(body_part[0], body_part[1], "o")
# 显示食物
screen.addstr(food[0], food[1], "*")
# 获取键盘输入
key = screen.getch()
# 移动蛇头
if key == curses.KEY_UP:
snake_head[0] -= 1
elif key == curses.KEY_DOWN:
snake_head[0] += 1
elif key == curses.KEY_LEFT:
snake_head[1] -= 1
elif key == curses.KEY_RIGHT:
snake_head[1] += 1
# 判断蛇头是否与食物重合
if snake_head == food:
food = [random.randint(1, screen_height - 1), random.randint(1, screen_width - 1)]
snake_body.append(snake_body[-1])
# 判断蛇头是否超出游戏边界
if snake_head[0] == 0 or snake_head[0] == screen_height - 1 or snake_head[1] == 0 or snake_head[1] == screen_width - 1:
break
# 判断蛇头是否与蛇身重合
if snake_head in snake_body[1:]:
break
# 移动蛇身
snake_body.insert(0, list(snake_head))
snake_body.pop()
# 刷新屏幕
screen.refresh()
# 控制游戏速度
curses.napms(game_speed)
# 游戏结束
screen.addstr(screen_height // 2, screen_width // 2 - 5, "Game Over!")
screen.refresh()
curses.napms(2000)
# 恢复终端设置
curses.endwin()
```
这是一个基本的贪吃蛇代码,你可以根据自己的需要进行修改和完善。
阅读全文