【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(24) C++からC#を呼び出す方法を調べようぜ☆<その3>(^▽^)www!

2015-12-27 22:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆

正月明けから バイトが忙しくなるし、

今のうちに 囲碁プログラム やろーぜ☆」

KIFUWARABE_80x100x8

「今日は どこからだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしの作った .dll 、 Dependency Walker 2.2 で動かないんだけど、

というところなんだぜ☆」

KIFUWARABE_80x100x8

「よし、見ていこうぜ☆」


22:35

201512272235

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「現状は こういう感じだぜ☆」

KIFUWARABE_80x100x8

「赤い文字を グーグル検索に貼り付けて ググろうぜ☆!」


22:39

201512272238

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Dependency WalkerのホームページのQ&Aが出てきたぜ☆」

KIFUWARABE_80x100x8

「何て書いてあるんだぜ☆?」


22:44

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「仕組みを理解しろ、みたいな内容だぜ☆ 分からないぜ☆

エラーがあっても 無視してもいいものが あるんじゃないか☆?」

KIFUWARABE_80x100x8

「お父んの作った .dll は、空っぽなのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そこが問題だぜ☆ 調べてみるかなんだぜ☆」


22:52

201512272251

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgfthink は、わたしの調べた方法とは ちがう方法で .dll を作っているみたいだぜ☆?」

KIFUWARABE_80x100x8

「お父んが調べた .dll を作る方法は そもそも間違っている可能性があるのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「調べるか~☆」


22:59

 

人生をかるくする秘密のバックヤード 『ダイナミック リンク ライブラリ(DLL)の基礎知識』

http://exlight.net/devel/windows/dll/windll.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 __declspec( dllexport ) を関数の頭に付ける方法が説明されているぜ☆」

KIFUWARABE_80x100x8

「お父んは 何やったんだぜ☆?」


 

23:02

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こっちが Cpp2Csharp.dll☆」

 

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こっちが DllDemo.exe☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あれ☆? .dll の方、DLLを作るために何か関数の頭に付けていたつもりで、

何も付いていないぜ☆?」

KIFUWARABE_80x100x8_02_Hidosu

「ヒューマン・エラーはノー・ギルティーだぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「手順を積み上げていって、これをやったから、これは動いているはず、

と頭の中で つなげていっているのに、

実は これをやった というのは錯覚だった、

というのが お父ん には多いぜ☆」

KIFUWARABE_80x100x8

「お父んの プログラムの バグを 修正しようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『何故』とか『不思議』が出てきたときは、手順1 から洗いなおすしか

なさそうだぜ☆」


23:13

ひしだま’s ホームページ 『DLL作成方法・呼出方法』

http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dll.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ 関数の頭に __declspec( dllexport ) を付けるのが

正しい方法なのかだぜ☆?」


23:19

201512272318

201512272319

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ヘッダーと ソースの両方とも、関数の頭に __declspec( dllexport ) を

乗っけてみたぜ☆ こんなことして いいのかだぜ☆?」

KIFUWARABE_80x100x8

「サンプルでは そう書いてあるし、ビルドも通っているぜ☆

Dependency Walkerさんに見てもらおうぜ☆!」


23:25

201512272325

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ 右側中段、 なんか2行 出てるぜ☆?」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」


23:32

201512272332

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「GetProcAddress の第2引数には、なんていう名前で指定すればいいんだぜ☆?」

KIFUWARABE_80x100x8

「その台詞をそのまま グーグル検索欄に放り込んで ググろうぜ☆?」


23:37

201512272338

EternalWindows 『DLL / 関数のエクスポート』

http://eternalwindows.jp/windevelop/dll/dll06.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆! ばっちり パーフェクトな説明だぜ☆!」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」


23:42

201512272341

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.cppソースの方は良かったんだが……☆」

201512272346

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.hヘッダファイルの方では、extern “C” に赤い波線が付いていて、

下の Error List ウィンドウでは、誰に許可されてリンケージ修飾してんだ、オォゥっ!?

ってマイクロソフトに怒られているんだぜ☆!」

KIFUWARABE_80x100x8

「じゃあ、リンケージ修飾 外したらどうだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうするぜ☆」


23:50

201512272349

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「池の主の怒りは鎮まったぜ☆

やはり 丘の上の祠に供えた おはぎ が効いたのかだぜ☆?」

KIFUWARABE_80x100x8

「池の主は見ている☆

おはぎを 供えることを 怠るなだぜ☆」


23:54

201512272354

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でも、エラーコード 127☆ そんなプロシージャないって言ってるぜ☆?」

KIFUWARABE_80x100x8

「おはぎを 2つに増やそうぜ☆?」


2015-12-28 01:11

 

ロベールのC++教室 『第47章 C±±』

http://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03047.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふむ……☆ ヘッダ・ファイルで extern “C” を付けることもできるのかだぜ……☆」

201512280114

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「extern “C” { } で、クラス全体……、ネームスペース全体を囲むようにすると、

ビルドが通ったぜ☆?」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」


01:17

201512280117

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でもエラーだぜ☆」

KIFUWARABE_80x100x8

「何が原因でエラーが出ているんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーコード127は、プロシージャが見つかりません、ぐらいの意味だぜ☆」

KIFUWARABE_80x100x8

「エラーコード127を重点的にググろうぜ☆?」


01:29

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ネームスペース外してもダメかだぜ☆」


01:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「多分、なんらかの やってないこと、

なんらかの やってはいけないこと、

あるいは 全体的な思い違い、

何かがあると思うんだが、どうすれば 解決すると思うなんだぜ☆?」

KIFUWARABE_80x100x8

「お父んが C++の .dll を作れるようになる方法についてか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうだぜ☆」

KIFUWARABE_80x100x8

「既に動いている .dll のソースコードを真似ようぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし……、cgfthink をコンパイルして、ちゃんと動いているのか調べてみるぜ☆」


01:38

201512280137

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ちょっと いじっちゃっているんだが、

CgfGoBan では、.exe の横に cgfthink.dll を置いているみたいだな☆

『.dll がありません』とかいうエラーがたまに出るが、cgfthink.dll の有無かもしれないな☆」

KIFUWARABE_80x100x8

「まずは現状確認だぜ☆

cgfthink.dll を、お父んがコンパイルした cgfthink.dll に入替えようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やってみるぜ☆」


01:45

201512280145

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Rebuild Solutionリビルド] をしたのが、この cgfthink.dll だぜ☆」


01:47

201512280147

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、『せい』がどういうのか、という確認だが、

Computer(DLL)を選んで対局すれば、cgfthink.dll との対局になるんじゃないかと

思ってるんだが、合ってるのかだぜ☆?」

KIFUWARABE_80x100x8

「調べようぜ☆?」


01:51

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ホームページには載ってないぜ☆ とりあえず ランダム置き をするのかどうか

動きを見てみようぜ☆」


01:53

201512280153

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ランダムかどうかは分からないが、石を真横にぶつけてくるのは分かったぜ☆」

KIFUWARABE_80x100x8

「よし、お父んのコンパイルした cgfthink.dll に差し替えようぜ☆!」


01:55

201512280155

KIFUWARABE_80x100x8

「ファイルサイズが 698KB も違うようだが☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Debugビルドと、Releaseビルドの違いなのだろうかなんだぜ☆?

とりあえず 実行しちゃえなんだぜ☆!」


01:59

201512280158

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

YOSHIよし☆! いけてるぜ☆!」

KIFUWARABE_80x100x8

「お父んは cgfthink.dll を拡張して 囲碁プログラムを組んだらいいんじゃないかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgfthink.dll と cgfgoban.exe が連携している手順を知りたいんだぜ☆」

KIFUWARABE_80x100x8

「じゃあ、ソースを調べようぜ☆?」


02:02

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっと、ここで在宅バイトだぜ☆ 囲碁プログラミングは ここまでだぜ☆」

KIFUWARABE_80x100x8

「在宅バイト 早く終わらせようぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「在宅バイトが 終わるのを待っていると、囲碁プログラムができないぜ☆」


 

cgfthink.c をコンパイルして .dll を作って cgfgoban.exe で動かしてみたぜ☆!

cgfthink は C言語だったのかだぜ……☆

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進だぜ☆!

 

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(24) C++からC#を呼び出す方法を調べようぜ☆<その3>(^▽^)www!
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(23) C++からC#を呼び出す方法を調べようぜ☆<その2>(^▽^)www!

2015-12-27 08:24

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「記事が長くなったので、1個前の記事の続きだぜ☆」

KIFUWARABE_80x100x8

「C++言語で作った .dll を、C++で動的に利用しよう、

というところだったんだぜ☆」

201512270831

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.exe と .dll は、同じフォルダーにあるのかだぜ☆

じゃあ がんばって .dllの動的リンクの サンプル・コードを真似てみるぜ☆」

 

ひしだま’s ホームページ 『DLL作成方法・呼出方法』

http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dll.html


08:37

201512270837

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーが出てしまったぜ☆

const char型の配列、14文字+\0 の計15文字サイズが指定されていますが、

LPCWSTR型じゃないのでエラーです、

というものだぜ☆

ロング・ポインター・コンスト・ワイド・ストリング型だっけ☆?

文字を入れるメモリが1バイトじゃなくなって大きくしたという型じゃないか☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


08:44

PCWSTR, LPCWSTR NULL で終わる変更できないワイド文字列へのポインタ

WisdomSoft 『基本データ型と文字列』

http://www.wisdomsoft.jp/421.html

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うむ☆ だから、”Cpp2Csharp.dll” で、何がダメなんだぜ☆?」

KIFUWARABE_80x100x8

「そう書くと、末尾に \0 が付加された、const char型の配列だと思われるみたいだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どう書いたら LPCWSTR 型だと思ってくれるんだぜ☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


08:50

201512270850

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さっきの記事に書いてあった TEXT( ) で挟むという技を使うと、

エラーが治まったぜ☆?」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」

201512270852

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここもエラーが出ていたので、勝手に書き替えておいたぜ☆?」

KIFUWARABE_80x100x8

「おう☆」


09:07

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ソースコードを、次のように書いてみたぜ☆」

KIFUWARABE_80x100x8

「実行してみようぜ☆!」


09:12

201512270912

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「疲労が どっと 来たぜ☆ 寝ようかな☆」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


09:21

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「アプリケーションが関連付けられていない拡張子のファイルを叩いた時に

出てくるエラーメッセージなんじゃないのかだぜ、これ☆?」

KIFUWARABE_80x100x8

「そりゃ、.dll ファイルなんて、叩くものじゃないだろうなんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「何が間違っていたのか……☆?」


09:23

201512270923

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.dllを読み込もうとしている行の、左端の柱をクリックして、

