教你使用一行Python代碼玩遍童年的小游戲
寫(xiě)在前面
貪吃蛇,吃豆人,迷宮,井字游戲......這些小游戲我相信大家小的時(shí)候肯定玩過(guò),或許在某個(gè)時(shí)段還沉迷過(guò).
隨著年齡的增長(zhǎng),這些小游戲離我們?cè)絹?lái)越遠(yuǎn),但是我相信大家的童心還是一直在的
今天就分享一個(gè)真正可以玩耍的GitHub項(xiàng)目 --- free-python-games
安裝與使用
python大家都懂的,安裝第三方庫(kù)非常簡(jiǎn)單
pip install freegames
Python
由于該項(xiàng)目中的所有游戲均是基于Python內(nèi)置模塊Turtle制作,所以沒(méi)有太多依賴(lài),安裝不會(huì)有困難
安裝完之后我們可以使用 python -m freegames list 來(lái)查看所有的游戲列表
圖1
貪吃蛇
現(xiàn)在我們可以使用一行代碼啟動(dòng)相關(guān)游戲,比如貪吃蛇snake
python -m freegames.snake
Python
復(fù)制
圖2
貪吃蛇的玩法想必不用過(guò)多解釋了,使用鍵盤(pán)⬆️⬇️⬅️➡️即可操控
吃豆人
吃豆人沒(méi)玩過(guò)也應(yīng)該聽(tīng)過(guò),使用下面的代碼可以啟動(dòng)一個(gè)類(lèi)似吃豆人的游戲
python -m freegames.pacman
Python
復(fù)制
圖3
Flappy
Flappy這個(gè)游戲和之前非?;鸬腇lappy bird十分類(lèi)似
圖4
只需要更換游戲名即可啟動(dòng)
python -m freegames.flappy
Python
復(fù)制
圖5
這次需要不斷點(diǎn)擊鼠標(biāo)來(lái)控制綠色小圓點(diǎn)飛行,實(shí)測(cè)比f(wàn)lappy bird難度要更高一點(diǎn)
Memory
Memory翻譯過(guò)來(lái)是記憶,該游戲給出一些宮格,點(diǎn)擊每一個(gè)小宮格會(huì)顯示背后藏的數(shù)字,但會(huì)快速消失,當(dāng)你成功選中兩個(gè)相同的數(shù)字之后就會(huì)顯示為拼圖,可玩性還是很高的
python -m freegames.memory
Python
復(fù)制
圖8
迷宮
這個(gè)游戲應(yīng)該就不用介紹了,找出走出迷宮對(duì)應(yīng)的路徑即可
python -m freegames.maze
Python
復(fù)制
圖7
Tic Tac Toe
這個(gè)游戲我打賭你一定玩過(guò),單擊屏幕即可放置一個(gè)X或O,當(dāng)三個(gè)同樣的圖案在一條直線上就贏了
python3 -m freegames.tictactoe
Python
復(fù)制
圖8
查看源碼
還有更多的游戲這里就不再一一介紹,Turtle我們并不陌生,所以當(dāng)我們玩游戲時(shí)應(yīng)該思考開(kāi)發(fā)者是怎樣實(shí)現(xiàn)的。使用下面的代碼即可在當(dāng)前目錄下生成對(duì)應(yīng)游戲的源碼
"免費(fèi)的python游戲?qū)⒂螒蚝蛯W(xué)習(xí)結(jié)合在一個(gè)靈活的環(huán)境中 減少編程等困難主題的壓力"
python3 -m freegames copy snake
Python
復(fù)制
執(zhí)行之后,在當(dāng)前目錄下就多了一個(gè)snake.py文件,打開(kāi)就能查看游戲?qū)?yīng)的邏輯
"""Snake, classic arcade game. Exercises 1. How do you make the snake faster or slower? 2. How can you make the snake go around the edges? 3. How would you move the food? 4. Change the snake to respond to arrow keys. """ from turtle import * from random import randrange from freegames import square, vector food = vector(0, 0) snake = [vector(10, 0)] aim = vector(0, -10) def change(x, y): "Change snake direction." aim.x = x aim.y = y def inside(head): "Return True if head inside boundaries." return -200 < head.x < 190 and -200 < head.y < 190 def move(): "Move snake forward one segment." head = snake[-1].copy() head.move(aim) if not inside(head) or head in snake: square(head.x, head.y, 9, 'red') update() return snake.append(head) if head == food: print('Snake:', len(snake)) food.x = randrange(-15, 15) * 10 food.y = randrange(-15, 15) * 10 else: snake.pop(0) clear() for body in snake: square(body.x, body.y, 9, 'black') square(food.x, food.y, 9, 'green') update() ontimer(move, 100) setup(420, 420, 370, 0) hideturtle() tracer(False) listen() onkey(lambda: change(10, 0), 'Right') onkey(lambda: change(-10, 0), 'Left') onkey(lambda: change(0, 10), 'Up') onkey(lambda: change(0, -10), 'Down') move() done()
Python
現(xiàn)在我們就可以學(xué)習(xí)源碼并進(jìn)行修改來(lái)實(shí)現(xiàn)更多的功能與玩法,抓緊試試吧!
到此這篇關(guān)于一行Python代碼玩遍童年的小游戲的文章就介紹到這了,更多相關(guān)Python童年的小游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python元類(lèi)編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ORM
本文主要介紹了Python元類(lèi)編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單的ORM,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03用Python實(shí)現(xiàn)局域網(wǎng)控制電腦
大家好,本篇文章主要講的是用Python實(shí)現(xiàn)局域網(wǎng)控制電腦,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01pycharm 創(chuàng)建py文件總是為txt格式的問(wèn)題及解決
這篇文章主要介紹了pycharm 創(chuàng)建py文件總是為txt格式的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07本地文件上傳到七牛云服務(wù)器示例(七牛云存儲(chǔ))
這篇文章主要介紹了使用PYTHON把本地文件上傳到七牛云服務(wù)的方法,開(kāi)發(fā)環(huán)境是Python 2.7,大家參考使用吧2014-01-01Python常用模塊之threading和Thread模塊及線程通信
這篇文章主要介紹了Python常用模塊之threading和Thread模塊及線程通信,文章為圍繞主題的相關(guān)內(nèi)容展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友看可以參考一下方法2022-06-06python-opencv 將連續(xù)圖片寫(xiě)成視頻格式的方法
今天小編就為大家分享一篇python-opencv 將連續(xù)圖片寫(xiě)成視頻格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)模型不同層設(shè)置不同的學(xué)習(xí)率方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01