python练习实例——用curses在终端实现贪吃蛇小游戏

本文介绍了如何利用Python的curses模块在Linux终端实现一个简单的贪吃蛇游戏。curses是一个用于控制台输出和输入处理的包,Python的curses模块提供了方便的接口。文章作者参考了B站上的视频并修复了其中的bug,编写了一份约80行的代码,读者可以在Linux环境下运行体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   curses包的封装用于实现终端无关的控制台输出以及输入处理。curses包支持各种终端,从古老的VT100到LINUX控制台到X11终端如xterm或rxvt。而python中的curses模块是对curses包的C语言的简单封装,并对curses的调用做了简化,将C接口中的addstr, mvaddstr, mvwaddstr三个函数合并成了一个单独的addstr函数。

   前几天在b站上看到一个外国小哥的视频,用curses写了一个简单的贪吃蛇游戏,代码不到80行,感觉很有意思。不过有点小bug,我自己动手实现了一下,做了一些完善并附上了注释,在这里记录并分享一下(注意:curses包只能在linux下使用,如果是windows,可以用unofficial curses)

import curses
import random

# initialize the window
s = curses.initscr()
curses.curs_set(0)
hei, wei = s.getmaxyx()  # the value of first getting is y,not x
w = curses.newwin(hei, wei, 0, 0)
w.keypad(1)
w.timeout(100)

# initialize the position of snake
sn_x = int(wei/4)
sn_y = int(hei/2)
snake = [[sn_y, sn_x], [sn_y, sn_x-1], [sn_y, sn_x-2]]

# initialize the position of food
food_pos = [int(hei/2), int(wei/2)]
w.addch(food_pos[0], food_pos[1], '$')

key = curses.KEY_RIGHT

# start
while True:
    next_key = w.getch()  # The program stops waiting for user input
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值