GX TF3
 
已經五個月沒有寫商業遊戲的玩後感了
今天來寫對PSP上的「遊戲王GX Tag Force 3」的玩後感
只能說...太失望了
這款遊戲本來說9月25日就要發售,卻因故延期了兩個月
發售日改成了11月27日
延期是無所謂,只要遊戲有做好就沒關係
但...我只能用誇張形容這次的遊戲
 
先說遊戲的畫面吧,玩過TF2的人一定會覺得非常熟悉
因為畫面幾乎沒有任何改變啊
除了新卡片跟新人物的CG外,地圖完全沒有變動
戰鬥界面也一模一樣(只記得猜拳背景改成紅色而已)
我只能說...好省工啊
 
劇情方面,這次劇情還是發生在學校(因為這樣就不用畫異次元世界地圖吧)
十代已經跟優貝爾合體了
以前人物集滿一顆愛心(好感度)會有劇情事件
集滿八顆愛心人物就破關
但這次大幅縮減,把八顆愛心變成四顆愛心
只要有兩顆愛心就能夠改同伴的牌組
所以某些人的劇情少了許多
不過能玩的人數有變多(早已女麗竟然有四種型態)
所以劇情量還算是可以
順便一提,第一個同伴千萬不要選十代
因為十代的第一個劇情竟然是Lv10的霸王十代
沒有限制卡的話很容易就會被秒殺
建議選早已女麗,她用的光道牌組還蠻強勢的
因為跟哪個人物組隊可以抽相對應的的卡包
組個光道牌可以壓過不少電腦(注意:光道牌最怕攻擊制限牌組)
對了,由於每天早上同伴只會講一次話
所以如果每天都把愛心集滿的話
每天早上都會發生劇情事件,同伴就不會說可以改牌
這樣難度會提升不少
像是十代的牌組竟然沒有放「未來融合」跟「封印的黃金櫃」
光放個「奇蹟融合」有什麼用啊(他又沒有Power Wall這種狂丟自己牌組的卡)
 
系統方面,跟畫面一樣沒什麼變動
跟TF2一樣是只要在同一區域內打多少場,時間都不會變晚
小遊戲也沒有加新的
地上的卡片的位置跟內容有變動過
抽牌麵包現在從500DP減少為200DP,而且自己吃掉的話還可以得到卡片
因為集滿愛心的難度"似乎"變少了
只要跟同伴組隊打等級高的對手,三~四次就能集滿愛心
所以不太需要抽麵包給同伴吃來增加好感度了
AI部分,我覺得有比之前好一點
像是神聖彗星不會隨隨便便就開了(弱小的怪電腦不會開)
不過也有比較笨的地方
像是十代明明手中有兩張誠實跟一張稜鏡人,對手有攻擊力較高的怪的情況
十代竟然把稜鏡人裡側守備而不是攻擊+誠實效果
好幾次因為這樣輸掉
電腦的誠實似乎會等到發了會勝利才會使用
不知道該說好還是不好
 
限制卡表部分有點糟糕
明明是11月27日發售的,但限制卡表竟然是2008年3月而不是9月的
早埋、渾沌黑魔導之類的還是限制卡
電腦的牌組當然也有這些限制卡
雖然限制卡表是可以自己下載的
但就算下載了最新禁卡表,電腦的牌組也不會變動
等於變相增加自己的難度...
可能是因為電腦的牌組內容很早就設定好了
兩個月沒辦法把禁卡改光
 
不過說實在的,這些都只是小問題
最大的問題是...遊戲竟然會LAG!
只要到電腦的主要階段,他都會一直思考到畫面斷斷續續的
如果對方牌很多的話會思考更久,消磨玩家的耐心
這是非常非常嚴重的事情
這種問題只要測試一下就能發現,我不相信他們全無察覺
明明還延了兩個月發售,卻還是拿瑕疵品過來
KONAMI這樣對了起我們這些玩家嗎?
網路上是有解法啦,就是按R鍵進PSP的選項把CPU Speed調成333
但這種方法是治標不治本
因為調高CPU Speed會讓電池加速耗損
而且正版的PSP哪來的CPU Speed可以調啊!
 
這片還是有好的地方啦,PSP的Tag Force的特點就是會出很多原創卡片
像是最後BOSS藤原優介的無屬性牌組
還有在動畫常被惡搞的「狂戰士之魂」(這張竟然是禁卡...)
收錄到602(CSOC),總卡片數達到有史以來最多的3501張
可惜沒有收錄11月9日出的603(CRMS)
少了「魔知青蛙」對於我的青蛙牌組的威力有降了不少...
做個總結,如果你是對遊戲王有愛的玩家
那這片遊戲王GX Tag Force 3是值得你買的
如果你買這片遊戲是為了體驗它的劇情的話,那...還是算了...
在破關之前就會被LAG給磨光耐心了=__="
如果手頭緊又想找人對戰的話,其實可以試試日本網頁對戰版的遊戲王
其實也是個不錯的選擇

蕭雲 發表在 痞客邦 留言(1) 人氣()

Sonny 2_f.jpg

