2014/08/06 18:42
今日は CSAプロトコルについて 自習してみたいと思う☆w
これが書ければ 電王戦には出れるはずなんだぜ☆
http://www.computer-shogi.org/protocol/tcp_ip_server_113.html
こんなブログもあったんだぜ☆
『将棋ゲームPC』
http://www.game4pc.com/
ソースがほしいんだぜ~☆
2014/08/06 19:35
う、うさぴょんのソースコードを読むんだぜ☆ きっとCSAプロトコルが書いてあるはず☆
main に何か書いてるんだぜ☆
TCP/IP ができれば、CSAプロトコルはただの文字みたいなんだぜ☆
C#で TCP/IP 通信をする方法が分かればいけるはずなんだぜ☆
http://dobon.net/vb/dotnet/internet/tcpclientserver.html
2014/08/06 21:02
こっちから送信するのと、向こうからくるのを受信するの、
同時にするには どうすればいいんだぜ……☆
サーバーは作らなくていいんだぜー☆ 将棋サーバーがあるのだから☆
クライアント側のプログラムだけ調べればいいんだぜー☆
2014/08/06 21:48
将棋サーバーから返信がこないんだぜ☆、と思っていたんだが
文字コードを UTF8 にしているのが悪いのかもしらん☆
なんだっけ☆
ASCII の 7ビットとか分からんが ASCIIなら何でもいだろう☆ とりあえず
System.Text.Encoding enc = System.Text.Encoding.ASCII;
というのを使うぜ☆
うさぴょんのソースコードの main を見ながら
コマンドの末尾には 改行を付けておくこと、という
プロトコル説明書に書いてあったことを思い出したんだぜ☆
(LF は ’¥n’、 CRは’¥r’なので、 ¥nが正解だぜ☆)
ここまできたー☆
ところで
うさぴょん ではなくて れさぴょん ではなかったか☆
このソース☆
http://homepage1.nifty.com/Ike/lesserpyon/
サーバーからのコマンドは ”~¥n~¥n~¥n” みたいな感じでつながって
送られてくるので、
string[] lines = resMessage.Split(new string[] { "\n" }, StringSplitOptions.None);
foreach (string line in lines)
{
Console.WriteLine( "v(^▽^)v:"+ line);
}
で分解するぜ☆
2014/08/06 22:59
AGREE¥n を送ったら、 START:~ が返ってきたんだぜ☆
ここから将棋を指せばいいはずなんだぜ☆
え~と、CSAプロトコルは……☆
http://www.computer-shogi.org/protocol/tcp_ip_server_113.html
+7776FU
みたいな簡単な文字を送ればいいのか☆
後手番なのに 先に 初手を送信してしまったぜ☆ww 相手にされないぜ☆wwwww 止まったのかな☆
あっ、非合法手を 送ってしまったぜ☆wwww
将棋所で角道を開けたら +7776FU,T919 が返ってきたぜ☆
仕様どおりだな☆
あー、かたまった☆
手入力だと、最後の [Enter] キー入力が送られていないんじゃないか☆?
送信する → 返信を待つ → 送信する → 返信を待つ
という交互の流れに作ってあるので、返信がこなかったら はまる☆wwww
返信を待つ 返信を待つ
文字を打ち込む→送信する 文字を打ち込む→送信する
返信を待つ
みたいに、文字を打ち込んでいる間にも 返信を待ちたいし、
文字を打ち終わったあとにも また返信を待たずに すぐに
文字を打ち込みたいときもあるかもしれないぜ☆
でもまあ☆ CSA1.1.3プロトコルへの対応も、なんだかいけそうな感じがしないか☆?
今日も 成果あり だぜ☆!
2014/08/06 23:21
[0回]
PR
http://grayscale.dou-jin.com/Entry/30/【将棋】めざせ電王戦(3) CSAプロトコルのクライアント側だけ作れればなんとかなんだが☆