2014年5月2日 星期五
2014年4月30日 星期三
MOGO 史上最強的電腦圍棋
號稱史上最強的電腦圍棋,曾打敗多位職業棋士,懶人包下載點:
http://pan.baidu.com/s/1hqiNxQW
解壓後執行 Drago.exe ,先到 選單 [對弈] -> [對弈引擎設定],按 <添加> ,從列表中選 MoGo,在選項中選 <已安裝>,按 <確定> 退回後在路徑選擇 MoGo_release3\mogo.exe,就設定完成了。
現在可以從選單 [對弈] -> 開始人機對弈,開始下棋。
這裡有 MoGo 的參數說明:
http://web.archive.org/web/20080831091349/http://www.lri.fr/~gelly/MoGo_Download.htm
雖然號稱打敗多位職業棋士史上最強的電腦圍棋,但我和他下的第一盤就把他 KO 掉了 :)
棋譜如下:
2014年4月18日 星期五
delegate 元件
相當於 c# 的 delegate、boost 的 function,下載點:
https://www.dropbox.com/s/2qwqb516v7fi47s/delegate%202.1.7z
http://pan.baidu.com/s/1kT0rOLx
- 須搭配 CxxlMan 程式庫
- 可代理一般函數指標或成員函數指標,參數最多 10 個
- 對於有回傳值的的格式,只能 bind 一筆函數指標,若多次呼叫
Bind(), 後者會取代前者,若無 bind,執行函數物件叫用(operator())將
會 throw DelegateErr_NoBind
- 對於無回傳值的的格式,可以 bind 多筆函數指標資料,用 Bind() 會
傳回一個 DelegateID,此 ID 可給 Unbind() 刪除用
https://www.dropbox.com/s/2qwqb516v7fi47s/delegate%202.1.7z
http://pan.baidu.com/s/1kT0rOLx
- 須搭配 CxxlMan 程式庫
- 可代理一般函數指標或成員函數指標,參數最多 10 個
- 對於有回傳值的的格式,只能 bind 一筆函數指標,若多次呼叫
Bind(), 後者會取代前者,若無 bind,執行函數物件叫用(operator())將
會 throw DelegateErr_NoBind
- 對於無回傳值的的格式,可以 bind 多筆函數指標資料,用 Bind() 會
傳回一個 DelegateID,此 ID 可給 Unbind() 刪除用
以下是示範程式,
2014年4月17日 星期四
簡單實作 boost::function 的主要功能
trace goost::function 真的像在走迷宮,它使用大量的 macro 層層相扣,但也只提供最多 10 個參數可以使用,若參數個數能無限制還情有可原,只為 10 個參數搞得這麼誇張,不如使用暴力法還來得簡單明瞭。
goost::function 其實也沒什麼,主要的關鍵在要怎麼把函數的 type 分離出來,比如 goost::function<char(float,int)> 中的 char(float,int) 是一個 type,要怎麼分離出 char、float 和 int 這三個 type?goost::function 是借用特製化 class 自動匹配 type 的技巧,以下用例子說明:
goost::function 其實也沒什麼,主要的關鍵在要怎麼把函數的 type 分離出來,比如 goost::function<char(float,int)> 中的 char(float,int) 是一個 type,要怎麼分離出 char、float 和 int 這三個 type?goost::function 是借用特製化 class 自動匹配 type 的技巧,以下用例子說明:
2014年4月6日 星期日
成員函數指標的奇異現象
這方法蠻特殊的,不知是否有實用的價值,很像為 Base 附加功能,不過的我寧願採用延伸介面的方法
1 #include <iostream>
2
3 using namespace std;
4
5 class Base1
6 {
7 public:
8 // Constructor
9 Base1(){}
10 // Destructor
11 ~Base1(){}
12 };
13
14 class Derived1:public Base1
15 {
16 int m_data;
17 public:
18 // Constructor
19 Derived1()
20 {
21 m_data = 0;
22 }
訂閱:
文章 (Atom)