使用Python生成贪吃蛇游戏
时间: 2023-12-25 20:14:21 浏览: 72
好的,下面是一个简单的Python代码,可以生成一个基于命令行的贪吃蛇游戏。
```python
import random
import curses
# 初始化窗口
stdscr = curses.initscr()
curses.curs_set(0)
height, width = stdscr.getmaxyx()
# 初始化蛇的位置和方向
snake = [(height//2, width//2)]
dir = curses.KEY_RIGHT
# 初始化食物的位置
food = (random.randint(1, height-2), random.randint(1, width-2))
# 开始游戏循环
while True:
stdscr.clear()
# 绘制蛇和食物
stdscr.addstr(food[0], food[1], '*')
for i, (y, x) in enumerate(snake):
stdscr.addstr(y, x, '#' if i == 0 else 'o')
# 获取用户输入方向
key = stdscr.getch()
if key in [curses.KEY_UP, curses.KEY_DOWN, curses.KEY_LEFT, curses.KEY_RIGHT]:
dir = key
# 根据方向移动蛇的位置
y, x = snake[0]
if dir == curses.KEY_UP:
snake.insert(0, (y-1, x))
elif dir == curses.KEY_DOWN:
snake.insert(0, (y+1, x))
elif dir == curses.KEY_LEFT:
snake.insert(0, (y, x-1))
elif dir == curses.KEY_RIGHT:
snake.insert(0, (y, x+1))
# 判断蛇是否吃到了食物
if snake[0] == food:
food = (random.randint(1, height-2), random.randint(1, width-2))
else:
snake.pop()
# 判断游戏是否结束
if snake[0][0] == 0 or snake[0][0] == height-1 or snake[0][1] == 0 or snake[0][1] == width-1 or snake[0] in snake[1:]:
curses.endwin()
print('Game Over!')
break
# 刷新屏幕
stdscr.refresh()
# 控制游戏速度
curses.napms(100)
```
这段代码使用了curses库来生成命令行界面,并使用简单的逻辑实现了贪吃蛇游戏。您可以尝试修改代码,添加更多功能和特效,使游戏更加有趣。
阅读全文