这几天除了吃就是睡(不知道为啥,吃饱就想睡),从大年三十到现在感觉啥都没做,写个代码安慰安慰自己吧哈哈哈哈。给大家分享几部最近看的电影(要学英语的一定要get起来)——《彩虹照耀》《罗宾逊漂流记》《伴我同行》《荒岛余生》《天赐宝贝》,其中,《彩虹照耀》全程感动到哭,看看就知道有多感人了哈哈哈;《天赐宝贝》让我觉得和《我是汤姆》一样感人。接下来写代码趴!
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)
https://blog.csdn.net/hanhanwanghaha欢迎关注这个超级无敌可爱的人鸭,有什么问题留言私信皆可,看见必回!
创作不易,如有转载,请注明出处
盗文章者垃圾人是也,盗者必究!
情人节写个贪吃蛇安慰自己
- 一、效果
- 二、代码
- 三、可能遇到的报错
- 3.1报错一
- 3.1.1原因
- 3.1.2解决办法
- 3.2报错二
- 3.2.1原因
- 3.2.2解决办法
一、效果
录屏软件和上下键有点冲突,就没有演示上下移动了(自行脑补啦)
二、代码
# coding:utf-8import curses
import random# 初始化屏幕
scr = curses.initscr()
# 设置光标
curses.curs_set(0)# 设置宽高
sh, sw = scr.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)# 窗口刷新时间为100毫秒,控制速度的地方
w.timeout(200)# 蛇
snake_x = int(sw / 4)
snake_y = int(sh / 2)
snake = [[snake_y, snake_x],[snake_y, snake_x - 1],[snake_y, snake_x - 2],
]# 简写一下
ku = curses.KEY_UP
kd = curses.KEY_DOWN
kr = curses.KEY_RIGHT
kl = curses.KEY_LEFT# 食物
food = [int(sh / 2), int(sw / 2)]
w.addch(int(food[0]), int(food[1]), curses.ACS_PI)# 控制蛇的移动# 首先要给它一个方向
key = kr
while True:# 获取玩家的键盘指令next_key = w.getch()key = key if next_key == -1 else next_key# 蛇死的情况:撞到自己,碰到边缘if snake[0] in snake[1:] or \snake[0][0] in [0, sh] or \snake[0][0] in [0, sh]:curses.endwin()quit()# 蛇的移动逻辑new_head = [snake[0][0], snake[0][1]]if key == curses.KEY_DOWN:new_head[0] += 1if key == curses.KEY_UP:new_head[0] -= 1if key == curses.KEY_LEFT:new_head[1] -= 1if key == curses.KEY_RIGHT:new_head[1] += 1snake.insert(0,new_head)# 当蛇吃到食物if snake[0] == food:food = Nonewhile food is None:nf = [random.randint(1, sh - 1),random.randint(1, sw - 1)]food = nf if nf not in snake else Nonew.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)
三、可能遇到的报错
3.1报错一
3.1.1原因
如果是windows系统,会出现这样的报错:
SyntaxWarning: list indices must be integers or slices, not tuple; perhaps you missed a comma?[snake_y, snake_x]
Traceback (most recent call last):File "G:/PythonProject/TD2/game/tanchi.py", line 3, in <module>import cursesFile "F:\Anaconda\lib\curses\__init__.py", line 13, in <module>from _curses import *
ModuleNotFoundError: No module named '_curses'
如图:
但导入的时候完全正常
原因是:curses库不支持Windows
3.1.2解决办法
去官网下载curses库对应你python版本的whl文件:https://www.lfd.uci.edu/~gohlke/pythonlibs/#curses
比如我是python38,64位
下载到python安装目录中下的Script文件夹下即可(Python\Scripts)
不知道自己python目录在哪的小伙伴别慌
直接在命令行行窗口输入 where python
接下来
把whl文件放入Script文件夹后,进入Script文件夹(我是用的Anaconda)
鼠标单击图上文件位置栏——输入cmd ——然后回车
变为
然后用pip安装whl文件即可
输入
pip install "curses-2.2.1+utf8-cp38-cp38-win_amd64.whl"
(小技巧:whl文件名输入前几个字母按TAB键能自动补全)
3.2报错二
3.2.1原因
Redirection is not supported.
如图
Redirection isnot supported. 翻译过来是不支持重定向
3.2.2解决办法
首先点击如图所示的倒立三角形符号,选Edit Configurations,勾选 “Emulate terminal in output console”,应用并确定即可
借鉴:https://www.youtube.com/watch?v=rbasThWVb-c&t=0s
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注!
欢迎关注微信公众号:宝藏女孩的成长日记
让这个可爱的宝藏女孩在努力的道路上与你一起同行!
如有转载,请注明出处(如不注明,盗者必究)