2015/09/24

一名程式猿的心路歷程,一起來學寫程式吧!(八)

太好了,終於畫出來了,那麼,應該要開始讓它動吧。

只是,要怎麼讓這張圖動呢?

以我當時的程式水平,要讓這張圖動起來似乎有很大的難度,更慘的是,老師不願意回頭再講述以前講過我語法。

「老師,之前講的語法能不能再重講一次?」

「同學,都快學期末了,範圍很大,你指的是哪一個語法?」老師苦笑著問。

「像 IF, FOR 這一類的語法能不能再重講一次?」看著筆記中殘缺的內容,我弱弱地問。

「這個要重講又要浪費一堂課,你直接問同學好了,這兩個語法很簡單,我必須顧及其它資質比較好的同學。」

老師還沒回答完,就有另一個聲音出現。


「喂!你不要再問了!讓老師好好上課!你讓我們浪費了很多時間!」一名同學叫嚷起來,其他同學也跟著幫腔。


不為別的,只有在老師專心授課,他們才能開機玩遊戲。

「同學,現在才臨時抱佛腳太晚了,趕快問同學吧。」 老師說完後,無情地轉身開始上課,接著便聽到許多開機的聲音……


//-------------------------------------


唉,現在想想,我還真的是選錯科系,一個對修理汽車沒興趣的人,卻逼得硬要讀修理汽車的專業,而且沒有任何轉圜的餘地,不過,自己成績不佳造成不良後果也是事實。


在抱怨年輕人無法學以致用前,何不想想,成績這件事不知道害死多少迷途的莘莘學子!

其實,嚴格來說,教育體系還是有給放牛班學生一點機會,這個機會就是:


「轉學考」



然而,在當時,轉學(系)考的資格條件是這樣的:

當前科系的一年級上下學期及二年級上學期的學期成績平均達85分,始有資格參加轉學(系)考試。

轉學(系)考試成績平均成績達75分以上,始得進行轉學。

如果我仍是以汽車修護科的專業科目為基本的轉「學」考試,或許我還有一點機會。

但在一個沒興趣的情況下,連轉「系」考試都要按照這個規定進行,這對於找出自身興趣的學生……



【我如果能達到這個標凖,我又何苦轉系呢?】


然而,當時得知轉學考日期時,二年級上學期都快過完了,真的是完了……

教育制度上的缺陷就暫時不表,眼下程式的進度持續卡關中。

由於整學期沒有考試,彼此並不了解對方的程式專業度如何,而且,大家都是第一次學程式語言,又跟修理汽車無關,想著想著,便放棄問同學的念頭。



事實是:
自己太孤僻
也或許是這樣的心態
圖片來源

當天晚上,我依舊對著眼前的黑畫面發呆。

怎麼辦,程式作業就要開天窗了,這樣沒用到任何程式技法的作業,可以交差嗎?

那,加個顏色好了?
已經有顏色了……

if,  for 就算會用,短時間也不可能活用在這個作業上,是不是該放棄學通這兩個語法?




兩個小時過去,我仍然呆坐在電腦前。


算了,就這樣交差吧!

對著負氣的自己,翻上床,苦腦著想不出來的作業。

動畫到底該怎麼做?

不就是可動玩偶動一動,換個位置就可以?

那麼,哆啦 a 夢的動畫是怎麼製成的?

不就是一張一張移動,像快速翻頁一樣……

像快速翻頁一樣……
像快速翻頁一樣……
像快速翻頁一樣……





也就是說,就算沒有使用到程式技術,也有機會做出動畫嗎!

但是…翻頁,要怎麼做?

如果是翻頁動畫,我會怎麼做?
第一頁空白,畫上第一個圖,第二頁……




















「還不起床!又要遲到了!」


老媽這一吼讓我瞬間驚醒,原來已經早上了!



有了周公的指點,瞬間讓我矛塞頓開,當晚我的作業進度便有大幅躍進。

進度持續進行中,終於到了作業審判日,這時,我的作業結果如下:




結果是出來了,但好像有點奇怪

