午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

為什么學(xué)會C語言確感覺還不會編程呢?其實(shí)你想錯了

 昵稱67168469 2019-11-11

其實(shí)對于程序而言,C語言抑或著C++、Java等其他程序語言只是用于表達(dá)你的想法的一個(gè)工具。就像讓我們以建筑為例,畫圖是一個(gè)基本功,但是畫什么才是核心所在。那么,今天我們以一個(gè)設(shè)計(jì)一個(gè)RPG(角色扮演)游戲?yàn)槔?/p>

當(dāng)然,我們這里不是講如何設(shè)計(jì)一個(gè)完整的,那可能太復(fù)雜,也超過你目前掌握的C語言知識,不過我們可以抽取一個(gè)簡單的元素。

在RPG游戲中,我們知道有一個(gè)重要的元素就是主角,即人。而人會有不同的屬性,如生命值(一般成為HP),魔法值(一般稱為MP),攻擊力(如命名為AttackAbility)。那么,我們?nèi)绾伟焉蹬c魔法值等附加在人的屬性中呢?

回想我們的C語言知識,我們知道要把多個(gè)值捆綁在一起然后來表達(dá)一個(gè)東西,那么在C語言是使用struct來進(jìn)行輔助我們表達(dá)這樣的目的。

即:struct Person {int HP;int MP;int AttackAbility;};

這樣我們就完成來Person的生命值與魔法值的捆綁,而使用的就是C語言的struct。接下來,讓我們更進(jìn)一步。我們的主角會有攻擊對方的動作,我們這里命名為attack。對于攻擊來說,我們需要有兩個(gè)元素需要關(guān)注,一個(gè)是攻擊者(我們主角),一個(gè)是被攻擊者(如怪獸),那么我們同樣的把怪獸的屬性列舉出來。struct Monster {int HP;// ...};接下來我們需要把主角和怪獸傳遞過來,即我們要知道我們的主角和怪獸就是我們所指向的那一個(gè),而不是其他的(包括新建),那么我們應(yīng)該用什么來傳遞呢?回想我們的C語言,能這樣指向的,就是指針,于是函數(shù)則這樣。

void attack(struct Person* person, struct Monster* monster) { monster->HP = monster->HP - person->AttackAbility;if(monster->HP <= 0) { printf("Monster is killed by you! "); }}在這里,我們還進(jìn)行來一次判斷,如果怪獸被攻擊后,生命值小于等于零后,我們輸出怪獸被殺死的信息。

通過這樣的引導(dǎo)例子,你可以看到,C語言只是提供了基本的元素來表達(dá)我們的想法,我們學(xué)習(xí)C語言只是學(xué)習(xí)來基礎(chǔ)的語法規(guī)則,但是最重要的還是我們的思想,然后利用C語言這個(gè)工具來表達(dá)。

那么,我們在以后的學(xué)習(xí)中,還會學(xué)習(xí)到數(shù)據(jù)結(jié)構(gòu)與算法、編譯原理、操作系統(tǒng)等課程,其實(shí)都是豐富我們的思想,然后再利用編程語言這個(gè)工具來表達(dá)我們的思路,這一點(diǎn)你要切記。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多