编写一段贪吃蛇的代码
时间: 2024-12-19 20:17:58 浏览: 10
编写贪吃蛇的代码通常涉及基本的游戏循环、游戏状态管理、用户输入处理和图形界面(如果是在GUI环境中)。这里给出一个简单的Python基于命令行版本的贪吃蛇示例:
```python
import curses
import random
# 初始化屏幕
stdscr = curses.initscr()
curses.curs_set(0) # 隐藏光标
snake = [(5, 5), (4, 5), (3, 5)] # 蛇的身体,起始位置在(5, 5)
food = (8, 8) # 食物的位置
score = 0
def move(snake):
x, y = snake[-1]
dx, dy = random.choice([(0, 1), (0, -1), (1, 0), (-1, 0)]) # 随机移动方向
if (x + dx, y + dy) in [(px, py) for px, py in snake]: # 撞到自己就结束
return False
new_head = (x + dx, y + dy)
snake.append(new_head)
if new_head == food: # 吃到食物,增长身体并生成新的食物
score += 1
food = (random.randint(0, stdscr.getmaxyx()[0] - 1),
random.randint(0, stdscr.getmaxyx()[1] - 1))
else:
snake.pop(0)
return True
while True:
c = stdscr.getch() # 获取用户按键
if c == ord('w') and move(snake): # 上
pass
elif c == ord('a') and move(snake): # 左
pass
elif c == ord('s') and move(snake): # 下
pass
elif c == ord('d') and move(snake): # 右
pass
# 渲染蛇和食物
for pos in snake:
stdscr.addch(*pos, 'O')
stdscr.addch(*food, '*')
stdscr.addstr(0, 0, f"Score: {score}")
stdscr.refresh()
if not move(snake): # 如果蛇撞墙或自己,则退出游戏
break
# 游戏结束,关闭屏幕
curses.endwin()
```
这个代码片段创建了一个基本的贪吃蛇游戏,玩家通过键盘控制蛇的方向。注意这只是一个非常基础的例子,实际的游戏可能需要更复杂的碰撞检测、边界处理和游戏逻辑。
阅读全文