在解釋成品之前,我必須先說明一下這個成品的想法和流程。

  1. 先畫出敵方(大圓球),再畫出我方(人偶)
  2. 清空畫面
  3. 敵方步進(人工X座標+n),畫出敵方(大圓球),再畫出我方(人偶)
  4. 清空畫面
  5. 敵方步進(人工X座標+n),畫出敵方(大圓球),再畫出我方(人偶)
  6. 清空畫面 
  7. 敵方步進(人工X座標+n),畫出敵方(大圓球),再畫出我方(人偶)
  8. 清空畫面
  9. 敵方步進(人工X座標+n),畫出敵方(大圓球),再畫出我方(人偶)
  10. 清空畫面
  11. 敵方步進(人工X座標+n),畫出敵方(大圓球),步進我方手臂,步進我方劍,再畫出我方(人偶)
  12. 清空畫面
  13. 敵方步進(人工X座標+n),畫出敵方(大圓球),步進我方手臂,步進我方劍,再畫出我方(人偶)
  14. 清空畫面
  15. 敵方步進(人工X座標+n),畫出敵方(大圓球),步進我方手臂,步進我方劍,再畫出我方(人偶)
  16. 清空畫面
  17. 敵方步進(人工X座標+n),畫出敵方(大圓球),步進我方手臂,步進我方劍,再畫出我方(人偶)
  18. 清空畫面
流程大致上是以此類推。
但因為步進手臂和劍的部份我實在是算不出來,最後還是捨棄舉劍和砍劈的動畫內容。

原先設定理想的結果是:
大圓球移動後,靠近我方,最後消失不見。


至於為什麼不見…………就再找理由解釋吧。


但,事實上呈現的結果,大圓球是消失了,但我方的頭怎麼掉了!


這下徹底無語了,程式結果出現了我無法解釋的現象。




//----------------------------------------




我的作業要怎麼交差呢?


抱著不安的心情,我提前進了資訊教室,向班長先行展示結果。


「這比不動還糟糕啊!」

「對不起,我也不知道怎麼會這樣。但我的程式碼並沒有……」我急忙解釋,但又被打斷。

「離上課還有一點時間,趁這個時間快點改吧。」


出乎意料的,班長仍是信任著我。但是……

「我盡量,但我無法保證……」

我埋頭繼續進行程式碼的檢查。







「好了,從第一組開始審查。哪一組要來當第一組的?分數會比較高哦!」



一直到老師宣布作業開始審查時,我還是沒辦法解決這個問題。




「老師!就從我們這組開始吧!」


這聲音非常宏亮,我抬起頭,看是哪一組這麼勇猛,敢接受第一個評分。

「班長這組要以身做則啦!當然要從我們這一組開始!」

「原來是班長啊~」
「原來是班長啊~」
「原來是班長啊~」


咦咦咦~~~~~~~~~!為什麼是班長你啊!


「那個都不會修汽車的,肯定連程式都不會寫啦!」

一名同學嘲諷技能全開,其它同學也跟著鼓噪起來。

「我們這組的作業肯定是第一名的啦!」班長突然跳到椅子上大聲反駁。


我說啊……這番的自信到底是打哪來的?原作者都沒信心了說。


「那就從你們這組開始吧,班長你也快點坐下。」老師不耐地指示班長別鬧了。

「好啦!那我們要開機了!再等我們一下!」班長也悻悻然的坐下。

 只是經過這番折騰,所有同學都好奇的圍過來看,到底是做出了什麼碗糕作業。

「誒,你改好了沒有?」班長一坐下,馬上靠過來小聲的問。
「沒辦法,我改不出來!」
「沒改出來!?你搞什麼鬼啊!」

「你們兩個在那邊唧唧吱吱的講什麼東西,作業是開好了沒?」老師不耐地催促著。


「好了好了!一切準備就緒了!」


就在我開啟了程式碼的內容時,眾人頓時地安靜下來,這個時候,就算一顆銅板掉到地上,也會聽得十分清楚。

「你是不是找槍手幫你寫作業!」
「怎麼會寫這麼多行!」
「以為拆得很多行就算厲害了嗎!」

「吵什麼吵啊,你們這群上課都在偷偷玩的學生,怎麼跟我們班長這組模範組比啊!」

那個……班長你好像也玩得很開心吧。


「別吵了,就執行看看吧。」

聽到老師這樣說,我也沒辦法了,只能按下命運的「Enter」鍵,展示這個不願面對的真相。


話說,動畫出現的那一瞬間,全班一致發出了:
「Wow~~~~」的聲音。

