??這幾天除了吃就是睡(不知道為啥,吃飽就想睡),從大年三十到現在感覺啥都沒做,寫個代碼安慰安慰自己吧哈哈哈哈,給大家分享幾部最近看的電影(要學英語的一定要get起來)——《彩虹照耀》《羅賓遜漂流記》《伴我同行》《荒島余生》《天賜寶貝》,其中,《彩虹照耀》全程感動到哭,看看就知道有多感人了哈哈哈;《天賜寶貝》讓我覺得和《我是湯姆》一樣感人,接下來寫代碼趴!

https://blog.csdn.net/hanhanwanghaha歡迎關注這個超級無敵可愛的人鴨,有什么問題留言私信皆可,看見必回!
創作不易,如有轉載,請注明出處
盜文章者垃圾人是也,盜者必究!
情人節寫個貪吃蛇安慰自己
- 一、效果
- 二、代碼
- 三、可能遇到的報錯
- 3.1報錯一
- 3.1.1原因
- 3.1.2解決辦法
- 3.2報錯二
- 3.2.1原因
- 3.2.2解決辦法
一、效果
錄屏軟體和上下鍵有點沖突,就沒有演示上下移動了(自行腦補啦)

二、代碼
# coding:utf-8
import 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] += 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)
三、可能遇到的報錯
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 curses
File "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歡迎關注這個超級無敵可愛的人鴨,有什么問題留言私信皆可,看見必回!
創作不易,如有轉載,請注明出處
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259746.html
標籤:python
上一篇:用 Python 寫個計算器