デバッグ・モードで起動してみるぜ☆?」

201512270925

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「デバッグ・モードで起動するには、[F5]キーを押すだけでいいのかだぜ☆?」


09:27

201512270926

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Debugモードで動かそうとしたら、エラーの説明が出てきてくれたぜ☆

ん☆? DllDemo.exe を動かしているつもりだったんだが、

Cpp2Csharp.dll を起動しようとしていたのかだぜ☆?

そりゃ 動くわけないぜ☆?」


09:28

201512270928

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「確かに Cpp2Csharp の方が、 DllDemo より太字だぜ☆」


09:31

201512270931

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 プロジェクト名の[DllDemo] を右クリックして、[Set as StartUp Project]をクリックするぜ☆」


09:33

201512270932

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今度は DllDemo の方が 太字になったな☆」

KIFUWARABE_80x100x8

「 [F5]キーを押して、実行してみようぜ☆!」


09:34

201512270934

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんだぜ、こりゃ☆? ビルドでも忘れてたっけなんだぜ☆?

とりあえず [YES]ボタンを押してみるかだぜ☆?」


09:37

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか ビルドでも始まったのかだぜ☆?」

201512270938

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆ ごつい画面が出てきたぜ☆?

赤い丸を付けたブレークポイントで 実行が一時停止しているな☆」

201512270940

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よく使うボタンはこのあたりなんだぜ☆

プログラムを1行ずつ実行したり、一気に進めたり、できるわけだぜ☆

詳しくは 各自 調べてくれだぜ☆」


09:44

201512270943

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「if文で、エラーのある方に落とされているぜ☆

残念だぜ☆」


09:46

201512270946

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーメッセージも、出してくれているんだが、文字化けしているぜ☆

残念だぜ☆」

KIFUWARABE_80x100x8

「お父んが、エラーが出てたので テキトー に直したところじゃないのか、これ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うむむ☆!」


09:53

201512270953

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「お父んが適当にいじった関数の名前を右クリックして、

[Go To Definition] をクリックするぜ☆」


10:16

201512271016

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「定義文が出てきたな☆ お父んがいじったところ、LPWSTR で合ってると思うぜ☆?」

KIFUWARABE_80x100x8

「合ってたか☆

文字化けは別の理由か☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「理由は ちょっと分からないぜ☆」

KIFUWARABE_80x100x8

「ググろうぜ☆!」


10:19

 

>MakeLogFile(LPCSTR errorMsg)

LPCSTR ということは const char *
早い話MBCSですね。

プロジェクトの設定はMBCSですか。
VC2008とかはデフォルトでUNICODEになってます。

あるいは
MakeLogFile(LPCTSTR errorMsg)
にして両対応にしちゃうとか・・・

YAHOO!JAPAN 知恵袋 『GetLastError関数の戻り値をFormatMessage』

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1062449370

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「んー(^~^)☆? ソースを もう1回 見てみるかだぜ☆?」


10:27

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ソースコードに変わったところはなさそうだぜ☆

Microsoft Visual Studio は、内部的には UTF-8 を使っているのかも知れないな☆」

201512271028

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ウィンドウの左上のアイコンをクリックして、[既定値(T)]をクリックしてみるぜ☆」

KIFUWARABE_80x100x8

「そんなところに何があるんだぜ☆?(^~^)??」


10:31

201512271030

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「えっ☆! UTF-8 がない☆!」

KIFUWARABE_80x100x8

「残念か☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「残念だぜ☆」


10:41

ERROR_PROC_NOT_FOUND 127 0x0000007F 指定されたプロシージャが見つかりません。

シーラ家 『Win32エラーコード一覧』

http://ir9.jp/prog/ayu/win32err.htm

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーコードは 127 と分かっているんだぜ☆

ネットで探すと、127は、プロシージャが無いのか……☆」

KIFUWARABE_80x100x8

「どんなプロシージャならあるのか、調べられないのかだぜ☆?」


11:00

 

soundengine.jp 『Dependency Walkerでアプリケーションの使用DLLを調査 【やってみた】』

http://soundengine.jp/wordpress/tips/try/555/

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.dll に入っている関数名を一覧するツールがあるみたいなんだぜ☆

Microsoft Visual Studio 2015 には付いていないのかなんだぜ☆?」


11:03

『Dependency Walker 2.2』

http://www.dependencywalker.com/

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしのPCは Windowsの64bit機だから、x64 のを落とせばいいのかだぜ☆?」


11:52

201512271152

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「落としてみたぜ☆ .exe を叩いてみるぜ☆」

201512271153

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「適当にボタンを押しまくってみるかだぜ☆」


11:57

201512271157

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、WAKATTAわかったぜ☆!

ファイルパスに日本語が含まれているとダメだが、[File] – [Open…] で

.dll ファイルを開くだけで 中が見れるぜ☆」


12:21

201512271221

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしの作った Cpp2Csharp.dll は、エラーがいっぱいで悲しいぜ☆

CPUが違う、って書いてるんじゃないか☆? 32 という数字も見かけるし☆

わたしのPCは64bit機なので、64bit用にコンパイルした方がいいのかなんだぜ☆??」

KIFUWARABE_80x100x8

「がんばれだぜ、お父ん☆!」


12:27

201512271226

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここらへんを触った方がいいのか、それとも……☆」

201512271228

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こっちを触った方がいいのか、うーん☆(^~^)」


12:30

201512271230

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「上を触ると、下も一斉に変わったぜ☆」


12:46

201512271245

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Build Solution] だと、.dll ファイルのタイムスタンプが変わっていなかったようなので、

[Rebuild Solution] をクリックしてみたぜ☆ .dll のファイルのタイムスタンプも変わったぜ☆」


12:49

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ デペンデンシーワーカーの方ではエラーが出るぜ……、あっ☆!」

201512271249

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Releaseモードと Debugモードでは設定は別なのかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「と思ったらちごた……☆ Activeでないモード、Activeなモードという分け方があるのかなんだぜ☆?」


12:52

201512271253

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「と思って Activeなモードも 64ビットに変えたら Rebuild Solution でエラーが出てきたぜ☆」


12:55

201512271255

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「上の設定ごとに、下の設定も 設定しなおすのかだぜ☆?」


12:57

201512271257

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、/ZI も /Zi に設定し直しかだぜ☆」


12:59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Rebuild Solution して、.dll を見にいったら、x64 というフォルダーができていて、

その下に Debug というフォルダーができていたぜ☆? その中に .dll があったぜ☆」

201512271259

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーの数は減ったみたいだぜ☆」

KIFUWARABE_80x100x8

「ちょっと進んだな☆!」


13:07

201512271307

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あらまっ☆!」


13:09

201512271309

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.dll にしないと……☆」


13:11

201512271311

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これでも ダメなのかだぜ☆ もう寝るぜ☆」

KIFUWARABE_80x100x8

「おやすだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おやすー☆」


 

Dependency Walker を練習中だぜ☆!

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進なんだぜ☆!

 

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(23) C++からC#を呼び出す方法を調べようぜ☆<その2>(^▽^)www!
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(22) C++からC#を呼び出す方法を調べようぜ☆(^▽^)www!

2015-12-26 22:46

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「在宅バイトの方で、やらなくてはいけないネタ仕込みの量が マウンテン なので

ふらふらと 囲碁ブログ の方に来てしまったぜ☆」

KIFUWARABE_80x100x8

「お父んの中では、ここは 囲碁ブログ なのかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「囲碁プログラムについて、現状では わたしの前に 2つの関心ごとがあるんだぜ☆

(1)GTP碁 テキスト プロトコルを使ってCgfGoBanの囲碁エンジンとして使う方がいいの☆?

(2)cgfthinkを使ってCgfGoBanの囲碁エンジンとして使う方がいいの☆?」

KIFUWARABE_80x100x8

「それぞれの利点と欠点を教えてくれだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「(1)GTPは よくわからんのが欠点。 GnuGoでも使われているぐらいには有名、というのが長所☆

(2)cgfthinkは CgfGoBan専用というのが欠点。 分かりやすいのが長所☆」

KIFUWARABE_80x100x8

「CgfGoBan専用というのは、何か欠点があるのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「特にないよな☆ NNGSNo Name 碁 サーバーにつなぐのもCgfGoBanを使うんだったら、大会に出れるかもしれないし☆

CgfGoBanを使って UEC囲碁大会の NNGSサーバーにつなげられなかったら、

お父んは 椅子にずっと着席しておくぜ☆」

KIFUWARABE_80x100x8

「(1)と、(2)のどちらの選択肢でも、CgfGoBanを使う前提じゃないのかだぜ☆?

CgfGoBanが UEC囲碁大会の NNGSサーバーにつながらないようなら、

(1)、(2)のどちらの選択肢を選んでも お父んは 椅子にずっと着席しているぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、(1)GTP は よくわからん、 (2)cgfthink は かんたん、

というのを天秤にかけて、(2) からやってみるかだぜ☆

これ、C#の .dll なのか、comオブジェクトなのか知らないんだが、

C#も読み込めるように、改造が必要だと思うんだぜ☆」


23:02

 

#define NO_MONEY 0 『C++から利用可能なC#によるクラスライブラリの作成』

http://d.hatena.ne.jp/kayn_koen/20091103/1257205235

 

KIFUWARABE_80x100x8

「以前もこのページを読んでいたようだが、C++のコンパイルを通せるようになった今、

改めて読んでみて 何かわかることはあるかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「もちつけ☆ 泡立てるなだぜ☆」

KIFUWARABE_80x100x8

「落ち着け☆ 慌てるなだぜ☆」


23:10

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「普段 みかけない 変わったものを 抜き出してみるぜ☆」

 

using System.Runtime.InteropServices;

 

[ComVisible(true)] ※インターフェースの上に乗せる。

 

[ClassInterface(ClassInterfaceType.AutoDual)] ※クラスの上に乗せる。

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「あれ☆? この3行だけかだぜ☆? 他には……☆」

アセンブリ情報: [アセンブリをCOM参照可能にする]をON☆

ビルドタブ内: [COM相互運用~]をON☆

ビルド後の生成されたdll: regasm

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「以上が C#側のやることなのかだぜ☆? 思ったより少ないぜ☆

次に C++側のやること☆」

 

ソースコードに

『#import “C:\\full\\path\\COMVariant.tlb” named_guids raw_interfaces_only』

と書く☆

 

次の1行を書き足す☆

『CoInitialize(NULL);』

 

C++側では、スマートポインタを使って、C#のプログラムを見る。

なんだか分からないが次の2行で hRes の準備ができる。これを使う。

IVariantPtr dotNetCOMPtr; // Smart Pointer Name = IVariant + Ptr

