python贪吃蛇(windows 终端 简单运行版 )
1.运行示意图
注:按方向键即可控制,长按加速。
2. 代码
# -*- coding: utf-8 -*-
import random
import curses
def main(stdscr):
# 初始化窗口
curses.curs_set(0)
sh, sw = stdscr.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)
# 初始蛇和食物位置
snk_x = sw//4
snk_y = sh//2
snake = [
[snk_y, snk_x],
[snk_y, snk_x-1],
[snk_y, snk_x-2]
]
food = [sh//2, sw//2]
w.addch(int(food[0]), int(food[1]), curses.ACS_PI)
key = curses.KEY_RIGHT
while True:
next_key = w.getch()
key = key if next_key == -1 else next_key
# 检查蛇是否撞墙或撞到自己
if snake[0][0] in [0, sh] or \
snake[0][1] in [0, sw] or \
snake[0] in snake[1:]:
curses.endwin()
quit()
# 计算新的蛇头位置
new_head = [snake[0][0], snake[0][1]]
if key == curses.KEY_DOWN:
new_head[0] += 1
if key == curses.KEY_UP:
new_head[0] -= 1
if key == curses.KEY_LEFT:
new_head[1] -= 1
if key == curses.KEY_RIGHT:
new_head[1] += 1
snake.insert(0, new_head)
# 检查蛇是否吃到食物
if snake[0] == food:
food = None
while food is None:
nf = [
random.randint(1, sh-1),
random.randint(1, sw-1)
]
food = nf if nf not in snake else None
w.addch(food[0], food[1], curses.ACS_PI)
else:
tail = snake.pop()
w.addch(int(tail[0]), int(tail[1]), ' ')
w.addch(int(snake[0][0]), int(snake[0][1]), curses.ACS_CKBOARD)
curses.wrapper(main)
3.操作步骤
在Windows平台上运行使用curses库的Python脚本,你需要安装一个兼容的库,因为Windows默认不包含curses库。这个库叫做windows-curses,可以让你运行基于文本的用户界面程序。
首先,你需要确保安装了Python。然后,按照以下步骤安装windows-curses库并运行你的脚本
- 打开命令提示符或PowerShell;
- 使用pip安装windows-curses库:
pip install windows-curses
; - 在命令提示符或PowerShell中,切换到包含snake.py脚本的目录;
- 运行脚本:
python snake.py
; - 如果一切正常,你的贪吃蛇游戏应该会在终端中启动。
如果你遇到了任何问题,比如脚本报错,可能需要检查脚本是否正确使用了curses库的功能,或者检查是否正确安装了windows-curses。在某些情况下,你可能需要以管理员权限运行命令提示符或PowerShell来安装库。