打个贪吃蛇python代码
时间: 2024-10-11 20:10:36 浏览: 32
贪吃蛇是一个经典的控制台游戏,我们可以使用Python语言来编写一个简单的版本。这里是一个基础的贪吃蛇游戏的代码框架:
```python
import curses
import random
# 初始化窗口
stdscr = curses.initscr()
curses.curs_set(0) # 隐藏光标
snake_pos = [(20, 10), (19, 10), (18, 10)] # 蛇的身体
food_pos = (random.randint(1, 29), random.randint(1, 29)) # 食物位置
direction = 'RIGHT'
while True:
stdscr.addch(snake_pos[0][0], snake_pos[0][1], curses.ACS_CKBOARD) # 绘制蛇头
for pos in snake_pos[:-1]:
stdscr.addch(pos[0], pos[1], ' ') # 绘制蛇身其他部分
stdscr.addch(food_pos[0], food_pos[1], '*') # 绘制食物
stdscr.refresh()
key = stdscr.getch() # 获取按键
if key == ord('w'):
direction = 'UP'
elif key == ord('s'):
direction = 'DOWN'
elif key == ord('a'):
direction = 'LEFT'
elif key == ord('d'):
direction = 'RIGHT'
# 更新蛇的位置
new_head = snake_pos[-1]
if direction == 'UP':
new_head = (new_head[0] - 1, new_head[1])
elif direction == 'DOWN':
new_head = (new_head[0] + 1, new_head[1])
elif direction == 'LEFT':
new_head = (new_head[0], new_head[1] - 1)
elif direction == 'RIGHT':
new_head = (new_head[0], new_head[1] + 1)
# 移动蛇并检查边界
if new_head in snake_pos or new_head == food_pos:
break # 如果碰到自己或食物,游戏结束
snake_pos.insert(0, new_head) # 把新头部加入蛇的列表
if snake_pos[0] == food_pos: # 吃到食物,增长身体
snake_pos.append(random.choice(tuple((x, y) for x in range(30) for y in range(30) if (x, y) != food_pos)))
food_pos = (random.randint(1, 29), random.randint(1, 29))
stdscr.clear()
curses.endwin()
```
这个代码只是一个基本的框架,为了增加复杂性和玩家的游戏体验,你可能还需要添加碰撞检测、得分系统、蛇的增长等更多的功能。运行这个程序需要安装curses库,通常是通过`pip install python-curses`命令。
阅读全文