HRESULT hRes = dotNetCOMPtr.CreateInstance(COMVariant::CLSID_Variant);

// Instancialize

 

最後に次の1行を書いて終わり☆

『CoUninitialize();』

 

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「…………、やってみて覚える感じかだぜ☆?」

KIFUWARABE_80x100x8

「サンプルを作って、やってみようぜ☆?」


23:35

[File] – [New] – [Project] – [Win32 Console Application]

Name: Cpp2Csharp

Location: C:\Root_Igo_CgfGoban\cgfgoban108\

[OK]

あとは道なりに進む☆

201512262335

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++の 新しいプロジェクト を作成したぜ☆

見ろ☆!

もう 何をしていいのか わからないぜ☆」

KIFUWARABE_80x100x8

「ハローワールドを作ってみようぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし☆!」


23:38

 

C++マニアック 『最初のプログラム』

http://homepage2.nifty.com/well/FirstProgram.html

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「真似して書いて見るぜ☆」


23:42

201512262340

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんなので いいのかなんだぜ☆?」


23:44

[Build] – [Build Solution]

201512262343

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビルドは通ったみたいだぜ☆? 実行できるの、これ☆?」


23:45

[Debug] – [Start Without Debugging]

201512262346

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「動いたぜ☆ 高校生だったころ、このあと MFCのリファレンスを読んで

説明の書かれていない『イベントハンドラ』の意味が分からなくて C++を 投げたんだぜ☆」

KIFUWARABE_80x100x8

「……(>_<)? やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆」


23:54

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このあと、どんなプログラムを書けばいいのか 分からないぜ☆?」

KIFUWARABE_80x100x8

「C#の方も、サンプル通り プログラムを作ろうぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

YOSHIよし☆」


2015-12-27 00:05

201512270005

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Close Solution] なんていうボタンを使う日がくるとは……なんだぜ☆

C++ から C# に切り替えたいときとかに ソリューション一式を 閉じるボタンかだぜ☆」


00:08

201512270008

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [File] – [New] – [Project…] と進むぜ☆?」


00:26

201512270026

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Visual C#] – [Windows] – [Console Application] と選び、

Name: Csharp2Cpp

Location: C:\Root_Igo_CgfGoban\Cgfgoban108\csharp2cpp\

と打ち込んで、[OK]ボタンをクリックだぜ☆」


00:28

201512270028

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C#の画面は 馴染み深いので 何をしたいなら何をするべきか、すぐに分かるぜ☆」

KIFUWARABE_80x100x8

「C++も そのレベルになってくれだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「サンプル・プログラム通り作ってみるかだぜ☆

インターフェースがあって、それを実装したクラスがあって、

メインでは そのクラスのインスタンスでメソッドを呼び出して 標準入出力に出力するんだぜ☆」

KIFUWARABE_80x100x8

「(>_<)?」


01:07

201512270107

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしは フォルダーを掘るのが大好きなんだぜ☆

階層を深くして、右クリックして [Add] – [New Item…] 」

201512270109

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Visual C# Items] – [Interface] と選んで、

Name: Variant.cs と、ちょっと名前の付け方をサンプルとは変えて、

[Add]ボタンをクリックだぜ☆」


01:11

201512270111

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じで インターフェースのファイルの雛型が作られるんだぜ☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おう、やったぜ☆」


 

01:19

201512270118

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムには namespace というものがあるんだぜ☆」

KIFUWARABE_80x100x8

「C++ にもあったな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムの部品にも、長い苗字があるんだと思えばいいんだぜ☆

ちょっと、ネームスペースを変えるぜ☆」


01:22

201512270121

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プロジェクト名を右クリックして、[Properties] をクリックだぜ☆」

201512270123

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「とりあえず、アセンブリ名と ネームスペースだけは 変えておきたいぜ☆」


01:33

201512270133

(※注・このときの namespace はあとで思ってたのと違うことに気づくんだぜ☆)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『ぐれーすけーる』というサークル名で活動しているので、

頭に Grayscale と付けてみるぜ☆

アセンブリ名は Grayscale.Csharp2Cpp.exe みたいになるんだぜ☆

ネームスペースの方は、フォルダー階層の方に Csharp2Cpp というプロジェクト名が

もうあるので、

次にクラスを新規追加したときからは Grayscale.Csharp2Cpp という名前でネームスペースが始まるはずだぜ☆」

KIFUWARABE_80x100x8

「お父んが ヘロヘロ だぜ☆ がんばれ、お父ん☆!(>_<)」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムを打ち進めることが 一番の回復薬だぜ☆(^▽^)

[Ctrl]+[S]キーを押してファイルを保存☆」


01:38

201512270138

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「既存のコードのネームスペースは、手打ちで修正して回るぜ☆

Program.cs の方も Grayscale.Csharp2Cpp というネームスペースに変えておくぜ☆」


01:42

201512270142

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「サンプルの通りに書き出すと、こんな感じだぜ☆

using に2行追加したり、[ComVisible(true)] を interface の頭に乗っけたり、

void とか object で始まる2行を追加したんだぜ☆」

KIFUWARABE_80x100x8

「ほう☆」


01:45

201512270144

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「右クリックして [Organize Usings] – [Remove and Sort Usings] をクリックすると……☆」


01:46

201512270146

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ファイルの冒頭の、using のところが2行に減ったな☆

使われていない using が消えて、アルファベット順にソートされたんだぜ☆

すっきりしたな☆」

KIFUWARABE_80x100x8

「散髪か☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「散髪とは違うぜ……☆」

KIFUWARABE_80x100x8

「違うのかだぜ……☆」


01:55

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ドキュメント・コメントについても説明しておくぜ☆」

201512270155

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「AddVariant 関数にコメントを添えたいときは、

スラッシュ『/』を3本 打鍵するんだぜ☆ 1つ、2つ……☆」

201512270157

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「3つ打鍵すると あら不思議☆!

コメントの雛型が ごっそり自動で追加されたな☆

ドキュメント・コメントの書き方は 各自 調べてくれだぜ☆」

KIFUWARABE_80x100x8

「おっ おっ☆(^▽^)!」


02:01

201512270201

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じで インターフェースの作成は おしまいだぜ☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は classクラス だぜ☆」


02:04

201512270204

(※注・ interface の頭に public の文字がヒツヨウ)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

classクラス も、 interfaceインターフェース も、おんなじテキストファイルなんだぜ☆

追加の仕方は同じだぜ☆

[Solution Explorerソリューション エクスプローラー]ビューから、フォルダーを選んで[Add] – [New Item…] とクリック☆」


02:07

201512270206

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Visual C# Items] – [Class] と選んで、

Name: VariantImpl.cs

と打ち込み、[Add]ボタンを押すんだぜ☆ クラス名の命名方法はわたしの趣味だぜ☆」


02:12

201512270211

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「クラスファイルがでけたぜ……、あっ☆!

namespace が思ってたのと違うぜ☆」

201512270214

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こう書いていた方が 良かったのかなんだぜ……☆?」


02:31

201512270232

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしは、インターフェースと クラスを 別の namespaceネームスペース に置くので、

クラスの方には

using Grayscale.Csharp2Cpp.P___500_Main_______.L500_Main;

という1行を追加しているぜ☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「クラスとインターフェースを書いたところで、次は main 関数だろうかなんだぜ☆?」


02:38

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さっきのサンプル・プログラムには main 関数が無いぜ☆

自分で書くかだぜ☆」


02:42

\ カタタタタタ☆ /

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、うまくいったぜ☆ main 関数を説明するぜ☆」

KIFUWARABE_80x100x8

「おう☆」

201512270242

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「static修飾の Main( ~ ) 関数というのは、.exe をダブルクリックしたときに最初に実行される関数なんだぜ☆」

KIFUWARABE_80x100x8

「(^▽^)☆? おう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Variant型のインスタンスを生成して、

.AddVariant( ) メソッドで値を追加し、

.GetVariantAt( ) メソッドで値を取り出すんだぜ☆

Console.WriteLine( ) メソッドを使って、値を コンソール画面に出力したぜ☆」

KIFUWARABE_80x100x8

「(^▽^)☆??? おっ おうっ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C#で これらを書いたわけなんだが、これを C++からも使えたら、

CgfGoBanから、わたしの書くC#の囲碁プログラムを使えるということだな☆」

KIFUWARABE_80x100x8

「(^▽^)☆?? おっ おーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、今回C#で書いたサンプル・プログラムと同じものを、C++でも書いてみるぜ☆」

KIFUWARABE_80x100x8

「おう☆! 同じものを C++ で作ろうぜ☆!(^▽^);;;」


03:04

201512270304

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++は 早くも ヘッダーと、ソースに フォルダーが分かれていて

出鼻をくじかれるぜ☆」

KIFUWARABE_80x100x8

「お父んは 自分でフォルダーを掘って インターフェースと クラスを分けて

いたじゃないかなんだぜ☆? 同じことじゃないかなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、ヘッダーファイルと、ソースファイルを1個ずつ作ってみるかなんだぜ☆?」


03:09

201512270309

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「お父ん、C++にトラウマがあって 先に進むのが嫌だぜ☆」

KIFUWARABE_80x100x8

「今から初めて C++ を触る気分で 進めようぜ☆」


03:13

201512270313

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Visual C++] – [Header File (.h)] と選んで、

Name: Variant.h

というファイル名にして、[Add]ボタンを押してみるぜ☆」


03:15

201512270315

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんだぜ、これ☆?」

KIFUWARABE_80x100x8

「ヘッダ・ファイルは でけたか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でけたぜ☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆

#pragma って、コンパイラーが独自実装できるスイッチだったかなんだぜ☆?

once ってことは、このヘッダー・ファイルは 1回しか読み込みません、ということなのかだぜ☆?

#ifndef VARIANT_H

#define VARIANT_H

~ヘッダーファイル本文~

#endif

と書くのは もう古いということなのかだぜ☆?」

KIFUWARABE_80x100x8

「(^▽^)☆???」


03:35

201512270335

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしは フォルダー階層を深くするのが好きなんだぜ☆!

C++のネームスペースの作り方は これでいいのかなんだぜ☆?」

KIFUWARABE_80x100x8

「一目見ただけで違和感があるぜ☆」


03:46

201512270346

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おや☆? C++ に、Object クラスって無いのかだぜ☆?

System というネームスペースも無いし☆

System::Object というクラスがあるかと思ったんだが……☆」

KIFUWARABE_80x100x8

「ググろうぜ☆」

 

using namespace Systemですよね?

であれば、プロジェクトのプロパティにて「共通言語ランタイム サポート」という項目を「共通言語ランタイム サポート (/clr)」に設定して下さい。

