20212115朱時鴻 《python程式設計》實驗四報告
- 2022 年 5 月 29 日
- 筆記
課程:《Python程式設計》
班級: 2121
姓名: 朱時鴻
學號:20212115
實驗教師:王志強
實驗日期:2022年5月28日
必修/選修: 公選課
1.實驗內容
Python綜合應用:爬蟲、數據處理、可視化、機器學習、神經網路、遊戲、網路安全等。
註:在華為ECS伺服器(OpenOuler系統)和物理機(Windows/Linux系統)上使用VIM、PDB、IDLE、Pycharm等工具編程實現。
2,實驗過程及結果
(一)實驗內容
編寫一個塔防遊戲,類似於保衛蘿蔔以及明日方舟那種。
(二)選題理由
因為本人對塔防遊戲情有獨鍾,所以自己想編寫一個塔防遊戲,但由於對python的學習空間剩餘的還很大,所以在網上找了許多的參考資料並且學習參考了教學影片才勉強完成,雖然不太完美,但對於自己來說也是一個挑戰自己的機會。
(三)實驗過程
1.首先購買一個華為雲伺服器
這個步驟我在本專業的C語言課程中其實已提前完成,所以沒有花掉我多少的時間
2.下載pygame
這個步驟我是通過在網上找找資料,然後根據熱心網友的回答解決的,但是在這個步驟的實現的過程我遇見了一個挺大的麻煩,就是明明我已經下載了pygame我在pycharm上運行時卻會顯示說我沒安裝pygame,這個問題困擾我很久,但好在課代表熱心能力有強,幫我解決了這個問題,原因是我的電腦里下列三個python
但是只有一個python是有pygame的,最終幫我換了一個編譯環境後解決了問題。(真的感謝課代表,我自己弄不知道要多久)
3.配置遠程桌面
這個步驟也是在課代表的提醒下弄得,課代表在群里說需要下載這個才可以在華為雲伺服器上運行,不然會報錯
首先在linux系統
在 Linux 系統安裝 X11 轉發的必要軟體包:
# yum install -y xauth
# yum install -y xclock
下載xterm和xauth,EularOS用如下命令
yum install xterm
yum install xauth
用vim編輯器打開(vi是vim的簡寫)網路設置,注意xming與putty之間是通過ssh協議通訊的
vi /etc/ssh/sshd_config
設置X11Forwarding yes
在vim編輯器中按i進入編輯模式,按Esc退出編輯,按:輸入wq退出vim
完成後退出putty
xming下載並安裝好後,在菜單欄找到xlaunch,一直點下一步至完成即可。之後打開putty輸入xterm即可看見窗口了。
設置X11Forwarding yes
下載xming
最後為了成功運行xterm花了不少時間,通過上網查找教程和群里的文件,最終自己獨立完成,但運行成功出現自己的理想中的結果時,有點成就感
4.編寫程式碼過程及思路
首先塔防遊戲需要涉及地圖
然後再遊戲中也是需要音樂的,不然會讓遊玩者感到枯燥,所以加入了背景音樂
然後找了幾張防禦物,小怪物,地圖的圖來呈現
首先在塔防遊戲中,防禦物是需要攻擊怪物的,所以我們首先編寫攻擊物間的程式碼
然後需要設計塔
至此,最重要的幾個元素就設計完成了

首先在本地運行
然後是在ecs上面運行
在這個上運行有點慢
(五)實驗中所遇到的問題及解決方法
1.在下載pygame後在本地運行是卻顯示沒有這個插件
解決方法:換了一個編譯環境,發現有三個不同的python,但是只有一個pygame所以換了那個有pygame插件的python
2.最開始在華為雲商運行時沒有畫面,且會報錯
解決方案:通過課代表在群里的提醒後,下載了一個xming,完美解決了這個問題
3.一開始將程式碼上傳後,但是會出錯
解決方案:再請教同學後,知道了不能上傳聲音,不然會出錯,然後將和聲音有關的程式碼全部屏蔽了,成功上傳
(六)實驗的感悟
通過本次實驗我明白了一個道理:沒有最好只有更好,每次解決了一個問題後,總會有另一個問題冒出來,這也間接證明我在知識點上面的欠缺。
在問題的發現解決中,我自己的能力也得到了許多的提升,在這個過程挺感謝課代表的幫助,相信通過這次的作業,我以後在編寫遊戲以及對華為雲的運用上面一定會更加的得心應手。
參考資料:B站教學影片
課代表以及多位熱心同學的幫助
結課感想與體會
python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。而且,在字元串上的處理,python相對於c語言也是給程式設計師極大的便利。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。但是,我認為python雖然在許多方面相對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。 python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。
在學習python的第一節課上,其對我的最初的印象就是,相較於我學習過的c語言編程,它更加的簡潔。所有的變數都不需要像c語言編程那樣需要提前去定義,這樣給了編程者很大的自由空間與方便。如x=2,即可同時完成變數的定義與賦值。對於簡化程式的程式碼,起到了許多的作用。而且,在字元串上的處理,python相對於c語言也是給程式設計師極大的便利。在c語言中,只能用字元類的數組對字元串進行相應的操作,步驟也是相對於比較繁瑣的,而在python中,當我們需要創建一個字元串的時候,只需要在創建字元串的時候用”s=」就可以了。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。我們只需要調用庫中的函數,而對於函數的具體實現,也沒有特殊的需求。
但是,我認為python雖然在許多方面相對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。不過也依然不會影響到python的強大,而隨著近幾年來的發展,python的受歡迎度也越來越高,而它的運用的領域也是越來越多,比如人工智慧和大數據等領域,python都是在其中扮演者重要的角色。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。
在王老師的教導下,我覺得自己比起剛開始上課啥也不懂的小白可謂是強了不止一星半點,而且更為重要的是通過王老師得我教導,我對python的興趣更加的濃厚了
真的挺感謝王老師,教科好而且有責任心,您的課我覺得也非常風趣幽默,上起來沒有其他一些課的枯燥乏味,我知道python的學習還只是冰山一角,但相信通過王老師這一學期的引領,我在以後的學習中一定會得心應手,若果以後還有王老師的課,我一定還會選的(真)。