從一月初到現在等了將近一年的時間,Sonny RPG總算推出二代了
沒玩過的人可能不知道,這個Flash小遊戲可說是神作
在Armor Games跟Kongregate都是玩家評分有史以來最高分的作品
二代更是推出幾個小時在Armor Games的評分就飆到9.7(滿分10分)
也是第一個讓我還沒破關就來介紹的遊戲
喜歡RPG類型的玩家,趕緊來看Sonny 2有什麼吸引人的地方吧
遊戲網頁(Armor Games)
Sonny是一款Flash製成的RPG
遊戲方式其實就是標準的劇情->戰鬥->商店->劇情...循環
但其熱血的戰鬥、多變的技能讓可玩性提高不少
加上劇情、畫面、音樂各部份都表現的很好
因此一代大受好評,製作團隊Krin Lab也著手製作二代
就是現在介紹的這款Sonny 2
目前Sonny 2只推出幾個小時,所以我先大致介紹一下跟一代的不同點
1. 職業從以前的四種改成三種
(不要問我這些職業有什麼差別,我英文很爛="=)
2. 地圖從以前的4個改成5個(一代的Zone 4是Bonus關卡)
3. 可在戰鬥時控制隊友戰鬥方向(主攻擊~主防禦)
4. 可以設定三種難度(設Easy的話真的很Easy)
5. 增加單機PvP模式(還沒試過)
這次的技能部分還是一樣28個
不過每個職業都有各自的技能樹
所以這次作者製作的技能比以前多
另外,二代技能升級比一代實用很多(一代很多技能升級反而不划算)
原本的普通攻擊沒什麼人會放
現在普通攻擊改成以170%的力量攻擊+回復50點Focus
所以就不太需要擔心以前沒Focus只能等死的情況了
(註:這是職業選Biological的情況)
一開始會送你五點技能點
我當然是拿去點以前的Destroyer系技能啦
此外,遊戲也修改了一些小細節
像是以前升級後剩下的經驗會捨去
(假設已有90%經驗,加了20%升級後,經驗又回到0%,損失了10%)
現在已經不會了,得到多少就是多少
還有屬性點改成等級越高,加的越多
也比以前升級只能加一點好
 
劇情是從一連串的對話開始的
由於沒有字幕所以我也不太了解在說什麼
似乎是說一名女子搶走了Sonny手中的錄音帶
所以他們開始一連串的追逐...
遊戲的音樂部分跟一代一樣是這位David先生做的
他的部落格旁邊有試聽的播放器
我覺得頗為好聽,戰鬥音樂也都很激昂
美工部分圖案比以前細緻多了
而且戰鬥動作不只有以前的用力砸下去了
像是Vicious Strike就是從下往上斬的動畫
戰鬥的速度跟一代的patch 4.1差不多
把畫質改成Low,FPS可以跑到20上下
值得一提的是這次的Training Fight會隨著等級高低而不同喔
總算不用每次都打等級低的敵人來練功了^^
其他關於技能的部分,可以參考小品誌對Sonny 2的介紹
2008/12/20 0:30 補充
這個遊戲我已經破關了,這次關卡總共有11+14+10+11+14=60個
不過有幾關不用打贏敵人,只要說個話就結束了
所以實際關卡只有5X個
後期對戰對話明顯減少,是頗為可惜的一點
作者說之後還會增加新地圖跟新功能,大家就拭目以待吧
二代的過場動畫都有配音,但是完全沒有字幕
所以劇情部分我不是很了解
唯一清楚的是...劇情到最後還是沒有說那捲錄音帶的內容是什麼"orz
順便介紹一下一個簡單通關的打法
這個方法要選擇Biological才有效
先挑一把力量高的武器(推薦Emeraid Death,力量+186)
然後把Integrity這個技能點到四級
這樣每回合就可以回復25點Focus
戰鬥時先使用Destroy技能(用420%力量攻擊敵人,花費100 Focus)
因為Integrity的關係,會剩下25 Focus
下回合使用Leading Strike(用170%力量攻擊敵人並回復50 Focus)
攻擊後變成25+50+25=100 Focus
然後又可以用威力超高的Destroy了
Destroy後期打下去都是3000點傷害起跳的,Leading Strike威力也不差
只要這樣一直交替使用很快就能夠打贏了
還有一種打法是使用Predator Form,可讓Sonny變身
HP-15%,傷害+10%,物防+25%,還有每回合回滿Focus的效果
但由於Destroy必須冷卻一回合
所以就算變了身也沒辦法連用Destroy
再加上變身的CD足足有十四回合,實用性我覺得不太高...
最後附上我破關的裝備表
金錢根本沒有花的必要...
 

蕭雲 發表在 痞客邦 留言(14) 人氣()

13_01.gif
嗯...又過了一個禮拜沒發文的日子
雖然這並不是最久的一次(以前還有一個月只發文五篇的記錄)
但隔這麼久發文,還真是不自在~"~
這篇筆記是補上上禮拜的課程
這禮拜四上完,之後連放兩次假,接著就要開始期末考了
星期四的課真是吃虧...
‧pipe要fork process(複製一個程序)
需要的resource較多,一般不建議使用pipe open/close
‧老師常用的文字編輯軟體
1. PnotePad
2. SciTE - 特點是可以直接執行PHP程式,只要按下[Tools]-[Go]
我個人比較喜歡用PsPad啦,雖然真的會用到的時機不多
記事本就很好用了
‧uname -a - 顯示Linux版本資訊
‧任何時間寫入file_descriptor[1]的資料可以從file_descriptor[0]讀回來
‧pipe1
這是簡單的pipe範例
使用pipe記得要先引用#include <unistd.h>
順便一提,如果把file_pipes的0跟1互換,會寫入-1 bytes
但是不會顯示出錯誤
‧pipe2
看起來結果一樣,但其實這個程式是由父process寫入,子process讀取
我稍微修改了範例,使用getpid()顯示process id即可看出差異
‧pipe3
顯示出file_pipes可以看到
讀取資料是從fd 3,寫入資料則是fd 4(fd = file descriptor)
因為fd 0、1、2被用掉了,所以新的從3、4開始用
0、1、2是標準輸入、標準輸出、標準錯誤
‧在程式裡執行其他程式的語法
execl(執行程式檔, 給他的名字, 傳過去的fd, Null pointer);
最後一個一定要給他null pointer喔
‧如果pipe在不同process必須分別處理他,很麻煩
dup - 電腦給你目前最小可以用的fd
dup2 - 我自己給你最小的fd
‧pipe5
Ln21: close(0);  關掉標準輸入
Ln22: dup(file_pipes[0]); - 給他目前最小的可以用的file descriptor
原本應該要從鍵盤去讀取的
‧輸入/dev;ll
發現權限的第一個字母是c,代表他是字元設備
其他代表 d:目錄、s:socket、p:pipe
(好像寫過很多次這個了)
‧fifo1
產生pipe檔案,成功就回傳0
語法:mkfifo my_fifo(my_fifo是你想要取的檔名)
程式的執行方法:
先輸入cat < /tmp/my_fifo
他會將畫面停在那個地方
再到另一視窗輸入echo "Hello World" > /tmp/my_fifo
第一個視窗就會讀到字串了
如果在程式後面加上&,代表他是在背景執行
範例:cat < /tmp/my_fifo &
背景代表它會在記憶體內自行運行,無法直接控制它
除非用bg/fg等指令把它叫出來
詳細說明可以參考鳥哥的Linux私房菜關於&的介紹
‧jobs - 顯示目前有什麼程式在背景執行
如果沒有的話會什麼都不顯示
‧server & client
先輸入./server &讓他在背景執行
到另一個畫面輸入以下內容
for i in 1 2 3 4 5
do
./client &
done
它會自動執行五次,如下圖產生了5484~5488五個process
但是最後顯示出來的結果並不是照這個順序傳回來的
所以這個範例只是要告訴你...他不會照順序傳回來orz
第二次作業雖然我在打這篇的時候已經截止一個禮拜了
但還是稍微說一下要怎麼做
1. 用gets之類的語法讓使用者輸入指令
2. 找出|(管線),並將token分成左右兩邊
3. 產生pipe,再用fork將這個process一分為二
4. 父親把標準輸出關掉,執行左邊程式並dup給兒子
5. 兒子把標準輸入關掉,執行右邊程式並接收父親的訊息
第一點應該也可以改用程式後面接參數的方式
比方說./hw2 w "|" wc這樣
但|為什麼要用雙引號""包起來呢?
因為如果不包的話,它會把|當成是真的管線而不是一個參數

蕭雲 發表在 痞客邦 留言(0) 人氣()

login_1.png
動物大學的學生一定知道
學校的登入系統從原本的novell換成現在不知名的登入系統
聽說是因為錢的關係所以沒有續約
不過正所謂一分錢一分貨
新的登入系統比起以前實在是防護非常差
只不過是在Windows啟動時把這隻登入程式一起啟動
而這隻登入程式佔滿整個畫面又把自己設為最上層顯示
只有輸入學校的帳號密碼才能把這隻程式關掉
但由於執行此程式時已經開好機了
所以還是可以按下開始功能表等動作,只是看不到而已
也因此某位學長提供了一個非常簡單的破解法,就是taskkill指令
由於這個登入程式本身也會出現在處理程序的關係
所以我們先按下鍵盤的開始功能表鍵(就是那個視窗符號)
按下執行,並且輸入
taskkill /im RoomLogin.exe /f
請注意,如果你是用機房電腦的話
要把RoomLogin.exe改成RoomLoginCS.exe
這段期間由於登入程式的關係畫面都是被擋住的
所以請確定自己打的指令是完全正確的
當輸入完成後就可以按下Enter執行,登入程式就會自己關閉了
不過這樣一來,下方的開始功能表列也會一直顯示不出來
沒關係,請先按Ctrl+Alt+Del打開Winodws工作管理員
把explorer.exe結束處理程序(這就是下方的開始功能表列)
再選擇[檔案]-[新工作(執行)...],輸入explorer重新開啟
畫面就會完全正常了
用這種方法破解跟正式登入的差別在哪呢?
其實只差在正式登入有網路硬碟可用,破解則沒有
其他功能等等則完全相同
那既然大家都有帳號為何要破解?
那是因為已經沒有就學的同學,帳號會被消掉嘛
taskkill是用來結束程序的指令
在/im後面輸入欲關閉的程序名稱
/f則是強制關閉的意思
其他參數的部分,可以先輸入cmd進入命令提示字元
再輸入taskkill /?查看結果
這個方法只能適用在現在這種已經完全開啟OS的情況
像以前的novell,因為根本還沒有開啟完OS的關係
所以是完全無法破解的
即使設定讓他開機不要出現
因為學校有裝還原卡的緣故,所以此方法無效
順便再爆一個小料
一樓機房會在PM 9:29時出現一分鐘的倒數視窗
提醒您趕緊儲存檔案,因為將會強制關機
不過一樣只要按下Ctrl+Alt+Del開啟Windows工作管理員
把那個關機程式給強制關閉,他就不會出現了
只是...那時候工讀生也開始趕人了
所以就算能避免掉電腦關機,還是會被趕出機房^^"
此文主要目的並非破解,而是taskkill的教學應用罷了
謝謝提供此訊息的學長

蕭雲 發表在 痞客邦 留言(0) 人氣()

今天是資訊展的最後一天,我跟我爸在下午搭車前往世貿一館
回想起來,三年前為了寫計概報告而跟同學一同去資訊展
這次目的則是為了購買一台筆記型電腦(以下簡稱筆電)
因為家中對筆電的需求度有越來越高的趨勢,買台筆電會方便許多
當然,七年沒買新電腦也是原因之一
我跟我爸兩人搭捷運至市政府站
出站後看到有一台公車一直叫客說有到世貿一館
不過我們上車後才發現後面有台不用錢的接駁車,白花了車錢Orz
下次真的要想清楚再上車...
到了會場,人實在是多到寸步難行,擠得水洩不通
由於這次的主要目的是購買筆電,所以我們先逛了附近的筆電廠商
我爸對筆電的條件很多
1. CPU必須是64位元+雙核心
2. 不能太重
3. 散熱要好
4. 價錢得在25000元以下
我則是加上了一個條件
5. 顯示卡必須為獨立顯示卡(ATi or nVIDIA)
當然,除了以上條件外,其他配備是能好則好
只是這些條件就刷了大部份眼所及的筆電(大部分是達不到64位元雙核)
還有店是宣傳廣告跟實際電腦配備有差別的
廣告為64位元,實際上只有32位元,難怪會比較便宜
直到到了宏碁(acer)
銷售員很熱情的幫我們介紹了一台筆電
CPU是Core 2 duo 2.2GHz,顯示卡為ATi
免費幫我們升級至4G記憶體
而且現在打折只要24000元
不愧是最後一天,各種3C產品都有比傳單上更低價的優惠
但基於比價,我們還是先跟銷售員說再考慮
因為也只看了一家而已,也許還有更好的選擇也說不定
後來我們到了宏碁的對面-惠普(HP)
為什麼不看隔壁的華碩咧?因為華碩品質,以卵擊石嘛
其實我對惠普的記憶一直停留在製造印表機
現在才知道他是筆電的第二大廠
那位筆電的經銷商是大同公司,沒錯就是做電鍋的那個大同
我們開出了我們的條件後,他也立即推薦了一個筆電給我們
CPU為Core 2 duo 2.0GHz,顯示卡為nVIDIA GeForce 9200M-GS
現在現場價只要24900元
但那位銷售員還不死心,順便推薦一款機種給我們
兩款機種最大的差別,在能看數位電視跟無線網路支援802.11 Draft-N
這個Draft-N是目前最新的協定,據說傳輸範圍大一倍,速度也增快
對於筆電來說無線上網是個很重要的功能
但問題是Draft-N的協定要到2009年才會訂完...
售價28000元,但是附贈2000元的HiCash儲值卡
這個儲值卡他是說可以用在任何有刷卡的地方
所以實際價格可以算作26000元
不過這個機型卻有個致命的問題
就是他的CPU是Dual也就是32位元雙核
這對我們的條件來說可是大大的不符合
那位銷售員一直對我們說64位元只是噱頭
目前支援64位元的軟體只有Windows Vista
Vista的相容性都有問題了,換成64位元雙核問題更大
由於其他軟體都還不支援64位元CPU,所以32位元就很夠用了
還拿知識+有人貼的三年前的報導來給我們看...
或許有人會覺得奇怪
為什麼我們會執著於64位元CPU
因為64位元在幾年後也是有可能變成主流
有可能Windows 7出來後64位元CPU就開始流行了
別忘了Windows 3.1還只有16位元
出了Windows 95後市面上都是32位元的CPU
假設之後64位元變流行了,或是其他軟體支援了
難道還要我們再買一次筆電嗎?
總之對於HP的這兩台還是再考慮吧
後來又看了微星,他們的筆電特點是有獨立的數字鍵盤(因為螢幕比較寬的關係)
CPU雖是32位元,但只賣19800元
但眼尖會發現,他們的記憶體只有1GB
展示機竟然還很不怕死的跑Vista,導致畫面有點頓頓的
雖然他說要升級到2G只要20000元
但跟宏碁跟惠普比較就明顯矮了一截
因此連考慮都不用考慮了
好了,因為當時來世貿的時間比較晚,那些攤位只要六點鐘就收攤
所以我們能考慮的時間不多
以下我就三個筆電做個比較,大家可以思考一下自己會買哪種

蕭雲 發表在 痞客邦 留言(2) 人氣()

12-01.gif
竟然一個禮拜沒有寫網誌,我最近果然是太忙了=__=
這篇筆記也是拖了超過一個禮拜
原因是這次的課程內容越來越難,也越來越聽不懂
不知道該寫什麼才好...
接續第十一章的Process
‧pipeopen非最好方式,建議用dup
‧Makefile預設的編譯指令為cc
在Makefile中加一行CC = gcc可改用gcc編譯,聽說效果會比較好
‧system1、pexec老師上次已經講過了,不再重寫一遍
‧fork1
老師小改了裡面的程式碼為fork1a.c
多了顯示pid跟ppid數值
至於這有什麼用,老實說我忘了╮( ̄▽ ̄")╭
‧第二次作業可用exec,效果是運行某個Process並且不再返回
可輸入man exec查看關於他的說明
excelp的p代表path
excelv的v代表vector
‧pexec
因為不再返回,原本最後應該顯示done字樣沒有出來
如果把execlp改成execl,done就會出來了
因為那一行錯誤了......
老師將pexec修改,存成pexec1.c
分別是各種不同的execl的結果,請自行切換註解觀看
如下圖就是錯誤的畫面
想要顯示錯誤訊息的話,先#include <errno.h>
然後用變數errno顯示錯誤代碼,strerror(errno)顯示錯誤訊息
‧想知道某個系統指令放在哪裡的話,請打which
如which ps就會顯示放在/bin/ps
‧wait
講了一堆有的沒的疆屍...
修改wait.c成wait1.c
在程式中間加上system("ps ef");
狀態會顯示Z+,代表這個process目前是疆屍狀態(Zombine)
等到父親結束,兒子才會真正結束
wait完再顯示ps ef,發現就沒有zombine了
※如果在Xubuntu複製的東西無法貼到Windows的話
先在Windows隨便複製一個東西就可以了
‧upper
./upper < file.txt > aa - 將file.txt變大寫再輸出到aa
‧useupper
此程式其實只是把屬性傳到上面的upper這個程式而已
請自行參考程式碼
‧cat - >aaa - 將螢幕上輸入的字輸出到檔案中
-是標準輸入,cat -並不是開啟-這個檔案
而是可以在螢幕上打字輸入內容
缺點是不能回去修改上一行
結束輸入直接按Ctrl+C即可
===
ch 13 Pipes 管線
===
‧popen1
執行指令uname -a產生pipe,先把buffer清成0
將內容讀到read_fp,再用printf印出來
‧popen2
將寫出去的字串讓b程式去讀,此範例是呼叫od -c
‧od - 將檔案用八進位方式顯示
範例:od popen1.c
od -c popen1.c - 秀字元
‧xxd - 跟od類似,只是是以十六進位方式顯示
xxd -g 1 popen1.c - 以多少字元為一組
下圖就是每個字元都分開的樣子
也可以直接執行od跟xxd
在螢幕上打完字後,用Ctrl+D結束輸入
他會將你所打的字用八或十六進位顯示結果
第二次作業寫法跟pipe5類似,記得要參考

蕭雲 發表在 痞客邦 留言(2) 人氣()

11-01.gif
這篇是上星期的上課內容,我又拖了超過一個禮拜
因為不知為何這次上課速度非常快,教的東西又很雜
而我又很懶(毆)
不過不能再拖了,因為我現在能做的也只有讀書了
===
ch 10 除錯(Debugging)
===
《錯誤的種類》
Specification errors - 模型錯誤(如漏掉變數)
design error - 設計錯誤(沒有做好規劃)
coding error - 程式錯誤(寫程式寫錯了)
  -> dry running - 把所有組合放進去測試
我們這次要來學習使用electric fence來除錯
一般應該要先打upd更新軟體清單
不過因為這套軟體幾乎都不更新
所以可以直接輸入ins electric-fence安裝
(記得安裝軟體要先切換root權限)
‧debug1
執行完卻發現什麼東西都沒有顯示,不知道他有沒有錯
輸入diff debug1.c debug2.c比較一下兩個範例
原來debug2多了顯示出來的程式碼
 
‧debug2
顯示了sort完的結果,不過答案是錯的...
因為系統一次給你一個block
‧debug3
比較一下就知道,差別在data直接給他4k記憶體
《修改系統語言為英文》
輸入以下指令
export LC_ALL='POSIX' - 全部改成POSIX
export LANG="C"
輸入locale看設定有沒有被改掉吧
《Debug相關語法》
‧DEBUG mode才做
用#ifdef DEBUG跟#endif將程式包起來
#ifdef DEBUG
printf(“variable x has value = %d\n”, x);
#endif
‧程式執行時給他debug值(1~7)
#define BASIC_DEBUG 1
#define EXTRA_DEBUG 2
#define SUPER_DEBUG 4 - 超詳細的錯誤內容
#if (DEBUG & EXTRA_DEBUG) //如果是Extra Debug才顯示
printf...
#endif
‧如果沒有debug值就給他0
#ifndef DEBUG
#define DEBUG 0
#endif
‧如果覺得每次修改完都要重新compile很麻煩
改成這樣即可
if (debug) {
    sprintf(msg, ...)
    write_debug(msg)
}
記得編譯時加上-DDEBUG參數,才是真的在DEBUG喔
《用gdb來Debug》
Segmentation fault是記憶體配置問題,通常發生在pointer身上
輸入gdb debug3開始偵錯
以下是在gdb模式下的指令
‧help - 顯示所有說明
註:用Ctrl+L可將畫面消掉
‧run - 開始執行程式,發現第23行有問題
‧backtrace - 查看函數呼叫堆疊
‧print j - 顯示變數j內容
‧print a[$-1].key - $指的是上一次最後的值
‧list - 把目前中斷的點放在中間
再輸入list會繼續往下看
‧list 10 - 把第十行放在中間
‧quit - 離開
問題出在 j=4
printf a[4]  正確
printf a[5]  錯誤
所以問題出在5超過範圍(原來是超基本的錯誤...)
‧debug4
可以顯示但是結果還是錯了
‧break 20 - 設中斷點停在第20行
‧print a[0]@5 - 顯示陣列下五個內容
‧display a[0]@5 - 每次碰到中斷點就做後面的事
‧cont - 繼續執行
還不懂的話可以輸入info display、info break查看說明
寫了這麼多,請讓我說句中肯的話,一句就好
以上都是怪胎用的,深受古代程式餘毒
現在都21世紀了,誰還會慢慢輸入中斷點用這種方式debug啊
請改用CodeBlock(其實我比較喜歡輕巧的dev-c++)
《用CodeBlock來Debug》
先開啟empty專案
開啟完後,在專案上按右鍵選擇Add files...
增加ch10/debug4.c這個檔案
並請在Debug跟Release的按鈕上打勾再按OK
先編譯,然後在21行設定中斷點(行號上按一下出現紅點即可)
選擇功能表的[debug]-[debuggubg windows]-[watch]
開啟Debug視窗,可以看變數內容
選擇[debug]-[start]來用debug模式執行
不過因為那時候老師也是弄的2266...所以也弄不出什麼好的東西
我放棄用CodeBlock來偵錯了...orz
《其他Debug工具》
‧Lint
會詳細跟你說程式可能會有什麼問題
ins splint - 安裝lint
splint debug3.c - 執行方式
‧ctags
產生原始碼每個tag(函數或變數名)的所在位置
執行後會產生tags這個檔案,可參考每一個tag的資訊
不過好像只支援vim這個編輯器...
apt-cache search ctags - 如果你不知道ctags的安裝名稱,請先搜尋
ins exuberant-ctags - 安裝ctags
ctags *.c - 目錄下產生一個tags檔案
cat tags - 看其內容
老實說我覺得不是很好用...
‧chref
其實我不知道他是要幹嘛的,老師沒有說清楚
好像跟上面那個程式差不多
dpkg-reconfigure cxref - 第一次執行請先讓他自動設定
cxref *.c - 執行
‧cflow
分析你的程式,看程式那個地方花多少時間
gcc -pg -o debug4 debug4.c - 編譯
./debug4 - 執行程式後目錄下會產生gmon.out
gprof debug4 gmon.out -p - 產生統計表
gprof debug4 gmon.out -q - 產生相關聯的呼叫
《其他範例教學》
‧assert
原始碼內有一段
assert(x >= 0.0);
代表x沒達成>=0的條件就會印出訊息
編譯時多加Don't debug
gcc -o assert -DNDEBUG assert.c -lm
assert部分就不會執行,不用把assert砍掉
‧efence
gcc -o efence efence.c
./efence
不會顯示任何問題,但其實有問題
gcc -o efence efence.c -lefence
./efence
改用此行編譯再執行就會發現問題
‧checker
去執行也看似沒問題
apt-get install valgrind
valgrind --leak-check=yes -v ./checker
應該就會出現問題了(我懶的試了=__=)
===
ch 11 程序(Process)
===
ps - 可以顯示目前的東西
pstree - 樹狀顯示
pstree -p - 加上process id
ps -l 跟ls -l一樣會顯示很多資訊
ps -ef - 會發現所有程式都是由init產生的
他是所有程式的祖先
ps aux - 目前所有process的狀態是什麼
oclock & - 執行oclock這個程式
nice oclock & - 加了nice代表讓他在背景執行
‧diff system1.c system2.c
system1跟system2差別只在一個會等他跑完一個不會罷了
system1加上以下幾行
    int pid;
    pid = getpid();
    printf("My pid=%d\n",pid);
執行時有看到process id,程式執行完就沒了
‧pexec
一樣加上以下幾行,但printf那一行在前頭跟後面都加上來測試
    int pid;
    pid = getpid();
    printf("My pid=%d\n",pid);
執行後卻發現最後那個printf沒有顯示出來
因為pexec會把自己的process蓋掉
所以後面的成事都做不到了
‧fork
簡單講就是把自己一分為二(複製一份自己),下次上課有較詳細的內容
三個禮拜之後要交作業
其實作業最簡單的話只要寫三行就好
char cmd[256];
gets(cmd);
system(cmd);
不過老師規定不可以用system要用fork
請搜尋man exec、man fork、man dup查看說明

蕭雲 發表在 痞客邦 留言(4) 人氣()

Shore Siege_4.jpg

又隔好久沒有寫網誌了,今天來介紹一款手動的守城遊戲 Shore siege
雖然這遊戲也出過一段時間了,但它目前是Kongregate的限時挑戰項目
所以我就再次野人獻曝的推薦這個小遊戲囉
遊戲網頁
守城遊戲以我的判斷,一般有以下幾種類型
第一種是蓋好砲塔,防止怪物走到終點(ex. Flash Element TD、Bloons TD)
第二種是怪物會一直在路徑繞圈圈,必須讓怪物數量小於一定量(ex. Flash Circle TD)
第三種就是得手動用滑鼠操控來殺敵的守城(ex. Storm the House)
第四種是自動跟手動攻擊都有的守城類型(ex. Epic War)
本作是屬於第三種
不過這個遊戲難的地方在於,敵人的種類很多
而且每種敵人必須用不同的武器才能殺死
所以必須手腦並用,眼明手快選擇殺死怪物的武器才行
本作故事很簡單,有一艘海盜船受到攻擊而擱淺到岸邊
岸邊又出現一堆怪物要來攻擊
玩家要用滑鼠把那些怪物擊退,保護海盜船
一開始你只有釘子,敵人也只有史萊姆一種
將釘子拖曳上去並往左下刺下去就可打敗史萊姆(也會增加金錢)
到後面敵人種類會越來越多,就必須一一用相對應的武器打倒
敵人有以下幾種
1. 史萊姆,用釘子打破
2. 鳥,用鳥籠關起來,關起來時他腳下的炸彈會掉下引爆
3. 磁鐵,用滑鼠把他拋到外面
4. 紙怪,用火燒 
5. 火怪,用水澆熄
6. 紅色的怪物,只能用特殊武器消滅
7. 熱氣球,用釘子打破
順便一提,所有的怪物都可以用海盜、機槍、砲彈、飛鳥的砲彈攻擊
再介紹一下遊戲畫面下的按鈕(從左到右)
1. 醫療,恢復船隻HP(船隻有受傷才會出現,$500)
2. 子彈,補充海盜的槍(需購買海盜才會出現,$600)
3. 機槍,定點射擊(須購買機槍才會出現,$500)
4. 砲彈,爆炸攻擊(需購買大砲才會出現,一顆$20)
5. 針,可升級
6. 鳥籠
7. 火,可升級
8. 水,可升級
每過完一天,會出現購買的畫面
一樣再解釋一下各種意義(從上至下,從左至右)
1. 買海盜($4000),其實沒必要,他幫不上什麼忙
2. 訓練海盜($1000),也是沒什麼用
3. 買機槍($2000),他打不了多少又貴,別浪費錢了
4. 買大砲($2000),超划算,一次可殺四五隻怪,一定要買
5. 升級釘子($4000),升級後本來熱氣球要刺四下變成只要刺一下
6. 升級火焰($2000),升級後不用0.1秒就能燒死紙怪
7. 升級水($2000),同上
8. 船的最大HP+10($1000),一般來說不會受傷,別浪費錢
9. 修復船($5000),共需修10次,修完後即破關
雖然聽起來很難,但其實遊戲後期是很簡單的
怪物通常是一群群來的,所以只要一發砲彈就能解決大部分的怪物
這個小遊戲值得推薦的原因,在於它遊戲時間真的很短
只要10分鐘左右就可以破關,不會因為遊戲而耽誤工作
遊戲比的是破關天數,一般來說如果三種升級武器都買的話,至少要12天才能破關
不過這遊戲底下的挑戰項目規定要11天以內
想11天就破關的話,就不能升級釘子跟火焰(省下$6000)
不過經我測試的結果,如果連水都不要升級的話,還能夠第10天就破關喔
限時挑戰:殺死200個敵人(得到卡片 Juju, the Shaman)
easy:殺死100個敵人(5點)
normal:破關(15點)
hard:11天以內破關(30點)

蕭雲 發表在 痞客邦 留言(2) 人氣()

上個禮拜星光四進行了評審指定曲(好啦,我知道很多人不看星光了)
很具爭議性的夏政峰不但咬字不清楚而且還破音
卻受到小玲的喜愛,還說他唱歌有進步
而許久不見的小胖在最後一刻多按一分,讓他以16分過關
令許多觀眾跌破眼鏡,大喊評審不公...(包括我)
說實在話,當時我聽到夏政峰的歌聲,就心想他一定不會過關
但最後在小胖跟小玲的聯手之下,夏政峰還是過關了
最後淘汰了平常表現不錯的梁一貞
真的讓我覺得小胖小玲還是別來幫評審了
有愛就給高分,咬字跟破音都沒關係
想當初方志友才十幾強就被罵得要死
夏政峰也是每集被罵卻還能撐到現在
是評審的耳朵有問題還是我的耳朵有問題?
夏政峰 - 陽光宅男(請先有心理準備)


幸好久違黃小琥老師只給了兩分,而且講評不只犀利又很中肯
「你咬字不清楚,然後又破音,那只是台風比較好,長的可愛,這可以走多久?
自己想一想。」

這番話真是講到我的心坎裡了
音準、音色、咬字都不好,音域又窄,外型我也沒感覺
沒有任何能為歌手應該要有的條件,早該被淘汰了
卻因為小玲力保的關係能留到現在
黃韻玲是想把整個星光僅存的觀眾給搞掉嗎?
因此,開始有PTT鄉民去惡搞夏政峰的維基百科條目
當然又有夏太太開始來護航,形成一股編輯戰
而且到現在還在持續著,每幾分鐘重新整理的結果都不一樣喔
如果想比較每篇修改的內容的話,可以點選上方的[歷史]連結
然後選擇兩個版本,按下"比較被選版本"
或是直接點選此處,上方紅字會列出修改的部分
想逐一觀看,直接點選"下一版本"即可
為了避免有心人士刪掉歷史記錄
因此我把比較好笑的內容備份在此處吧(八點的備份)
補充:目前該頁已經被半保護了,戰爭也就告一段落了
---
夏政峰
超級星光大道第四屆參賽者,是個來自台東縣的原住民,目前已入社會,並在自家工作,在超級星光大道表現普普,看似善舞,實際上唱歌技巧更加驚人。咬字精準,以字字遊走飄渺間的音準著稱偶有令人震驚的爆破音,發力時機唐突常常令人無法猜透,人稱星光孔慶祥。評審之一的黃韻玲對其明星特質愛憐不已,音色也激賞有加,讚夏政峰一再「進步」,可謂星光四選手中起跑點最落後,但進步幅度最大的參賽者,目前為內定冠軍人選之一
暱稱:夏滷蛋
特色:咬字不清、引起注重歌聲的評審觀眾反彈、只有可愛不行嗎?
喜歡的:阿信、黃韻玲
關於我:閒閒沒事 就跟朋友喝酒 無聊沒事 就跟朋友練舞、吃吃滷蛋
夢想:開一家滷蛋專賣店
特殊專長:勾引熟女,含滷蛋唱歌
---
我承認看到星光孔慶祥的時候我笑了XD

蕭雲 發表在 痞客邦 留言(6) 人氣()

MSN_del_1.gif
我還真是孤陋寡聞,到現在才知道MSN 9.0可以查看誰把你刪除跟封鎖
想試試看的話建議趕快測試,不知道正式版時會不會改掉...
補充:根據各位專業人士指正,原來這個功能在8.0以後就有了
故把標題中的MSN 9.0改成MSN,謝謝大家
[ 用MSN查看誰把你刪除 ]

方法一:
請先點進[選項]-[隱私]-[連絡人清單]-[檢視]
就可以看到有誰把你加入連絡人
只要比對你有加入他但是他沒有加入你
就可知道他把你刪除了
方法二:
第一個方法要慢慢比對實在太慢,有沒有辦法直接看對方有沒有刪除你呢?
有的,同樣在[選項]-[隱私]-[允許和封鎖清單]
在連絡人上按右鍵,如果對方沒有刪除你的話,刪除選項是灰色的
像之前那位洪同學,他的刪除按鈕是可以用的
所以很確定他已經把我刪除了
(其實我一直都只有封鎖而沒有刪除他,他還真狠心啊)
 
[ 用MSN查看誰把你封鎖 ]
封鎖跟刪除有點不同,封鎖是你看的到他他看不到你
刪除是你看不到他他看的到你
所以要跟某人斷絕來往的話一般都是封鎖+刪除
首先,我們在連絡人上頭按右鍵,選擇[檢視基本資料]
 
這時會到對方的Windows Live Space
選擇左下的[檢視詳細基本資料]
 
這是正常的情況,下方應該還會有別的資訊
如果他把你封鎖的話,你就看不到他的Messenger顯示狀態
下面直接接廣告
所以我很確定,洪同學把我封鎖+刪除了
不過這個方法對於不公開個人資料的人會失效
所以建議還是跟檢查刪除部分做配合
如果對方刪除你又很久沒上線,才代表他封鎖你了
[ MSN出現錯誤碼80072745 ]
因為有時候我都會發生這種事,所以順便記起來
據說是代理伺服器的問題
解決法:
進入c:\windows\system32\drivers\etc\這個目錄
用記事本打開hosts這個檔案(注意,沒有副檔名)
在最後加上這兩行
65.54.239.80 messenger.hotmail.com
65.54.239.80 dp.msnmessenger.akadns.net
然後儲存,重新登入,應該就可以登入進去了

蕭雲 發表在 痞客邦 留言(48) 人氣()

zilch_1.jpg

最近有感自己的運氣實在太差
來玩了玩這個比技巧跟運氣的遊戲 Zilch
結果發現...自己的運氣真的很差=__=||
遊戲網頁
遊戲玩法:
一開始畫面左邊有六個骰子,按下ROLL開始擲骰子
如果擲出來有特殊的排列方法(像X個骰子同點數,如三個1)
骰子右邊會有目前擲到排列法的按鈕
當點下去後會將分數存進Bank
然後接著再按ROLL開始下一輪
但已經被存入Bank的骰子則無法繼續擲
比方說第一張圖若我按下3 ONES再擲
就只有三個骰子繼續擲了
另外,若有出現排列一定要選一個才能繼續擲
當你Bank存到300分以上時
可以按下Bank,將分數加到記錄中
遊戲比的是目標分數,看誰先到10000分
若有一方到了10000分,則另一方能最後擲一次,擲完就看比數
比方說我先擲到10500分,結果電腦最後擲擲到10800分
就算是電腦贏了(我連兩次被電腦最後一把逆轉...)
骰子要繼續投有一個條件,就是一定要出現排列
如果是15,只要出現一個就算特殊排列
但其他點數就必須出現三個以上才算是特殊排列(如三個2)
當六個骰子都取到分數的話
畫面上會出現FREE ROLL,可以讓你再重新擲一次
但有一點很重要,如果擲出來的骰子沒有任何排列
這一局存在Bank的分數會歸零!
所以要繼續擲下去賺高點數,還是保險只賺一點分數就儲存
就看你的決定了
不過倒是不用擔心第一次擲出去就沒出現任何1或5
因為六顆骰子時有特別優惠
就算出現NOTHING,也是一個特殊排列法(500分)
可以讓你再重新擲一次
但是若已經吃掉一個骰子,擲五顆以下的話
沒擲出排列就是所謂的Zilch(無),換對方擲
而且要是連三次出現Zilch的話,會扣500分!
所以別為了衝高分數一直擲出Zilch了
簡單的電腦有一點點笨,他會很努力的要衝高分數
所以就算得到高分數也會繼續擲下去,最後就出現Zilch
但中等的電腦不知道是運氣太好還是怎樣
一次擲出千點以上根本是家常便飯
所以我到現在竟然還沒贏過中等的電腦...
對了,這遊戲跟大刀Plus一樣有很多的Awards
只要有玩到該狀況就可以取得
比方說一回合得到X000點以上,或是連勝三場等等
基本上是玩得越久能得到的Awards越多
還有,所有Awards只有跟電腦玩才能得到!
所有Awards列表
最後一樣來介紹這次Kongregate的挑戰項目
限時挑戰:贏三場(得到卡片 Phoebe, the Lasher)
easy:取得10000分(5點)
medium:一回合取得3000分以上(15點)
hard:取得100個Awards(30點)

蕭雲 發表在 痞客邦 留言(3) 人氣()

一轉眼又一個禮拜沒寫網誌了
或許是因為最近最近接二連三的傷心事給我打擊吧
上禮拜的Linux課程終於開始期中考
期中考的題目算是簡單,但...第六題我卻怎麼寫都輸出錯的結果
看來考前沒有把所有練習都做過一次還是不太行>__<
以下是這次期中考的題目,由於成績還沒出來
所以這次我的答案就不放上來了,這對很多人來說應該很容易吧
-----
考試時間:約兩個小時
可以翻書、上網,但嚴禁作弊(交談或交換答案等等)
1. 請上網到課程網頁下載 linuxp-mid.tar.gz,並將下載的檔案,
解開到自己的目錄下,進入linuxp-mid目錄下作答 (10%)
我一開始用Linux版的Firefox竟然找不到他自動解壓到哪個目錄
直接開又問我要用哪個程式開啟...
找了一下子才知道他解壓縮到桌面了....=__=
2. 撰寫程式m2.c,顯示自己的資訊(班級、學號、姓名),在輸出被導向時
能夠不受影響,輸出仍然顯示在螢幕,例如m2>aa (15%)
參考第五章menu2.c
3. 撰寫程式m3.c,顯示UTC與當地時間(localtime) (15%)
參考第四章gmtime.c
4. 撰寫程式m4.c,顯示user的資訊:name, uid, gid, homedir (15%)
參考第四章user.c
5. 撰寫程式m5.c,顯示後面檔案的資訊:inode-count, modify time,
access time, filename,例如:(20%)
m5 hotel.c
1 2004-06-29 15:09 2008-10-31 15:51 hotel.c
請參考第三章printdir.c或第一次作業
6. 撰寫Makefile,具有all與clean,並且建立hotel(從所附的hotel.c,
usehotel.c,hotel.h產生)(15%)
請參考第九章範例
奇怪的是我直接輸入指令就可以編譯
但是寫成Makefile就一定會出錯,到底差別在哪呢?
7. 將linuxp-mid目錄打包成linuxp-mid-xxxxxxxx.tar.bz2,其中
xxxxxxxx為你的學號,並上傳至課程網頁(10%)
應該不會有人好傻好天真的去輸入一長條的指令吧
直接到[檔案管理程式]按右鍵選[建立封存檔],就可以存成tar.bz2了

蕭雲 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。