なお、このオプションを有効にすると、.NET Frameworkが必要なアプリケーションになること、C++/CLIと呼ばれるC++ベースの独自の言語に変わることを理解しておいて下さい。

(純粋なC++アプリケーションとは言えなくなる)

(MSDN 『名前空間 namespace の追加方法について』/Azulean(MCC, MVP) )

https://social.msdn.microsoft.com/Forums/ja-JP/8268488c-dc2d-447d-9c95-c9d03349da71/-namespace-?forum=vcgeneralja

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむむ☆

C++の原案に System::Object なんか無いから、 .NET Framework にしろってことなのかだぜ☆?

『共通言語ランタイム サポート(/clr)』というのにすればいいのかだぜ☆?」

KIFUWARABE_80x100x8

「やってみようぜ☆?」


04:03

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「見つけたぜ☆」

201512270403

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Project] – [プロジェクト名 Properties…] と進んで……☆」

201512270405

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [General] – [Common Language Runtime Support] の▼ボタンを押すと、

『Common Language Runtime Support (/clr)』というのがあるな☆ 多分これだぜ☆」


04:07

201512270407

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆! 赤い波線が消えたぜ☆!」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!

緑色の波線が気になるぜ……☆」


04:27

201512270427

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「マウスカーソルを合わせると、何か出たぜ☆?」


04:53

201512270453

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Variant.cpp に AddVariant の定義がないから作るぜ、って書いてあるんだが、

そもそも Variant.cpp なんて作ってない気がするんだぜ☆

ボタンを押すとどうなるんだぜ☆? 押してみるか……☆」


04:55

201512270455

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「何が起こったのか……☆?」


04:58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Ctrl]+[S]キーでセーブっと☆ ん☆?」

201512270457

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「増えてる☆!?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そりゃあ 便利だぜ☆」


05:03

201512270503

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「調子にのって 緑色の波線から create をしていたら、

エラーの出るコードを作られてしまったぜ☆」

KIFUWARABE_80x100x8

「あーあ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Object 型にコンストラクタはありませんよ……、まあ そうだろう、こんな抽象クラス

作れるわけないぜ☆ null とかに変えられるだろうかなんだぜ☆?」


05:07

201512270507

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++言語で ヌルを返すって、どうやるんだぜ☆?

ほらみろ、詰まった☆!」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


05:10

 

C++/CLIとC# 『null』

http://bear09.blog118.fc2.com/blog-entry-32.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++/CLI には、nullptr というキーワードがあるのかなんだぜ☆?」

KIFUWARABE_80x100x8

「使ってみようぜ☆?」


05:13

201512270513

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ダメだったぜ☆! ほらみろ、詰まった☆!」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


05:34

201512270534

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++のやり方が分からないぜ☆」

KIFUWARABE_80x100x8

「Object型というのは、返せるものなのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そこらへん、さっぱり分からないぜ☆」


05:47

201512270547

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ 基礎知識がないので、何ができて、何ができないのか分からないぜ☆」

KIFUWARABE_80x100x8

「お父んに Object型は 早いんじゃないかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆」


05:52

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず、int 型しか返却しない、ということで サンプル・プログラムを

書き直すことにするかだぜ☆」

KIFUWARABE_80x100x8

「おう☆」


06:08

\ ぶくぶくぶくぶくぶくぶくぶくぶく☆ /

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「C# で import System.Collection.Generic; List<int> list; と書くコレクションは、

C++ だとどう書くんだぜ☆? vector? どうやって使うんだぜ☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆?」

 

ViVi Home 『手を動かしてさくさく理解する C++ 動的配列クラス std::vector 入門』

http://vivi.dyndns.org/tech/cpp/vector.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆

#include <vector>

std::vector<int> v;

なのかだぜ☆?」

 


06:19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず、次のように書いてみたんだぜ☆」

 

KIFUWARABE_80x100x8

「int型のvectorになったおかげで、

なんでも型の配列という うまみ がなくなったな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうなんだぜ☆

次は メイン関数を書こうぜ☆」


06:35

201512270635

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「がんばったぜ☆

#include <cstdio> は要らなくなったかなんだぜ☆」

KIFUWARABE_80x100x8

「ビルドは通ったみたいだな☆! 実行してみようぜ☆!」


06:38

201512270638

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Vectorは範囲外☆? 添え字は 0 から始めるのが正しいのかだぜ☆?」


06:41

201512270641

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし☆ でけた☆!」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆!」


06:43

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、.dll を読み込んで、.dllの中の .AddVariant( )、GetVariantAt( ) を使う、

というC++言語のプログラムを書いてみたいぜ☆」

KIFUWARABE_80x100x8

「おう☆!」


07:02

 

MSDN 『チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++)』

https://msdn.microsoft.com/ja-jp/library/ms235636.aspx

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆(^~^)?」


07:08

201512270708

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

Solution Explorerソリューション エクスプローラー の プロジェクト名を右クリックして、

[Propertiesプロパティーズ]を選ぶんだぜ☆」

201512270711

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そして [General] – [Configuration Type] の▼ボタンを押すんだぜ☆

その中に Dynamic Library (.dll) というのがあるな☆ 多分これだぜ☆」


07:15

201512270714

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Cpp2Csharp.dll というファイルができているな☆

あれ☆?

ファイル名は Grayscale.Cpp2Csharp.dll じゃないのかなんだぜ☆

設定し忘れなのかだぜ☆」


07:20

201512270719

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、.dll を呼び出す方のプログラムを作るぜ☆

Solution Explorer の ソリューションを右クリック、

[Add] – [New Project…] をクリックだぜ☆」


07:24

201512270724

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Visual C++] – [Win32 Console Application] を選んで、

Name: DllDemo

と適当にプロジェクト名を付けて [OK]ボタンを押すんだぜ☆」


07:26

201512270726

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これは [Finish] を押そうかだぜ☆」


07:45

201512270745

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「新しく作ったプロジェクトの Main 関数には、

さっき作った Cpp2Csharpプロジェクトの Main 関数を だいたいコピーだぜ☆

この Variant クラスを、 .dll ファイルの中身から取ってくれればいいんだが、

どうやるかだぜ☆」

KIFUWARABE_80x100x8

「参照すればいいんじゃないのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やってみるぜ☆」


08:04

201512270803

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Solution Explorer の プロジェクト・フォルダーの下にある、

[References] を右クリックして、[Add Reference…]を選ぶんだぜ☆」

201512270806

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか 画面が出てきたぜ☆ うーむ、.dll は無いのかだぜ☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


08:11

 

ひしだま’s ホームページ 『DLL作成方法・呼出方法』

http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dll.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか 思ったよりタイヘンそうだぜ☆?」

KIFUWARABE_80x100x8

「サンプル通り書いてみたらどうだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これが C#の .dll を利用するのに役立つかどうか分からないが、

やるだけやるんだぜ☆

ここらで、記事が長くなったので、次の記事に移るぜ☆」

KIFUWARABE_80x100x8

「おう☆!」


 

C++の ハローワールドを コンパイルして実行するところまで でけたぜ☆!

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進だぜ☆!

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(22) C++からC#を呼び出す方法を調べようぜ☆(^▽^)www!
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(21) C++を調べようぜ☆(^▽^)www

2015-12-26 09:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『優先度 高』 の作業の数が マウンテン で、

囲碁プログラムに全然時間を割けないから、

前向き かつ 積極的に バイトをサボって 囲碁プログラムしよーぜ☆」

KIFUWARABE_80x100x8

「前向き かつ 積極的な意見だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今回は、C++を調べたいと思うぜ☆」

KIFUWARABE_80x100x8

「ほう☆?」


09:16

201512260916

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「前に VisualStudio 2015 を入れたんだが、

これが C++ も使えるという話しなんだぜ☆

それを調べてみるぜ☆」

KIFUWARABE_80x100x8

「おう☆」


09:22

201512260922

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「多分、この .dsw というファイルを、

Microsoft Visual Studio 2015 なら、開けられるんじゃないか、

と 踏んでいるんだぜ☆」

KIFUWARABE_80x100x8

「やってみれば 1秒 で分かるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よーし、お父ん、がんばっちゃうぞ☆」


09:27

201512260926

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆! 開くファイルの一覧に入っているぜ☆!

これは いけるんじゃないか☆?!」


09:28

201512260928

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんのこっちゃ☆」

KIFUWARABE_80x100x8

「何て書いてあるんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「読まなくても、こういうときに出てくるダイアログボックスというのは

過去版には戻れなくなりますがバージョンアップしますか? とか、そういうのだと予想☆

とりあえず 読む努力をしてみるぜ☆」


09:34

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「単語単位でグーグル翻訳……☆」

either … どちらか。

behavior impacting … 行動衝撃。

such that … そのような。

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ なんのこっちゃ☆

[OK]ボタンを押してみるかだぜ☆?」

KIFUWARABE_80x100x8

「おう☆」


09:39

201512260939

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふーむ☆? 読み込めたのかだぜ☆?」

KIFUWARABE_80x100x8

「お父ん、ブラウザーに Migration Report というタブが開いているぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「マイグレーションって何だっけ☆? すぐに辞書を引くのは嫌だぜ☆

まったく記憶に かすりもしないぜ☆」

201512260944

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「エラーが1個出ているのが気になるぜ☆」

KIFUWARABE_80x100x8

「お父ん、Migration は移行という意味らしいぜ☆? グーグル翻訳した☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

KIFUWARABE_80x100x8

「エラーは、バックアップできなかったというだけなのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「メッセージが2件あるみたいだから、読んでみようぜ☆?」


09:50

201512260949

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「確かに、Backupフォルダーの中は空だぜ☆

Solution migrated successfully って書いてあるだろ☆ 移行は成功したんじゃないか☆?」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Visual Studio をちょっと触ってみるかだぜ☆」


09:53

201512260953

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆! .dsw ファイルが無くなって、 .sln ファイルができているぜ☆!

これ、C# でよく使う、ソリューション・ファイルだぜ☆」

KIFUWARABE_80x100x8

「ええかんじか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ええかんじかもしれないぜ☆」


09:59

201512260959

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.sln ファイルを叩くと、黒い画面はどこかへ行ったのか、こういう画面が出てきたぜ☆」

KIFUWARABE_80x100x8

「この画面は何だぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムを書いたり、動かしたりする画面だな☆

Visual Studio 2012 と だいたい似ているんだが、細かく違う感じだな☆

一番上の タイトルバーの右寄りにある、紫色の2の字が気になるぜ☆ クリックしてみよーぜ☆」


10:03

201512261003

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「えっ☆! これって お試し版トライアルライセンスなのかだぜ☆? あと6日とか書いてないかなんだぜ☆?」

