前面都在單挑,假如今天要做的是道具欄,怎麼處理?
先分析一下要求:
做出一個簡易道具欄,具備以下功能。
一、顯示所持道具及數量,依取得順序排列。相同道具會重疊。
二、獲得指定道具。
為了先不讓事情變得太複雜,功能先別太多太雜。反正之後可以再慢慢加!
與其把目標訂得太遠大,先從能確實完成小目標開始做起!
[初章] 04 使魔召喚與使役
勇者和魔王決鬥!…雖然現代很少勇者真的跟魔王單挑,都嘛帶著後宮圍毆…咳。
除了HP以外加入防禦力的要素,傷害為攻擊力減去防禦力。
傷害最小是1,被打死時不論最後一擊多痛,HP都只顯示為0而不顯示負數。
比之前複雜了些,但只是多加了一些設定,整體沒什麼改變。
[初章] 03 反覆反覆再反覆
啊~測試好麻煩喔,每次輸入完都要關掉再重新執行。
可是,哪款遊戲game over之後就自動關掉,還要重新執行的?都會自動回標題畫面讓你再戰一次啊!
如果程式碼是有限的,總有一天會執行完,那麼它們是怎麼做到的?
答案,就在這裡!
流程控制中,除了條件式的執行,還有「有條件式的反覆執行」!舉個例子你就懂了:
不斷攻擊至敵人倒下為止 (條件: 敵人倒下;執行: 攻擊敵人)
熬夜背單字直至背完為止 (條件: 單字背完;執行: 背單字)
這章打完就去睡了 (條件: 這章打完;執行: 打這章。去睡是之後的事,之後再說)
這場戰爭後我就要回老家結婚了 (條件: 這場戰爭結束;執行: 戰爭。)
...
可是,哪款遊戲game over之後就自動關掉,還要重新執行的?都會自動回標題畫面讓你再戰一次啊!
如果程式碼是有限的,總有一天會執行完,那麼它們是怎麼做到的?
答案,就在這裡!
流程控制中,除了條件式的執行,還有「有條件式的反覆執行」!舉個例子你就懂了:
不斷攻擊至敵人倒下為止 (條件: 敵人倒下;執行: 攻擊敵人)
熬夜背單字直至背完為止 (條件: 單字背完;執行: 背單字)
這章打完就去睡了 (條件: 這章打完;執行: 打這章。去睡是之後的事,之後再說)
這場戰爭後我就要回老家結婚了 (條件: 這場戰爭結束;執行: 戰爭。)
...
[初章] 02 不同結局的分歧
上一節我們學習了輸入輸出。我們能讓程式和我們互動了!但是,總覺得哪裡不夠…
像是它有如NPC般只能重覆一樣的話,能不能按照輸入做出不同回應呢?
人生總是充滿著各種選擇,導向不同的結局。小至今晚玩哪款遊戲好呢,大至要不要當勇者拯救公主呢~種種的分歧。
程式當然也是啦!如果主角血小於0就陣亡啦、隊伍存活人數等於0就gameover啦…等等。所以,當然是可以做出不同回應的!
像是它有如NPC般只能重覆一樣的話,能不能按照輸入做出不同回應呢?
人生總是充滿著各種選擇,導向不同的結局。小至今晚玩哪款遊戲好呢,大至要不要當勇者拯救公主呢~種種的分歧。
程式當然也是啦!如果主角血小於0就陣亡啦、隊伍存活人數等於0就gameover啦…等等。所以,當然是可以做出不同回應的!
[初章] 01 令程式聽命行事
程式終於會說話啦,但還不會聽話呢!雖然會照我們希望的去做,但指令是死的,沒法即時傳遞訊息。
好比一個女僕被教導打掃客廳,每次就是打掃客廳,沒法指定他打掃房間!這太糟了不是?
怎麼讓它聽話好呢~我們要它聽話,當然是希望傳達訊息給它,希望它記住並因應做出回應對吧?
否則聽過就忘的話,跟沒講過有什麼差別呢~
所以,我們必須先賦予它「記憶」的能力!文字太複雜了,實數也太複雜了,先從整數開始!
先讓它能夠記憶兩個整數,加上這行:
好比一個女僕被教導打掃客廳,每次就是打掃客廳,沒法指定他打掃房間!這太糟了不是?
怎麼讓它聽話好呢~我們要它聽話,當然是希望傳達訊息給它,希望它記住並因應做出回應對吧?
否則聽過就忘的話,跟沒講過有什麼差別呢~
所以,我們必須先賦予它「記憶」的能力!文字太複雜了,實數也太複雜了,先從整數開始!
先讓它能夠記憶兩個整數,加上這行:
[初章] 00 萬用起手與回應
首先來學習如何賦予程式「互動」的能力,也就是所謂的「輸入」與「輸出」!
輸入便是傳入訊息給程式,輸出便是程式傳出訊息給我們。
如果沒有輸入,我們無法操作程式,能做的事就會受限。想像一下沒有按鍵的計算機,或是沒有搖桿的電玩機台!
如果沒有輸出,便無法接收程式執行的結果。想像一下不會顯示答案的計算機,或是沒有螢幕的電腦!
儘管一個程式並不一定要有輸出輸入才算完整,但會很不方便。
首先先記住這招起手式:
輸入便是傳入訊息給程式,輸出便是程式傳出訊息給我們。
如果沒有輸入,我們無法操作程式,能做的事就會受限。想像一下沒有按鍵的計算機,或是沒有搖桿的電玩機台!
如果沒有輸出,便無法接收程式執行的結果。想像一下不會顯示答案的計算機,或是沒有螢幕的電腦!
儘管一個程式並不一定要有輸出輸入才算完整,但會很不方便。
首先先記住這招起手式:
[零章] 01 修煉的事前準備
工欲善其事,必先利其器。
想練習寫作,要先有紙筆。
當然不一定要是紙筆,也可以是一面牆和一把刀、一根樹枝以及一片砂地…等等。未必要拘泥於特定環境,但環境是必備的。咦?你說美工刀和一隻貓…等等,你想做什麼!?
寫C語言需要什麼?一台電腦,最好還要有網路。
就像壓縮找WinRAR或7zip,上網亂逛找FireFox或Chrome,寫C語言當然就是…
…什麼來著!?鬼才知道啊啊啊!
所以還得要有對應的軟體呢…在此先抓一個簡單好上手的來用。
如果有什麼不滿,沒關係!等你練成後想寫100個都行,高興要什麼功能就寫什麼功能!
在此先用用別家的,常見的是名為 Dev-CPP 的軟體,常見版本4.9.9.2。有更新的,但是沒有那個必要,這版本功能很齊全很完整了!
你說上哪買?不用買!免費公開下載,連程式碼都有得抓!
你說上哪找?好問題,讓我介紹你個好地方…
http://www.lmgtfy.com/?q=Dev+CPP
夠簡單明暸吧?第一個就是官方網站就有得下載了!
為防有笨蛋們找不到,只好提供專為笨蛋呈上的下載網址
什麼?你說你不是笨蛋?那你應該有能力自行在官方網站找到它,加油!
接下來就是安裝時間啦!邊安裝邊接著看下去吧!安裝語言English就好,這只影響安裝過程而已,安裝完就沒用了,不重要。
不過也沒多少時間給你東看西看,它很輕盈的,不像什麼visual studio啦,eclipse之流,動不動幾百M到幾G,光要開啟就得花幾分鐘載入,你說肯定有搭載什麼強大功能?
真正的強者拿個記事本就上啦!至於用到那種肥滋滋的軟體嗎?還要錢呢!
麻雀雖小仍是五臟俱全的,不用怕使用免錢小軟體就輸人一截,沒這回事!
想想這些肥滋滋軟體怎麼來的?還不是在沒有這些軟體時被寫出來的?
沒有什麼非得用這些軟體才寫得出來的程式。
安裝好了嗎?那麼,啟動它吧!
由於是第一次所以會先問你一些問題,語言使用繁體中文(或任何你想用的,但這裡以繁體中文來解講唷!),接下來勾選NO!之後就上啦~
接下來正式開啟了,但我們必須先調教一下。沒辦法,預設的設定相當糟糕。
- 檢視 -> 專案類別瀏覽視窗 取消勾選
- 工具 -> 編輯器選項 (注意: 旁邊有個叫編譯器選項,長得很像但是不要搞混)
- 一般 -> 勾起「使用Tab字元」
- 取消「智慧型Tab」 (*1)
- 勾起「相對應括號反白」 (*2)
- 取消「Highlight Current Line」 (*3)
- 顯示 -> 字型大小自行決定,字型建議不要更換
- 勾起「顯示行號」 (*4)
- 語法 -> 快速風格選擇Twilight (*5)
調教至此完成!事前準備差不多了,可以正式開始修煉囉~
檔案 -> 開新檔案 -> 原始碼 (快捷鍵CTRL+N)
就可以開啟一張全新純白
在這之上盡情揮灑吧!
- *1:此選項會偵測排版上「內縮比較好看」的語法,做「不同長度的內縮」;整體統一感會非常糟
- *2:程式不像數學式,不是依內外層次來分小、中、大括號,它們各有不同意義。為方便找配對的括號,或快速看出
是否有落單的可憐人括號數量是否正確,非常建議勾選此選項! - *3:會為遊標停留的那一行,畫上不同底色;不過這底色只適用一般白底風格
- *4:行號會佔用一些橫向空間,不過行號非常適合快速檢視行數,或者拿程式碼問人時拿來溝通使用,建議顯示。
- *5:會變成黑底,螢幕在顯示黑的時候不發光,顯示白的時候光最強;算是照顧眼睛用。
訂閱:
意見 (Atom)