接著大家便沉默了。
















「為什麼頭會掉出來啊!」
「劍咧!怎麼都不會動!」
「你在寫個什麼東西啊!」
「一堆殘影,這算作業嗎!」
「成績簿都拿出來了,你卻讓我看這個!」

所謂的民怨沸騰,大概就是這麼一回事吧,我呆坐在椅子上,承受同學無情的抨擊。

「你傻了啊!頭往後是在閃躲,閃太快產生的殘影。你沒看到球不見啦!那是揮劍太快了。那一瞬間球就被消滅了啊!」

班長突然解圍,這時的班長身上彷彿發出了聖光般地光芒,我都快拜下去了說。













































剛才同學們你一言我一語吵成一團,一直到大家意識到老師還沒評論時,才慢慢安靜下來。




「說一下你的設計方式吧。」老師終於開口了,安靜的同學併息等待著我的回答。

「唔……一定要嗎?我沒有用到很深的指令碼耶……」

「你不說明,我怎麼知道裡面的指令碼是不是你寫的。」

「……那麼,我除了圓形之外,其它的四角和多邊形,都是使用線條指令一筆一筆比對座標位置調出來的。步進的地方是使用清除畫面指令之後按原程式碼複製、貼上,並且微調一下座標後再繪出來,只不過殘影的出………」

「 好了。就這樣。」老師沒讓我繼續說完,便馬上在成績本上寫下分數。

老師寫好成績後,便對著我說:

「老師跟你說,你的作業我不會用到300行來寫。」

「啊?那要怎麼做?」 老師看著我滿是疑惑的表情,搖搖頭,嘆了口氣。

「如果我是你,我不會用你的做法,我會直接使用三角形和四方形的函式來繪製你的人偶圖案。」

我腦袋還沒轉過來,這時,老師接著說:


「移動的功能,我也會使用FOR迴圈完成,簡單的說,你的作業,我只要50行內就可以完成。」

「可是老師,三角形和四角形你沒有寫啊!」我快速翻了一下筆記,邊確認邊向老師提問。

「你又沒來問我。」

「還有FOR和IF迴圈,我學不會,上次有請老師再教一次……」

「那是你的問題,不就跟你說要去問同學,同學這麼多,一定有人會的。」

「呃……那殘影的問題,請問有方法解決嗎?」

老師顯得不耐,正眼都不瞧一眼就轉身往下一組的方向走去。

「那很簡單的,你回去想一下就通了。」

「可是,我想很久了……」


「你是有完沒完!其他人還在等打分數啦!」我還想再提問,但同學怕我問題沒完沒了,便很用力地制止了我的提問。

我想老師應該也同意這名同學的說法,也就隨口說出:「下課再來問我吧。」

「誒誒誒!老師啊!那我們這組是不是全班最高分的啦!」班長高分貝地向老師喊話,想再確定我們這組的成績。

「就以你們這組為評分基準了。」

老師這句話沒直接回答班長,但至少有合格,班長也開心地去湊一下其他同學的熱鬧。

我看了我的作業螢幕發呆,直到……



老師走到講台,敲了敲手上的成績本。

「好了,這學期的資訊課就到此為止。離下課還有30分鐘,同學打鐘離開前,記得把電腦關機,另外,最後強調,不要去動BIOS開機密碼。」

說完,老師便準備離開教室了。我立馬追在他的後面,跟出教室。

「老師!請問!我作業的殘影問題應該要怎麼解決?」

老師轉過頭,想都沒有想,就直接對我說:

「同學,電腦課不是你的專業科目,回去把你的專業修好比較實在,以後有興趣再把你的作業打開看一看,你會知道問題在哪邊的。」



老師講完頭也不回地走下樓去。

我無話可說,心裡頓時浮現一個想法:
















考上汽車修護科,就註定是個悲劇了吧?







我們下回繼續 ^_^

一起來學寫程式吧~

4 則留言:

  1. DELPHI大匠,你的文章寫的很有趣,不過
    太多會讓我以為中間有圖片,我以為我的Chrome壞了,讀不到你中間的圖片 ^_^

    回覆刪除
  2. 這個留言版有點狀況,我是指太多的"BR",不過它認定是HTML就刪掉了,我是指太多的BR讓我以中間有圖片,在那找了半天 ^_^

    回覆刪除