KIFUWARABE_80x100x8

「6日後には使えなくなるのかなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そんなんなったら、お父んは ハンギング・ネック、ダイビング・ヘブン だぜ☆」

KIFUWARABE_80x100x8

「調べようなんだぜ☆」


10:08

 

手っ取り早く教えて 『Visual Studio Community 2015で有効期限が切れた』

http://hayakute.kantan-sakusaku.com/visualstudio/2015/0831113326/

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「サインインすると 何回でも延長できる感じなのかだぜ☆?」

KIFUWARABE_80x100x8

「生存確認か☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まあ、ボタンを押すだけなら、やるけど☆」


10:16

201512261015

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ほら、きふわらべ☆ ここにファイルが並んでるだろ☆」

KIFUWARABE_80x100x8

「おう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 .h が ヘッダ・ファイル、 .cpp が C++シープラプラファイルだぜ☆

.ico はファイルアイコン、 .bmp はビットマップ画像ファイルだな☆

お父んは一度、これらのファイルを C#化 しようとして そのまんまになっている経験があるので、

中身はだいたい予想が付くぜ☆」

KIFUWARABE_80x100x8

「それより早く動かそうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「一応確認だぜ☆

cgf というのは Computer Go Forumコンピュータ 碁 フォーラム の頭文字だぜ☆

wsk というのは Windows Socketウィンドウズ ソケット の頭文字だぜ☆ 通信部分だな☆

term というのは 規約という意味だと思うんだが、

通信部分の上に乗っかっているデータのやり取り、『Standard Go Modem Protocol標準 碁 モデム・プロトコル(SGMP)』が書かれている感じだぜ☆

pipe は、『GnuGoグニュー碁』と対戦するための『Go Text Protocol碁テキスト・プロトコル(GTP)』 が書かれている感じだぜ☆

main というのは、プログラムのエントリー・ポイントのことだと思うんだぜ☆ スタート地点な☆

win というのは、碁というよりは、Windowsの画面とかを主に扱うプログラムみたいだな☆」

KIFUWARABE_80x100x8

「コンピューターの思考はどこなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CgfGoBanは、『Graphical User Interfaceグラフィカル・ユーザー・インターフェース(GUIグイ)』と言ってな、画面だけだぜ☆

思考部分は、cgfgobanフォルダーの隣にある cgfthinkフォルダーの中にあるぜ☆」

KIFUWARABE_80x100x8

「そっちも後で見ようぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おうだぜ☆」


10:58

201512261058

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++というのはコンパイル型言語で、同時翻訳インタープリター型言語の対義語だぜ☆

コンパイル型言語は makeメイクファイルのようなものを使って、 コンパイル、リンク を行うことで

ライブラリの参照などを解決し、

中間オブジェクト言語を作りながら、最終的に 実行形式のバイナリファイルを 出力するんだぜ☆

これらのことを、

[ソリューションのビルド] というメニューボタン1発でやってくれるのが

Microsoft Visual Studio なんだぜ☆」

KIFUWARABE_80x100x8

「そうか☆ じゃあ押そうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……☆」(カチッ)


11:04

201512261104

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「げぇーっ☆!(横山光輝風)」

KIFUWARABE_80x100x8

「エラーが出ているぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

incompatibleインコンパチボー というのは互換性がないという意味だろ☆

command-line optionsコマンド ライン オプションズ というのは、プログラムをスタートするときに最初に与えておく条件だぜ☆

じゃあ、 /ZI と /Gy は何か、なんだが そんなん覚えているわけがないぜ☆

コンパイラ・オプションだと思うんだぜ☆ 例えば、32bit と 64bit 機は違うぜ、とか☆」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


11:18

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「見ろ☆!」

201512261120

MSDN 『/Z7、/Zi、/ZI (デバッグ情報の形式)』

https://msdn.microsoft.com/ja-jp/library/958x11bc.aspx

 

KIFUWARABE_80x100x8

「使用できないのなら、じゃあ どうすればいいんだぜ☆?」


11:26

201512261123

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Project] – [プロジェクト名 Properties…] と進み……☆、」

201512261128

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [C/C++] – [Debug Information Format] 欄の▼ボタンを押すと、選べるぜ☆」

KIFUWARABE_80x100x8

「どれを選ぶといいんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「知らん☆!」

KIFUWARABE_80x100x8

「ググろうぜ☆?」


11:34

201512261135

MSDN 『方法 : Visual C++ プロジェクトを 64 ビット プラットフォーム用に設定する』

https://msdn.microsoft.com/ja-jp/library/9yb4317s.aspx

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんのこっちゃか わからんが、 /Zi にしとけば いいのかなんだぜ☆?」

KIFUWARABE_80x100x8

「とりあえず /ZI 以外のそれっぽいものを選んで 先に進んでみようぜ☆?」


11:38

201512261137

\ ガクブル ガクブル ガクブル ガクブル ガタタタタタタタタ☆ /

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「コンパイルが……………………、通った……………………☆」

KIFUWARABE_80x100x8

「でけたか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「でけたっぽいぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このコンパイラ・オプションが通らないから C# で書き直そう、という話しだったのに☆」

KIFUWARABE_80x100x8

「ものの 2時間30分 ぐらいで コンパイルとやらが完了したみたいだが☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、実行ボタン押すと 動くのこれ☆?」


11:46

201512261146

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 [Debug] – [Start Without Debugging] を押すと デバッグじゃないモードで実行できるはずだぜ☆

Visual Studio 2012 の頃は [F5]キー一発で実行でけたんだが、

Visual Studio 2015 では [F5]キー一発で実行できないのかなんだぜ☆?」


11:49

201512261148

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まじかー☆ C++が動いている画面を18年ぶりぐらいに見たぜ☆」

KIFUWARABE_80x100x8

「でけたか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「半分ぐらいはでけた☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆」


11:57

201512261157

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「.dll がないとか ダイアログボックスが出てたと思うんだが、動いているぜ☆

前に、どれだったか、.dllが無いと サウンドが出なくなるが 動きはする囲碁プログラムを見たことがあるぜ☆

反応がないので クリックしてたら 黒石を置いてしまって いきなりヘボ試合だぜ☆」

KIFUWARABE_80x100x8

「勝てよな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そういえば、cgfthink はランダム置きだったはずだぜ☆

まだ勝機はあるぜ☆!」


12:04

201512261203

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「白いの、全然ランダム置きじゃなくて、殺しにかかってくるんだけど☆」


12:15

201512261215

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか お父ん、負けた気がするんだぜ☆」

KIFUWARABE_80x100x8

「おお、おとんよ、まけてしまうとは なさけない☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンパイルに通って 囲碁に負けるとは このことかだぜ☆」


12:18

KIFUWARABE_80x100x8

「これで、何ができるようになったんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++がコンパイルできるようになったといっても、

C++でプログラムが組めるかというと また別なんだぜ☆

C#で囲碁プログラムを書いて、

C#の囲碁プログラムを読める CgfGoBan をC++で書く、

ぐらいのことができればいいかな、と思うんだぜ☆」

KIFUWARABE_80x100x8

「でけそうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ さっぱり……☆ 次の課題だな☆ 今日はここまでだぜ☆」

KIFUWARABE_80x100x8

「おつだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おつ~☆」


 

C++のコンパイルが通ったぜ☆!

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進なんだぜ☆!

 

 


 

13:23

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ眠りに落ちないので cgfthink もコンパイルしようぜ☆」

KIFUWARABE_80x100x8

「おう☆」


 

13:27

201512261326

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「同じ手順で 2分とかからず コンパイル完了した感じ☆」

KIFUWARABE_80x100x8

「cgfthinkの中身はどうなっているんだぜ☆?」


 

13:35

201512261333

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「恐らく、cgfthink.c という C言語のファイルが1個だけ入っていて……☆」

 

201512261337

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgfthink.c の中の cgfgui_thinking(~) という関数が、CgfGoBan から呼び出されるんだと思うんだぜ☆

cgfgui_thinking( ) 関数がやるべき仕事は、石を置く位置 z (交点を数字1個で表す)を返すか、

パスを意味する 0 を返すか、どちらかをやることなんだぜ☆」

KIFUWARABE_80x100x8

「C#で cgfgui_thinking(~) を作ることはできないのかなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++側に改造が要ると思うんだぜ☆

C++は、C#で作った .dll を読むことはできなくて、 com だか何だかなら読めるとか

読んだ気がするんだぜ☆

さて、GnuGoのように作るか、CgfThinkのように作るか、

どっちが簡単なものかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今日はここらへんで終わりだぜ☆」

KIFUWARABE_80x100x8

「おやすだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おやす~☆」

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(21) C++を調べようぜ☆(^▽^)www
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【将棋】いけいけ☆!第26回世界コンピュータ将棋選手権(3) ちょっと動かしてみるかだぜ☆?(^~^)

2015-12-21 17:28

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やらなければならないことの数が マウンテン で

どうにもこうにも ブルドッグ だぜ☆」

KIFUWARABE_80x100x8

「ブルドッグとは どういう状態なんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Microsoft Visual Stdio 2015 は無料だぞ、

という話しを聞いたので、インストールに挑戦してみるぜ☆

C#の仕事を抱えていない今ならできるぜ☆」

KIFUWARABE_80x100x8

「わたしと何の関係があるんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「開発環境の更新だぜ☆」

KIFUWARABE_80x100x8

「ふむ☆ なんだかわからないが、やってくれだぜ☆」


17:36

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ちなみに わたしが今まで使っていた環境は

Microsoft Visual Studio Express 2012 for Windows Desktop

だぜ☆」

201512211736

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず、Cドライブの容量を空けるかだぜ☆」


18:00

201512211800

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「16ギガバイトほど、Cドライブの容量を空けたぜ☆

このページからダウンロードできるのかだぜ☆?」


18:04

201512211803

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「3つも選択肢があるなんて、ひどいぜ☆!

どれを選んだらいいか、分かるわけないぜ☆

右上の緑色のボタンを押してみるかなんだぜ☆」


18:06

201512211806

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「分け分からんので Community にしておいたぜ☆」


18:09

201512211809KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この 5ギガバイト のプログラム言語を 1つ入れるだけで

容量は せいいっぱいだぜ☆」


18:15

201512211815

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なぜ C++ を入れているのか 分からないが、

黙って見ておくんだぜ☆

いろんな言語を入れる気かなんだぜ☆?」


18:48

201512211848

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これでいいのだろうかなんだぜ☆?」


18:52

201512211851

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どれが Visual Studio 2015 のエントリー・ポイントなのか

分からないぜ☆

Blend for とか、Python とか、わたしを惑わすのはやめてほしいぜ☆」


18:54

