メニュー
FrontPage

目標

スレ進行話題

プログラム


ストーリー

大道具・小道具

各種駒イメージ
  ├歩兵と金
  ├香車成香
  ├桂馬成桂
  ├銀将成銀
  ├金将
  ├飛車竜王
  ├角行竜馬
  ├王将王将改
  ├玉将玉将改
  ├軍団
  | |
  | ├山賊軍
  | ├昆虫軍
  | ├妖怪軍
  | ├西洋軍
  | ├海賊軍
  | ├給仕軍
  | ├雪国軍
  | ├干支軍
  | ├西洋妖怪軍
  | ├チャイナ軍
  | ├女子高生軍
  | ├先代王将軍
  | ├海軍
  | ├熱血軍
  | ├西部劇軍
  | ├亜細亜軍?
  | ├企業戦士軍
  | ├商店街軍
  | └SF軍とミリタリ軍
  |
  └その他

知識の部屋

素晴らしき脱線企画

リンク
Wiki内検索
最近更新したページ
2009-12-29
2009-08-01
2009-02-24
2009-01-05
2008-12-28
2008-06-27
2008-06-22
2008-01-25
2007-11-19
2007-09-10
2007-08-23
2007-08-14
2007-08-12
2007-08-08

プログラム関係情報007

15 愛のVIP戦士 2007/02/23(金) 18:06:22.13 ID:9DiT+o9W0
何度も悪いけど再掲載
思考作っているプログラマさんからの反応が無ければ30分後くらいに最新版うp

sikou_ini(int *c)に以下のコードを追加してレベル設定をお願いします

int level;
char cFile[256];

GetCurrentDirectory(256,cFile);
strcat(cFile,"\\sikou.ini");
level = GetPrivateProfileInt(_T("SIKOU"),_T("LEVEL"),5,cFile);
if( level < 1 || level > 5 ) level = 5;//←数値はそっちの内部に適する形に納めてちょ、こっちからは1〜5で指定するから


88 愛のVIP戦士 2007/02/23(金) 21:21:05.57 ID:0cmt7V3i0
>プログラマ氏 つくってみたお
http://shogi.vip2ch.com/dl.php?f=koma0113.zip


91 愛のVIP戦士 2007/02/23(金) 21:25:51.61 ID:9DiT+o9W0
もしかしてsikou_ini()ではなくsikou()の中でレベル変更してまつか?


95 愛のVIP戦士 2007/02/23(金) 21:28:12.56 ID:9DiT+o9W0
sikouは対局中何度も呼び出す命令ですし
カレントディレクトリはファイル操作作業が行われるたびに変更されるので、iniで対局前に一回ぽっきり指定した方が合理的だと思う次第であります


96 愛のVIP戦士 2007/02/23(金) 21:28:42.87 ID:0cmt7V3i0
スレ住人さん流れぶった切ってプログラムでスマソ

>91
実はCSAの自己対戦の扱いがわからなくて
sikou()呼ばれたときに

最初の先手→先手ルーチン初期化
最初の後手→後手ルーチン初期化

としているのです
もし都合悪ければsikou_ini()で設定読み込んで保存するお


101 愛のVIP戦士 2007/02/23(金) 21:33:08.18 ID:9DiT+o9W0
自分がやっていた奴だと
sikouが呼ばれる→static intで現在手数保存
sikouの引数手数が現手数になるまで手を進める(途中局面対局対策でstaticで保存しているので2度目からはプレイヤーの指した1手分だけが進む)
現在手数が偶数ならば思考ルーチンは後手、奇数ならば先手・・・・みたいな感じで判別させてますたよ


105 愛のVIP戦士 2007/02/23(金) 21:38:21.36 ID:9DiT+o9W0
>102
お手数かけまつ

ところで、現在は先手と後手を両方CPUにした時に思考の難易度は同一でしか戦えないようにしますたけど
sikou側でレベルを変えるという事は、先手と後手で別々のレベルに設定できるって事なのかな?


109 愛のVIP戦士 2007/02/23(金) 21:42:43.58 ID:9DiT+o9W0
S_level = GetPrivateProfileInt(_T("SIKOU"),_T("SENTE_LEVEL"),5,cFile);
G_level = GetPrivateProfileInt(_T("SIKOU"),_T("GOTE_LEVEL"),5,cFile);

↑こうしまつか?


174 愛のVIP戦士 2007/02/23(金) 22:53:05.20 ID:r7ysWZKv0
>95
>96

INIファイルってcsa.exeと同じディレクトリに置くんだよな
そうならGetCurrentDirectory()ではなく、
GetModuleFileName()でcsa.exeのパスを取得して
_splitpath()とか使ってINIファイルのパスを取得する方が
いいかと思うのだが、どうだろう?


178 愛のVIP戦士 2007/02/23(金) 22:57:18.08 ID:9DiT+o9W0
>174
この擬人化将棋は2つ同時に立ち上げる事が可能なので
その命令を使ったときにマイクロソフトの説明では正常に取得できない場合がありますという事です


197 愛のVIP戦士 New! 2007/02/23(金) 23:09:07.18 ID:9DiT+o9W0
いや別々のモジュールがそれぞれ別の場所に格納されているからDLL側で読み込むとうんぬんで変わる場合があるって事かな
まぁ、どっちにしろコンストラクタでクライアントの元の場所はフルパス保存してiniを読み出す前に書き換え、呼出し後に元に戻す処理を入れているのでdll側は何も考えずにカレントディレクトリ取得してくれれば良いと思うお


216 愛のVIP戦士 New! 2007/02/23(金) 23:19:16.05 ID:0cmt7V3i0
ちなみに、もしLV1と5で10回戦って5勝5敗とかなら
たぶんDLLのバグなんだぜ(^ω^;)

読みの深さは可変だからはっきりとはいえないけど、
LV4とLV5なら平均的にLV5のほうが1手くらい深く読むんだお



217 愛のVIP戦士 New! 2007/02/23(金) 23:19:55.29 ID:9DiT+o9W0
>215
元々の仕様が先手と後手のレベルは別々にせず同一にするという概念で作られたから
ただ、今聞いた話で先手と後手の思考は別々に確保しているという事なので
次のバージョンからは先手と後手のレベルを変更できるようにしましょうってなっただけですお
2007年02月23日(金) 23:25:17 Modified by ID:GD4z93ce4g




スマートフォン版で見る