學C語言已經半年多了。卻對俄羅斯方塊,貪吃蛇之類的小遊戲的編寫一點頭緒都沒有!問題塊 1)

時間 2021-09-20 05:56:39

1樓:

單純學c你是寫不出圖形程式的,你可以看到,c標準庫支援的是dos程式,就是那個黑不溜秋的東西。

如果想知道你離小遊戲還多遠,咱們可以這麼算一下,下面給出幾個假設條件:

提供給你圖形繪製函式,你只需要傳相應的引數,就能畫出圖形,點,線,圓,顏色填充之類。

給出執行緒函式,讓你可以建立系統執行緒,或者使用定時器等控制貪吃蛇身體的移動。具體的方式可以變,你需要一個按照固定時間間隔來移動蛇身的函式。

那你覺著,你該怎樣寫一個貪吃蛇?

思路是:

使用連結串列等結構,儲存蛇的身體,好處就是,可以任意長度。你要想好連結串列中儲存什麼屬性可以更好地描述蛇的狀態,它超哪個方向走,它的身體各個節點處於哪個位置。

劃分螢幕座標系,將貪吃蛇對映為座標系中的點。

寫出碰撞檢測函式,貪吃蛇碰到了一個食物,就在連結串列頭部新增一個節點並將頭結點更新為這個結點。

使用碰撞檢測函式檢測貪吃蛇是否撞到了自己。

檢測蛇是否撞到了螢幕邊界。

使用執行緒或定時器沿著一個方向移動你的貪吃蛇,移動規律是朝著當前連結串列頭部衝的方向勻速移動,你可以設定0.5s對錶頭的x/y座標進行加,減。時間間隔影響了蛇的速度,如果允許長度超過一個程度升級加速,你就要設定下這裡的引數。

根據表頭的移動,設計演算法計算蛇的身體各個點的移動軌跡。這個是關鍵,這個演算法想錯了,你的蛇就會亂跑。一個比較直接的做法是,將蛇身體的每個節點依次前移,不是座標的移動,是填充,讓後面節點填充它前面節點移動前的位置。

大致是這樣,我只是給出個思路,如果我有寫錯的地方,歡迎指正,又或者是你可以按照你的思路來進行,學習,思路是很重要的,**是死的,人是活的。

分析問題,你要將實際的問題抽象出程式設計用的模型。抽象的過程就是,先假設你已經有了你想要的函式,你可以先給出函式的宣告,比如碰撞檢測函式,執行緒函式等等。這些函式你不會寫,先空著,想象它們已經完成了。

然後你要做的就是,用這些已經被假設存在的構造快,來實現你的邏輯。這個邏輯是什麼,就要看你怎麼抽象一個具體的問題。就像貪吃蛇,通用的思路是把它抽象為座標和連結串列結構。

如果你用了另外一種思路,整個過程可能截然不同。

整個過程寫完了,你需要知道,那些被你假設了的函式,到底怎麼實現。

給個思路:

介面顯示用mfc來做,執行緒,定時器什麼的,有相應的windowsapi,這些圖形和執行緒功能,都需要作業系統做支援,所以你要用到一些windows的api。這些資料都是有的,你可以去找。

以上。再次宣告,如有疏漏,請見諒。

2樓:

我不認為學c語言的目的是寫遊戲,寫遊戲有專門的框架,尤其是gui用c處理是很麻煩的。能寫遊戲也絕對不代表你精通了c語言,可以說有無數種方法來寫好一個遊戲,孰優孰劣?難說。

我的想法是,學習c語言本身和學習軟體設計還是不一樣的。軟體設計與具體的語言無關,而精通語言本身也不代表就會設計。現實中的軟體設計很少有直接用c的,至少也是c++,所以我覺得學c更多的是打基礎,不必強調應用。

下面我就學習c語言本身談一點看法。

不知道你的教育背景如何?具體學習策略和強度需要根據背景而定。

一般來說,你現在已經完成了入門,下面要進一步深入學習的話可以看c primer等外國書籍。

相比遊戲等應用,c語言更適合用來學習基本的演算法。可以找資料結構與演算法的書來學習。

3樓:匿名使用者

1)根據遊戲難度判斷

2)2個月

3)不要被遊戲的表面所迷惑(貪吃蛇和俄羅斯方塊並不是基於圖形,而是座標來編寫)

4)我就是自己看書,自己程式設計,不會的上網查,然後慢慢的就越積累越多了

c語言學多久才可以寫出一些小遊戲? 貪吃蛇,俄羅斯方塊,坦克,五子棋……? 2)編寫這些小遊戲需要

4樓:匿名使用者

只是半年吧,c基礎好學

但是vc中的很多api函式不是一天能掌握的,需要慢慢積累

5樓:匿名使用者

這不僅僅是時間問題。

6樓:匿名使用者

要學就學著 想這些幹嘛

C語言C 到底怎麼學,C語言 C 到底怎麼學

大學畢業零基礎,很可能是因為你的性格不適合幹這行.當初學計算機是因為覺得好玩吧,是因為覺得可以名正言順地上網玩遊戲吧.學計算機有兩個大方向,一是系統管理,資料庫管理.一是程式開發.建議你要麼改行做別的,要麼往管理方向發展.如果往管理方向的話,就學linux.不過c仍然是基礎.祝好運. 超級大香腸 你...

我本科是會計專業,畢業已經半年多了,感覺學不到東西。在單位一直實習

剛畢業就這樣的 不知道你是在工廠還是商貿企業 會計才開始 就是做一些簡單的憑證 企業會計 基本沒什麼事 就是去存錢轉賬 工廠會計也就是多幾個原材料 後期 才需要你開票什麼的 不是好單位的話 可以選擇工作一段時間 跳槽 在有工作經驗的情況下 可以找到更好一點的工作 和你現在這些老會計學學東西 學校學的...

c語言到底要怎麼來學,C語言到底要怎麼來學

那該如何學c語言呢?希望我整理的 c語言的學習路線,能對你有幫助!如果沒有學習地方可以來 首先是c語言的基礎語法 變數 字串 條件 迴圈 陣列 函式 結構體等,然後就是指標 記憶體管理等c語言中至關重要的兩大標準。因此,學習c語言推薦大家可以從 c primer plus 開始入門,系統地瞭解c語言...