201512211854

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんだぜ~☆?

まっ黒で怖いぜ☆

こんなので ほんとうに きふわらべ を開けるのかなんだぜ☆?」

KIFUWARABE_80x100x8

「がんばれだぜ、お父ん☆!」


18:59

201512211859

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さて……、このファイルを開けられるのかどうかなんだぜ☆?」


19:01

201512211901

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんだぜ☆? この かっこいい 画面は☆?

きふわらべは ここに いるのかなんだぜ☆?」

KIFUWARABE_80x100x8

「ここだぜ~~☆!

お父ん、探してくれ~~☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ スタートアップ・プロジェクトを設定して、 ビルドから 実行するという

流れで いけるかどうか☆」


19:04

201512211904

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ いたぜ☆! きふわらべ☆」

KIFUWARABE_80x100x8

「ヘヘッ☆!(^▽^)」


19:06

201512211906

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの好きな NDFから学習した 後手四間飛車だぜ☆

よーし、2015の環境に移れそうだぜ☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず ここで休憩だぜ☆ 晩飯買ってこようぜ☆」

KIFUWARABE_80x100x8

「98円のカレーを20個ぐらい 買っておこうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ 78円のときを狙いたいぜ☆」


 

Microsoft Visual Studio 2015 への環境移行が 進んだぜ☆!

第26回世界コンピュータ将棋選手権に向けて、微速微進、遅々前進だぜ☆


22:12

201512212211

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Blend for を適当にダブルクリックしていると、

Blend for じゃない別のエディターが開いて GUIを編集できるようになったぜ☆?」


22:41

201512212241

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「初期局面を好きにならないような工夫を

なんとか入れるんだぜ☆ww(^q^)」


23:07

201512212307

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここからビジュアル・エディターに移動できるのかだぜ☆

覚えておかなくちゃななんだぜ☆」


00:28

201512220028

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これで 13手目~30手目 だけを うそがくしゅう することにより、

序盤の ぎっこんがっこん を改善することを期待だぜ☆」

KIFUWARABE_80x100x8

「よし、やってみるぜ☆!(^▽^)」


01:09

201512220109

KIFUWARABE_80x100x8_02_Hidosu

「どうへほ☆! おっおっおっ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒の利きが分かればいいんだが、まあ がんばったんじゃないかだぜ☆

どんまいだぜ☆(^▽^)」


 

 

はてなブックマーク - 【将棋】いけいけ☆!第26回世界コンピュータ将棋選手権(3) ちょっと動かしてみるかだぜ☆?(^~^)
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(20) CgfGoBanを調べようぜ☆<その3>(^▽^)www

2015-12-15 12:34

\ ケロッ☆ /

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やらなければならないことの数が マウンテン なんだが、

囲碁ブログを最初に開いてしまったぜ☆」

KIFUWARABE_80x100x8

「囲碁プログラムが先か、在宅バイトが先か、

手順前後で 同じ局面に合流すればいいだろうなんだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「CgfGoBan に、囲碁エンジンを 接続するには、どうすればいいんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「とりあえず、CgfGoBanに付いている cgfthink.dll のソースを読もうぜ☆

わたしが読めるのは C# なので、

C++を C#に翻訳する必要があるけど☆」


12:44

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C#から、C++のdllを使うことはできるのかだぜ☆

その逆はどうだぜ☆?」

 

Qiita 『C#からC++のDLLを使う』

http://qiita.com/ask/items/ee2ff5b8706effc0c3d8

 


12:46

 

#define NO_MONEY 0 『C++から利用可能なC#によるクラスライブラリの作成』

http://d.hatena.ne.jp/kayn_koen/20091103/1257205235

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さっぱり暗号な世界だが、ちょっと読んでみるぜ☆」


12:50

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++側に改造を加えないと、C#のdllを読み込めないみたいだぜ☆

C++を ノー・改造で C#のdllを読む方法はないのかだぜ☆?」


12:52

 

森下功啓製作所ホームページ 『Visual C++でC#やVBで作ったDLLファイルを利用する方法』

http://morimori2008.web.fc2.com/contents/PCprograming/Cplusplus/HowToImportCSLib.html

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンパイル☆? 実行☆? ノー・コンパイルでやってほしいんだぜ☆」


12:54

 

