如何玩遊戲提高python編程技能?

筆者公衆號:技術雜學鋪

筆者網站:mwhitelab.com

Python Challenge介紹

Python Challenge 是首個謎語編程網站。挑戰者需要連續挑戰33個需要編程才能解開的謎題以鍛鍊自己的編程能力。

該網站建立於2005年,至今已經有三百多萬位訪客瀏覽並嘗試解決該網站的謎題。

python challenge 官網

雖然網站建立的年代比較久遠,頁面美觀性不高,但是其謎題設計絕對是足以驚豔每一位挑戰者的。尤其是挑戰者在不查看任何攻略的情況下,自己整理一切現有資料,並最終解出謎題時,那種喜悅感是難以言表的。

該網站好評不斷。用戶brberg說:“我認爲這是學習一門編程語言最好的方法”(”These sorts of things are in my opinion the best way to learn a language.” )

用戶salimma說:“讓人上癮的方式來學習python的細節,對所有程序員來說都是必須的!”(”Addictive way to learn the ins and outs of Python.. a must for all programmers!”)

另外,網站還內置一個留言區(雖然如今已經被各類“小廣告”所佔領),一個google論壇和一個wiki百科。

Python challenge的wiki

該網站通過記錄挑戰者cookie的方式來確定挑戰者目前的通關進度。只有闖過了相應關卡並訪問指定網址才能查看對應關卡的官方解答。

通過對應關卡後才能看到該關卡的官方解答

其各種各樣的解題方法可以作爲讀者通關後的參考材料,通過對比自己與官方的解題方法,以拓寬自己的思路與知識面。

題目示例

筆者的解題文件已經放在了github上,目前的進度爲12/33,不定期更新中。

這裏筆者列舉幾個比較有創意的題目,及其解題思路。歡迎讀者前去python challenge進行嘗試。

level 2

第二關的謎題只有一張圖片和一段文字:識別字母,也許他們在書中,但也可能在網頁源代碼中。

我們打開網頁源代碼,發現一段超長的註釋,以及一段提示:找到雜亂信息中的文字。

這是一串保存起來後將近100k的字符串。單純用肉眼去掃碼是幾乎不可能的。但如果我們使用代碼的話,十幾行就解決了。獲得答案:equality。把網頁地址最後部分改爲equality.html即進入下一關。

level 4

題目同樣是只有一張圖片。網頁標題是“follow the chain”,跟隨着鏈條。

我們點擊圖片,可以進入下一個網頁。該網頁告訴我們下一個nothing的取值爲44827。根據瀏覽器的url地址,我們把最後的”nothing=12345″改爲”nothing=44827″即可

然而,新的網頁依舊是類似的場景。不斷這樣的手動更換地址的操作十幾次後,顯示頁面依舊類似如下場景。

此時,我們就需要通過爬蟲以及網頁內容分析來進行這樣的任務了。

關於爬蟲的知識,筆者曾在爬蟲原理解析中細緻地講述過。

實例程序如下圖:

有時,我們還會收到一些需要人爲處理的信息和誤導性信息:

在解決了上述問題並使用程序連續訪問了兩百多次後,我們即可找到最終的答案:peak.html

level 7

我們在該關會獲得如下圖片

我們讀取該圖片,找到其不自然的灰度區域。

讀取其灰度值,並進行一定的處理後,我們發現所有數的取值都在128以下

此時,我們應該想到ASCII編碼。我們繼續對獲取到的灰度值進行處理,並將其轉化爲ascii編碼對應的字符。

我們會獲得 ‘smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]’

同理,對 [105, 110, 116, 101, 103, 114, 105, 116, 121] 進行同樣的ascii解碼操作,得到答案integrity

level 11

第11關的名稱爲“odd even”(奇數與偶數)

該圖片很詭異,再參考題目標題,我們將該圖片拆分分兩張圖片。

原始圖片中x,y座標和爲奇數的像素點構成第一張圖,和爲偶數的像素點構成第二張圖。

 

於是我們獲得了通過密碼:evil

更多

上述的題目僅僅是python challenge的冰山一角

該網站的關卡中,有的題目需要你使用繪圖包才能解答

有的關卡涉及到文件讀取、IO操作,謎底答案隱藏在最不引人注意的角落中。

還有的題目,需要你發揮天馬行空的想象,廣開腦洞才能找到解題方法。

可以說Python Challenge集編程練習與趣味謎題於一身,是絕佳的python練習遊戲。

另外,筆者整理的Python Challene解題文件中除了解題代碼,還附帶解題思路以及關卡考察內容。讀者可前往github查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章