2008-06-24

C++裡讓物件可以用cout和cin來做I/O存取

很簡單,利用friend及operator overloading
舉例來說,

class Test {
public:
friend istream &operator>> (istream &i, Test &test) {
return i>>test.data;
}
friend ostream &operator<< (ostream &o, const Test &test) {
return o<<test.data
}
private:
int data;
};

如此一來,就可以使用cout和cin來做類別的I/O了

2008-06-11

用Canvas做的俄羅斯方塊

Canvas是一個新的HTML Element,目前只有在FireFox 1.5 latter、Safari或Opera裡面才有支援(就IE不支援*_*),它被定義在所謂的HTML 5裡面。

顧名思義,Canvas就是在瀏覽器裡面提供可以畫圖的物件,透過Javascript去操作Canvas的各種功能,網路上有強者透過Canvas做出一款馬力歐賽車,壓縮過的script才11Kb,很厲害~!!!

我也用Canvas做了一個簡單的俄羅斯方塊,可以試試看~! 點這邊開啟

(不過目前還有一些小bug,在Safari裡面沒辦法移動方塊 >_< 查了一下原因,Safari的onkeypress event抓不到arrow,改成用onkeydown就可以了)



更多有關Canvas的說明與教學,可以到Mozilla Developer Center去看。