端くれプログラマの備忘録 『[C#] C++からC#のDLLを呼ぶ方法』

http://www.84kure.com/blog/2014/07/17/c-c%E3%81%8B%E3%82%89c%E3%81%AEdll%E3%82%92%E5%91%BC%E3%81%B6%E6%96%B9%E6%B3%95/

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++から C#のdll を読み込むことは不可能で、

C++からできることは C#で作ったcomライブラリ を読み込むことらしいんだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「CgfGoBanは、comライブラリを読み込んでくれるのかなんだぜ☆?ww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CgfGoBanのソースコードも読んでみるかだぜ☆」


13:01

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーん☆ CgfGoBan を、C# に改造しようかだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「それより 碁エンジンを 早く作ろうぜ☆wwww!」


13:04

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「winsock.h って何やってるんだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「windows の socket 通信だろ☆ww

接続して、送信、受信☆!」

 

全ては時の中に… 『【C++】ソケット通信』

http://blog.livedoor.jp/akf0/archives/51585502.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「通信制御じゃなくて、囲碁エンジン書きたいんだが☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「C++をコンパイルしろ☆!ww 10分だろ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C++は分からないので……☆」


13:28

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgf_win.cpp の中に書いてある PRT 関数が なにやら万能な働きをしているんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「ログを取ったり、スクロールしたり、何やってるんだろうななんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「GUIにテキスト描画でもしているのかだぜ☆?」


13:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「INVALID_SOCKET 定数って何だぜ☆?」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おかしなソケットなのかだぜ☆? ヌル・オブジェクトっぽい見た目をしているが、

わからないぜ☆」


13:47

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgf_win.cpp の WndProc でかー☆」


13:58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「WM_USER_ASYNC_SELECT というウィンドウ・メッセージが飛んできたときに、

nngs用の非同期の応答を行うような感じだぜ☆」


14:02

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「OnNngsSelect関数が、NNGSからの非同期受信のハンドラーだぜ☆

かんたんに言うと、スタート地点だな☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「そいつが 囲碁サービスを受けているクライアントかだぜ☆?」


14:08

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「OnNngsSelect を、 OnReceivedNngs にリネームするぜ☆」


14:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「nngsAnalysis が、いろんな返却値を返して 処理を分岐させているぜ☆

プログレス・バーか何かみたいなことをやりたいんだろうかなんだぜ☆

とりあえず 後回しだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ログインぐらいにしか使ってない気もするな☆」


14:15

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はあ☆! コールバック関数がケッコウ重要だぜ☆ 接続に使っているぜ☆」


14:17

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はあ☆

ダイアログボックスが いろいろやっているのかだぜ☆

C++のWindowsフォームは そういう作りなのかだぜ☆

よく調べないといけないな☆

これってあれだろ、対局開始の開始ボタンを押すところのフォームか何かじゃないか☆?」


14:28

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勝手に enum 化だぜ☆ これは Result だな☆」


14:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「StartProc というイベントハンドラもあるのか☆

こっちが ダイアログボックスの表示だったのかだぜ☆」


14:45

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「SendQuery もいろいろやってそうだぜ☆

石の色を聞いたり☆」


14:49

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「cgf_term.cpp には、何かいろいろ入っているぜ☆

NNGS の通信規約に合わせた実装は ここにまとめてあるのかだぜ☆?」


15:04

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、

(1)通信インフラ、

(2)通信プロトコル、

(3)その他

の3階層に分けたいぜ☆ まず、(1)を作ろうぜ☆」

KIFUWARABE_80x100x8

「おう、やってくれ☆」


15:09

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「一番底に、GlobalTusin というダサい名前の静的クラスを作るかだぜ☆

ここに通信用のグローバル変数を詰め込むぜ☆」


15:22

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「PF_INET とか、SOCK_STREAM とか、謎の定数が つらい☆」


15:24

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「WSAStartupも謎☆」


15:33

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「LPARAMって、何だぜ☆?」

 

通信用語の基礎知識 『LPARAM』

http://www.wdic.org/w/TECH/LPARAM

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「64bit機のC#なら、Int64 でいいかだぜ☆?」


16:01

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、通信インフラ部分は こんな感じだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「通信ソケットはこんな感じだぜ☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これを、C#のソケット通信に書き換えられるかだぜ☆?」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「自分同士でソケット通信するプログラムを C#で書いてみたらどうだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やってみるかだぜ☆」


16:09

 

MSDN 『非同期なサーバーのソケットの例』

https://msdn.microsoft.com/ja-jp/library/fx6588te(v=vs.110).aspx

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これは 碁サーバー の方のソケット通信部だろう☆

碁クライアント の方のソケット通信部の例はあるのかだぜ☆?」


16:10

 

MSDN 『非同期なクライアントのソケットの例』

https://msdn.microsoft.com/ja-jp/library/bew39x2a(v=vs.110).aspx

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これか☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「サーバーとクライアント、両方立てないと テストができないな☆!ww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふーむ☆ やってみようぜ☆」


16:33

201512151632

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ソケット通信、うまくいかないな☆

今日の囲碁プログラムは ここまでだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「囲碁のプログラムまで まだ行ってないぜ☆www」

KIFUWARABE_80x100x8

「次回はソケット通信だな☆」


 

ソケット通信の ベンキョーに 着手 だぜ☆!

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進なんだぜ☆!



 

16:38

UEUESHIMA_Komado_80x80x8_03_jitoo

「ところで なんで NNGS との通信部分を書いているんだぜ☆?

CgfGoBan に接続する方法を調べないのかだぜ☆?

グニューゴ3.6 みたいに☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆ GTP(Go Text Protocol) か☆

それも調べておく必要があるななんだぜ☆」


 

 

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(20) CgfGoBanを調べようぜ☆<その3>(^▽^)www
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(19) CgfGoBanを調べようぜ☆<その2>(^▽^)www

2015-12-14 21:37

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やべー、この1週間、全然囲碁プログラムやってねー☆!」

KIFUWARABE_80x100x8

「お父んの顔からは 緊張感が見えないぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CgfGoBan のダウンロード・ボタンを押そうぜ☆!」

 

Hiroshi’s Computer Shogi and Go 『CgfGoBan』

http://www.yss-aya.com/cgfgoban_j.html

 


21:44

201512142143

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ほう☆」

KIFUWARABE_80x100x8

「まずは ドキュメントを読もうぜ、お父ん☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「えっ☆? 左上から順番に 全てのボタンを押していけば

いいんじゃないのかだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「残機99から始める置いてある地雷は全て踏んでいくメソッドは、

ここぞ、と範囲が限定されたときに使うんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「教科書の55ページから 57ページが中間テストに出るぞ☆!

覚えておけよ~☆!」

KIFUWARABE_80x100x8

「そうだぜ、学校のセンセーとおんなじ働きをするのが

ドキュメントだぜ☆ ドキュメント読もうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

UEUESHIMA_Komado_80x80x8_03_jitoo

「人の話を聴かないのは3流、人の話を聞くのは2流、

人の話を聞いて工夫を加えるのが1流だって 将棋の偉い人が

言ってたって 又聞きのツイートで読んだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……………………☆」

KIFUWARABE_80x100x8

「ナットクしていない顔だぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「しかたない……、そんなに読んでほしいのなら

ドキュメントを読むぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「よーし、ドキュメントの目次を左上から順に読んでいこうぜ☆!」


 

CGF碁盤の解説

http://www.yss-aya.com/doc_cgfgoban.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「執筆日は 2006年の1月じゃないか……☆

この4ヵ月後に ボナンザが出てきて 山下さんは目を丸くするのかだぜ☆?」

UEUESHIMA_Komado_80x80x8_03_jitoo

「話を膨らませずに、本文を読もうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋所と似たようなもんだな☆

囲碁エンジンの名前は cgfthink.dll にして置き換えるといいらしいぜ☆」

201512142202

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こいつか☆!

でも、囲碁エンジンの2プレイヤーはどうするんだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「続きを読もうぜ☆www」


22:09

201512142209

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CgfGoBan が 2015/03/16 にバージョンアップをした16日前、

PageONではサービスが終了していた……☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「あれっ☆? 今年じゃないか☆www」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CgfGoBanの著作権表記を見ると 2005-2015 と書いてあることから、

リンクを貼りなおすのが めんどくさかったとするなら

PageON は 2005 年頃から 10年ぐらいサービスを提供していたのかもしれないぜ☆!」

KIFUWARABE_80x100x8

「ググろうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Page ON で15年サイトを運営していた人が サイトを引越しする質問を

投げかけているページがあったぜ☆

それだけの長寿サイトが 顧客を手放したのはなぜなのかだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「それより 碁☆! 碁~~~~☆!www」


cgfthink.dll の解説

http://www.yss-aya.com/doc_cgfthink.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なるほど……、ドキュメントとは 上から順番に読んでいくものなのか……☆

話しが続き物になっているぜ☆」

KIFUWARABE_80x100x8

「勉強したな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ほーう☆! なるほど、人間にも読みやすい桁揃えの符号に腐心しているんだぜ、

16進数だけど☆!」

KIFUWARABE_80x100x8

「残念だったな☆ 囲碁は 19路盤じゅーきゅーろばん だぜ☆

16進では 3つ 足りないぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そこで、16進2桁にしたみたいだな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「初期局面 + 棋譜 というセットになっているみたいだな☆

これは 将棋所のUSIプロトコル通信も同じだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「将棋所が、CgfGoBanと同じ、という可能性はないのかだぜ☆wwww

どっちの歴史が古いんだぜ☆?wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋所を起動して [ヘルプ] を押せばでてくるだろうかなんだぜ☆?

歴史の古さ 対決だぜ☆!」


22:32

201512142232

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「……………………☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「……………………☆」

KIFUWARABE_80x100x8_02_Hidosu

「……………………☆」


22:36

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「てっきり、USIプロトコル通信みたいに

CgfGoBan に 標準入出力からテキスト読み書きすれば

コンピューター囲碁ができるのかと思ったんだが、

説明を読んでみると、.dll を作って 指定の名前でメソッドを公開しろって

ことなのかだぜ☆?」

UEUESHIMA_Komado_80x80x8_01_futu

「最後まで説明を読もうぜ☆?」


Borland C++ 5.5でのコンパイルの仕方

http://www.yss-aya.com/doc_compile.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここから先は わたしには関係ないと思うぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「目だけ通しておこうぜ、すらーっと☆ すらーっと☆」


22:42

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

 

    C MAGAZINEのホームページ

 

http://www.cmagazine.jp/setbcc.html (※リンク先は書籍のC MAGAZINEとは別っぽい☆)

 

UEUESHIMA_Komado_80x80x8_02_nitaari

「2011年9月から 別の人がドメインを取得したんじゃないか☆www」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C MAGAZINEって、2006年に廃刊になっていたのか……、これも 2006年☆?

最近復刻とか書いてるけどホントかなんだぜ☆?」

KIFUWARABE_80x100x8

「C MAGAZINEを 画像検索でググったら グラマラスなモデルがずらーっと並んでいるぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

シーより ☆! 碁~~~~☆!wwww」


Gnu Go(グニューゴ)で遊んでみたい方へ

http://www.yss-aya.com/cgfgoban_j.html

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ cgfthink も動かしてないんだが、Gnu Go の遊び方ドキュメントも

読んでおくかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Gnu Go のバイナリー、636KB なのに やけにダウンロードに時間がかかっているんだぜ☆

山奥のスキー場の山頂の小屋にでも ADSL回線で サーバーが置いてあるんじゃないかなんだぜ☆?

リモートログインしたら Windows XP だよな☆」

KIFUWARABE_80x100x8

「顧客の中に そういうのが1つでも含まれていると 旧バージョンの仕様は なかなか切れないよな☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「そうと決まったわけじゃないだろ☆wwww」


22:59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よーし、ドキュメントは読んだぜ☆ 対局しよーぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「まずは cgfthink.dll と対局しよーぜ☆!

9路盤きゅーろばん はないのかだぜ☆?」

201512142301

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あるぜ☆!

なんか、初めて触った気のしない インターフェースなんだぜ☆

気のせいなのかだぜ☆?」


23:05

201512142304

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そういえば、ドキュメントを読んだところ、

cgpthink.dll は ランダムで指してくるって 書いてあったな……☆?」

KIFUWARABE_80x100x8

「ランダムな指し手はオススメだぜ☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「お父ん、シチョウで決めてくれなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな局面で シチョウ ができるのだろうかなんだぜ……☆?」


23:17

201512142316

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒を生き延びさせようとしない相手に、シチョウは決まらないぜ☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「おおっ☆! お父んが 囲碁の遊び方を覚えている☆!?」

KIFUWARABE_80x100x8

「パーフェクトできるのかだぜ☆?」


23:20

201512142320

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆ コンピューターが パスをしてきたぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「1個も取らせずに、うまいこと 追い詰めていったな☆!」

KIFUWARABE_80x100x8

「お父んは ランダムよりは かしこい ということか……☆!」


23:25

201512142324

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勝ったと思うんだが……☆

囲碁って 勝ってるのか 負けてるのか よく分からんよな☆」

UEUESHIMA_Komado_80x80x8_03_jitoo

「全部黒だし、勝ったんだろ☆?」

KIFUWARABE_80x100x8

「HAMA が 47 というのが、すごいところなんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この盤面をみて、 47 という数字はどこから出てきたんだぜ☆?」

UEUESHIMA_Komado_80x80x8_03_jitoo

「取った石の数の2倍と、自分の石で囲んだ 空き地の数じゃないのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうなのかだぜ☆?

設定画面で見た 6.5コミ というのも怪しいぜ☆

みたところ 0.5 という端数はどこにもないようだぜ☆?」

KIFUWARABE_80x100x8

「謎だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なにかもっとこう、盤面を見て、

誰がどうみても どっちが勝った、みたいな何かがほしいよな☆」

UEUESHIMA_Komado_80x80x8_03_jitoo

「整地するとか……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「整地をしてくれる囲碁プログラムを まだ見たことないぜ☆」

KIFUWARABE_80x100x8

「盤を横に振ったり、縦に振れば 整地できないのか☆?」

UEUESHIMA_Komado_80x80x8_03_jitoo

「陣地の囲いが崩れるので……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勝っているところで さっさとパスしないと、

石を置きすぎて 自分の陣地を 1マスずつ損していくこともあるゲームだったような

記事を読んだ気もするぜ☆

むむむ☆

ちゃちゃっと作りたいのに、勝利条件が分かりにくいゲームって、先が思いやられるぜ☆」


23:35

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は GnuGo3.6 との対局にも挑戦したいぜ☆」

KIFUWARABE_80x100x8

「よっしゃ☆」


23:50

201512142350

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この ドロップダウン・リストボックス みたいな ユーザー・コントロールには

テキストを コピー&ペースト することもできるのかなんだぜ☆」


23:54

201512142354

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ こんなのでいいのかどうか……☆?」


23:58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆ 始まったぜ☆」

 

\ ぽちっ ぽちっ /

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

201512142358

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆? なんでコンピューターは もうパスをしてくるんだぜ☆?」

KIFUWARABE_80x100x8

「相手は グニューゴ3.6 だぜ☆

ランダム指しの cgfthink.dll とは強さが違うぜ☆

早く続きを指すんだぜ☆!」

UEUESHIMA_Komado_80x80x8_03_jitoo

「まさかお父ん、もう勝っているのでは……☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「だから、囲碁って

自分が 勝ってるのか 負けてるのか、さっぱりわからないんだぜ☆

KIFUWARABE_80x100x8

「もう1回パスしてみれば 分かるんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「負けるの嫌だし☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「そういえば、グニューゴ3.6 は、自分の判断で勝手に投了してくるようになったって

ドキュメントに書いてあったんだぜ☆www

オプション設定で –never-resign を付けて勝手に投了しないようにしたはずなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これは投了じゃなくて、パスだし……☆」

KIFUWARABE_80x100x8

「今回はノーゲームだと思って パスして 動作確認しようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……………………☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「ナットクしていない顔なんだぜ☆wwwwww」

KIFUWARABE_80x100x8

「コンピューターは 自分が勝ったと思ったから パス してきたのかもしれないな☆

もうお父んの負けじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……………………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、パスして はっきりさせてやるぜ☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「wwwwwwwwwww☆」


2015-12-15 00:08

201512150008

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「何も起こらないぜ☆?」

KIFUWARABE_80x100x8

「今度は どっちも HAMA が 0 だぜ☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「引き分けじゃないのか☆wwwwwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ いっぱい 置くところがあるのに……☆

囲碁って、やっぱり 結果画面が わからないぜ☆」


 

00:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「とりあえず、CgfGoBan は動かせたというところで 今日はおわりだぜ☆

結局、CgfGoBanとの通信方法は よくわからないが……☆」

KIFUWARABE_80x100x8

「次から いよいよ CgfGoBanとの通信の調べ物だな☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「ちゃちゃーっと作ろうぜ☆wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「んー、まあ、なんとかしたいところだぜ☆」


 

CgfGoBan の動作確認を した ぜ☆!

第9回UEC杯コンピュータ囲碁大会に向けて、微速微進、遅々前進なんだぜ☆!

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(19) CgfGoBanを調べようぜ☆<その2>(^▽^)www
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(18) CgfGoBanを調べようぜ☆wwww

2015-12-08 19:41

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「バイトが終わらねー☆ 1日で終わるかと思った軽い仕事が

何日目かだぜ☆?」

KIFUWARABE_80x100x8

「ちょうど12月1日スタートだから、8日目が経過しようとしているぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「…………☆! 予定の8倍☆!」

KIFUWARABE_80x100x8

「まだ伸びるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「…………☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「終わらないものは仕方ないし、囲碁プログラムやろーぜ☆」

KIFUWARABE_80x100x8

「おう☆!」

UEUESHIMA_Komado_80x80x8_03_jitoo

「お父んが バイトからいなくなったと思ったら 囲碁ブログの方に来てたのか☆」


19:45

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「11月24日ごろぐらいから始めた囲碁プログラム、

まだ ほとんど 未着手だぜ☆

他人のソースコードを開けて 動かないように

ぐちゃぐちゃに壊した程度だぜ☆」

KIFUWARABE_80x100x8

「ぐちゃぐちゃなものを 納品するのは 得意技だろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コメント欄で CgfGoBan というのを読むといいというのを、

nonameさんが教えてくれたんだぜ☆

知ってるぜ、noname というのは 碁サーバー の名前だぜ☆」

KIFUWARABE_80x100x8

「名無しさんじゃないのか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「むむ……☆」


 

19:53

 

CgfGoBan

http://www.yss-aya.com/cgfgoban_j.html

 

KIFUWARABE_80x100x8

「なぜお父んは これを見つけられないのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「深さ優先探索なので……☆」

KIFUWARABE_80x100x8

「目次の一番上にあるのに……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Cgf、何それ、みたいな……☆」

KIFUWARABE_80x100x8

「NTT東日本。フレッツ光マンションタイプ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ はいっ☆ 代理店の勧誘ですね☆! 転用番号を教えます☆!」

KIFUWARABE_80x100x8

「Cgf。碁盤」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「誰だぜ Cgf って☆ 知らないぜ☆ (ガチャン)」

KIFUWARABE_80x100x8

「……………………☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「ピカチュウの碁盤にしようぜ☆wwwwww

目次に並んでたら ぜったい最初に開けるだろ☆wwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……………………☆」


20:13

UEUESHIMA_Komado_80x80x8_03_jitoo

「あっ、バイトの方のプログラム また 動いてないぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「またダメだったかだぜ☆! 見にいくぜ☆!」


 

 

 

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(18) CgfGoBanを調べようぜ☆wwww
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(17) Go Text Protocol(GTP)、何これなんだぜ~☆!www(^▽^)

2015-12-08 09:38

\ えー☆! /

KITASHIRAKAWA_Chiyuri_80x100x8_02_Hidosu

「えー☆!」


 

09:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「とりあえず GTPの実装の一例は、

GNUGO3.8 interface フォルダーに入っている、

gtp.h

gtp.c

play_gtp.c

に入っているぜ☆

そのうち、次の4つのコマンドは まだ使ってるのかどうか ぼんやりしている☆

gtp_fixed_handicap

gtp_list_commands

gtp_estimate_score

gtp_query_orientation」

KIFUWARABE_80x100x8

「コマンドって何だぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「例えば、誰かが、

囲碁GUI と 囲碁サーバー を作っておけば、

囲碁エンジンを作るプログラマーは助かるだろ、と思って

囲碁GUI と 囲碁サーバー を作るだろ☆

でも、わたしは C# しか分からないんだぜ☆

そこで、 C++ で書かれている

囲碁GUI と 囲碁サーバーを C# で作り直すところから始めるわけだが、

そんなときに目にするのが コマンド だぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「なぜ 囲碁エンジンだけにしとこう、としないんだぜ☆www」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューター将棋では、

フラッドゲート というサーバー、

将棋所 というGUI

が鉄板で 将棋所は フラッドゲートにつながるんだが、

これが コンピューター囲碁になると

No Name Go Server(NNGS) というサーバー、

GoGui というGUI

になるらしいんだぜ☆

そして GoGui と NNGS サーバーは通信しない☆ はず☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「GoGui は Go Text Protocol(GTP)、

NNGS は Go Modem Protocol(GMP)☆

そして GTP を GMP に変換するツールがあるらしいんだぜ☆

その名も GTP2NNGS ☆ こいつは .rb (Ruby言語か) で書かれていて

C#マンのわたしには 使えないぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Go Modem Protocol は、電線を通ってそうなプロトコルだぜ☆

1111 1111 1111 1111

とか書いて通信するんだぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Go Text Protocol は、コマンドが ざっと見 136 個ほどあるぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「囲碁をするのに、コマンドが 136 個☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「見えているところを指で数えて 136個 だぜ☆ まだ出てくるかもしれないぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このイゴ・マウンテンを登頂する道のりは、…………、

ちなみに コンピューター将棋では どうだったかを 復習しておくぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューター将棋では、USI プロトコルを書けば

将棋所に 将棋エンジンを登録できる☆ あとは全部 将棋所 がやってくれるぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「USIプロトコルって どんなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ざっくり言えば、

駒の配置図が飛んでくるので、 指し手 を投げ返す、

そんなキャッチボールをする通信だぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「コンピューター囲碁の GTPプロトコル ってどんなだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「謎☆! これから読む☆!

すくなくとも ドラゴン とか フクロウ が飛び交っていることは確実だぜ☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「…………☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そして UEC の大会では、

NNGS を使います、使っていいコマンドは 5つの種類だけです、

とあるんだぜ☆

NNGS の 5種類のコマンドが、 GTP では どのコマンドか 謎☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「…………☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ どうしたものかだぜ☆」

KIFUWARABE_80x100x8

「イゴ・マウンテンの入り口はどこだぜ☆? バスは出ていないのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、GoGui に登録できて、動く、 囲碁エンジン を目指そうぜ☆

そして これは、UECの大会に出すには 関係ない作りだぜ☆

それができたら、Ruby を勉強しようぜ☆

GTP2NNGS が使えるようになれば、オッケーだろ☆

12月中に、1月末までに それが完了するという目星が ついていないようだと、

よくて、間に合わせで ランダムに石を置くだけの囲碁プログラム を目指すことになるぜ☆

大会は 3月18日☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「むむむ…………☆」


 

はてなブックマーク - 【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(17) Go Text Protocol(GTP)、何これなんだぜ~☆!www(^▽^)
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【囲碁】きふわらべがポナンザ(の弟)を倒す☆!目指せ第9回UEC杯コンピュータ囲碁大会(16) GoGuiを見てみようぜ☆ww(^▽^)

2015-12-07 02:48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「バイトの cron は1時間に1回しかテストできないし、

囲碁プログラムやろうぜ☆」

KIFUWARABE_80x100x8

「バイト主は 1時間に1回しかテストできない cron の合間に

もう片方のバイトをやっていると思っているぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「バイト主もあてが外れたようだな☆

囲碁プログラムをやるんだぜ☆」


02:49

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「コンピューター将棋でいうところの 将棋所 にあたるソフトが

GoGui らしいんだぜ☆

どんな感じのものか、見てみようぜ☆」

 

GoGui

http://gogui.sourceforge.net/

 

KIFUWARABE_80x100x8

「見覚えがある気がするんだが……☆」


02:53

201512070253

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆ これは初めて見るソフトだぜ☆」

KIFUWARABE_80x100x8

「そうか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「囲碁エンジンの登録はあるのかな~、なんだぜ☆?」


02:55

201512070255

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このメニューとかどうだぜ☆?」


02:58

201512070258

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ほう☆

懐かしいぜ☆

将棋所のときは、ボナンザや、レッサー改などを入れて遊んだぜ☆

囲碁エンジンには どんなものがあるんだぜ☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆」


03:03

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さっぱりわからんぜ☆

ここにある、役に立つ記事に目を通そうぜ☆」

 

囲碁プログラムを作る人向けのリンク集

http://www.yss-aya.com/howtogo.html

 


03:23

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そういえば、ponanGO は、ponanza の弟らしいぜ☆」

KIFUWARABE_80x100x8

「ponanzaではない……☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どっちも倒そうぜ☆」

KIFUWARABE_80x100x8

「おう☆!」


03:38

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そういえば、コンピューター将棋のときに」

KIFUWARABE_80x100x8

「わたしのことか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「人間にわかりやすいようにプログラムを書こう☆!

として ひどい目に遭ったんだぜ☆

データは コンピューターが 手を付けやすいように、

表示は 人間が 見やすいように、

切り分けて両立させないといけないな☆」

KIFUWARABE_80x100x8

「勉強したな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勉強したぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「モデル・ビュー・コントローラ アーキテクチャ そのまんま の話しなんだが、

もし 人間の誰かさんの見やすさに合わせて 世界が成り立っていたら、

他人さんは 世界の中心さんの端っこに立っていて、

地面が ゆがんでいる~、とか言って 大慌てだよな☆」

KIFUWARABE_80x100x8

「人間の見やすさのことを言っている ビューは、

調整したものだということだな☆

ビューに合わせて 世界を設計しては、

レンズの端っこで身長が伸びたり縮んだりしている人がいるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「哲学だな☆」

KIFUWARABE_80x100x8

「哲学だぜ☆」


04:27

勝也GUIの著作権は作者(池泰弘)が保有します。

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「むむ☆!(^~^) 勝也GUIの作者は 勝也さんじゃないのか……☆!

どこかで聞いた人の名前だぜ☆むむぅ~☆!(^~^)」


04:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よ~し☆

勝也GUIのソースコードを読んでみようぜ☆」

KIFUWARABE_80x100x8

「バイトは……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「バイトは cron の起きる 5:00 だぜ☆」


04:48

201512070448

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしには C++(シープラプラ)は読めないので、

C#に意訳していくぜ☆」

KIFUWARABE_80x100x8

「おう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、C++に必要なファイルを削除します☆だぜ☆」


04:52

201512070452

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんなところかだぜ☆」


04:54

201512070454

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、C言語で必要な 関数プロトタイプ宣言を

削除していこうぜ☆」

KIFUWARABE_80x100x8

「まるで魚の骨を取り除くかのようだぜ☆」


05:00

201512070500

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、こういう #define の整数の定数を、

C#のenum型にしようぜ☆」

KIFUWARABE_80x100x8

「5時だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「crom から届いている エラーメール を確認するかだぜ……☆」


05:12

201512070512

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「名無し型には、てきとーに型名を与えていくぜ☆」