å
ã®KIFãšïŒãããJSONã«çŽãããšãã®äŸã§ãïŒ
ãã£ãšãïŒä»ã®ãŸãŸã§ã¯äžäŸ¿ãªæããããŸãïŒ
äŸãã°ïŒ
ã»é£æ³é
åã®ããŒãæ¥æ¬èªãªã®ã§ïŒããã°ã©ã ã§å©çšããæã«obj["察å±ID"]ã®ããã«æ¥æ¬èªã§æžããªããã°ãªããªãã®ã§ïŒè±åèªãªã©ã«çœ®ãæãã
ã»æ¶è²»æéããªãŒã°æçžŸã¯å
æãšåŸæã«å±ããæ
å ±ã«ããã»ããè¯ããã
ãâããšãã°
"players": [
ã{
ãã"name": "åºç¬ç« 人",
ãã"result": {"win": 3, "lose": 3},
ãã"time": 479
ã},
ã{
ããåæ§ã«åŸæ
ã}
]
ã®ããã«ããçïŒããã ãšãã¬ã€ã€ãŒã®å±æ§ã«ã€ããŠïŒäŸãã°æ®µãã¿ã€ãã«ã®æ
å ±ãä»ãå ããäºãåºæ¥ãŸãïŒ
ã»é§åãã®æïŒåã£ãé§ã®æ
å ±ãå
¥ããªããšïŒæé ã®éåçæã«å°ããïŒ
ã»æãæãåã®é§æ
å ±ãå
¥ããïŒ
ã¡ãªã¿ã«ïŒä»èããŠããã®ã¯ïŒäŒåã®ã»ãã§ãå°ãã話ãããŸãããïŒèšå®ãã¡ã€ã«ãåé¢ããŠæã€ãã®ã§ãïŒ
ã«ãŒã«(æ¬å°æ£ïŒã©ãã¶ã€ããããïŒã»ã»ã»)ããšã«ã«ãŒã«æ
å ±ãã¡ã€ã«ã決ããŠãããŸãïŒ
æ£èèªäœã®ã»ãã«ã¯ïŒã©ã®ã«ãŒã«ã®æ£èãªã®ãïŒrule: "shogi.rule.json"ãªã©ãšæžããŠããããã«ããŸãïŒ
ããããããšã§ïŒæ°ããã«ãŒã«ãžã®å¯Ÿå¿ãéåžžã«ç°¡åã«ãªããŸãïŒ
äŸãã°å€§å°æ£ã®æ£èãæã«å
¥ãããïŒèªåãæ®æ®µäœ¿ã£ãŠãããœããã§ã¯å¯Ÿå¿ããŠãªãã£ããšããŸãïŒ
ãœããã¯ãã¡ã€ã«ã®ruleéšåãèŠãŠïŒã"daishogi.rule.json"ã«ã¯å¯Ÿå¿ããŠããŸããããšæå¥ãèšããŸãïŒ
ãããªæïŒdaishogi.rule.jsonãšãããã¡ã€ã«ãã°ã°ã£ãŠããŠèª°ããå
¬éãã(èŠæ Œã®å
¬åŒãµã€ãã«
眮ããããã«ããŠãããªãïŒããããã§ã)ããŠã³ããŒãããŠããŠïŒèªåã®ãœããã®rulesãã£ã¬ã¯ããªã«
ä¿åããã°ïŒãããã®ãœããã¯äœã®ã«ãŒã«ã§ã©ããªé§ãããã®ããçè§£ã§ãããšããããã§ãïŒ
ãã¡ããïŒå€§å°æ£ã察å¿ãããšãªã£ããïŒ9x9ãã倧ãããŠãã€ã³ã¿ãŒãã§ã€ã¹ã
å€ã«ãªããªãããã«æ°ã䜿ãå¿
èŠããããŸããïŒãŸãå«ãªãã«ãŒã«ãã¡ã€ã«ã«æžããŠãããµã€ãºãèŠãåŸã«
ãç€é¢ãã§ããããã®ã§ãã¡ã§ãããšãèšãã°ããã§ãããïŒ
ãã®ã«ãŒã«ãã¡ã€ã«ã®äŸã§ãïŒ
é§ã®è¡šèš(äŒçµ±åœ¢åŒïŒPSNã®ãããªãã§ã¹ã©ã€ã¯åœ¢åŒ)ãåãæ¿ããããããã«ïŒ
traditionalãšchesslikeã®2ã€ã®æ
å ±ãå
¥ã£ãŠããŸãïŒkanaãšããã®ãå¢ãããŠ"fu" "kyo"ã®ããã«ã§ããŠããããããããŸããïŒ
shogi.rule.json:
{
ãsize: [9, 9], //9ããã9
ãspecies: {
ããtraditional: {
ããã"0": "æ©",
ããã"1": "éŠ",
ïœïœïœäžç¥ïœïœïœ
ãã},
ããchesslike: {
ããã"0": "P",
ããã"1": "L",
ïœïœïœäžç¥ïœïœïœ
ãã}
ã},
ãinitial: { //åææ
å ±
ãã"ban": [ //åæå±é¢
ããã{player: 1, species: 1}, {player: 1, species, 2}, ïœïœïœ//éŠ,æ¡
ãããïœïœïœ
ãã]
ã}
}
doubutsushogi.rule.json
{
ãsize: [3, 4],
ãspecies: {
ããtraditional: {
ããã"0": "ã²ãã",
ããã"1": "ããã",
ããã"2": "ãã",
ããã"3": "ã©ã€ãªã³",
ããã"4": "ã«ããšã",
ãã},
ããenglish: {
ããã"0": "baby bird",
ïœïœïœ
ãã}
ã},
ã"init": {
ïœïœïœ
ã}
}
init.banã®ãšããã§ããããšç€é¢ã®è¡šèšãããŠããŸããŸãããïŒ1ãã¹ã
{player: 1, species: 2}
ã§è¡šãã®ã¯åé·ãªã®ã§ïŒ
[1, 2]
ã®ããã«ã0çªç®ã¯playerã§1çªç®ã¯çš®é¡ã ãããšç¢ºçŽããŠãããŠããããããããŸãã(å°æ£ã£ããŒã§ã¯ããããŠããŸã)
ãŸãïŒãããã£ã±ã«ã¯ãããªãšããã§ãïŒ
2011幎9æ15æ¥0:39 ginsho <kzde...@gmail.com>:
> --
> ginshoäŒ(ä»®) - http://groups.google.com/group/shogi-developers
>
--
na2hiro (http://81.la)
twitter: @na2hiro
ããããã+ãããããxãããããããoããã²ããã'ããã«ããšãã*ã
ãèããã®ã§ãããããã ãšããã°ã©ã ã¯æžãã«ããã§ãã?
1æããšã«å±é¢ãæã€ã®ã¯åé·ãããæ°ãããŸãïŒæãææ
å ±ã ãã§é ã»éæ¹åã®ç€é¢åçãã§ããã°
ååã§ã¯ãªãããšæããŸãïŒ
Hidetchiããã®ææ¡ãšãé¢ä¿ããŠããŸããïŒãã®æ£èã«åæã®å±é¢ïŒæã¡é§ïŒæçªãæãŠãããã«ããŠããïŒ
ãã®æ£è圢åŒèªäœãé
åãšããŠæã€ãæ£èéã圢åŒã®ãããªãã®ãå®çŸ©ããã°ããã®ã§ã¯ãªãããšæããŸãïŒ
å
·äœçã«ã¯ïŒæ£è圢åŒã
{
ã"init": {
ãã"ban": [
ãããåæé
眮
ãã],
ãã"mochigoma": [
ãããåææã¡é§
ãã],
ãã"teban": åææçª
ã},
ã"players":
ïœïœïœä»¥äžåæ§
}
ã®ããã«éå§æã®ç€é¢ãæãŠãããã«ããŸãïŒ
ãããŠïŒ
{
ã"title": "1æè©°ãé", //æ£èéã«é¢ããæ
å ±
ã"author": "誰ã
",
ã"collection": [ //å®éã®æ£èé
ãã{ //æ£è1
ããã"init": {ïœ},
ãããïœ
ãã},
ãã{ //æ£è2
ããã"init": {ïœ},
ãã},
ïœ
ã]
}
ãšããïŒæ£èãå
å
ãããæ£èéã圢åŒã䜿ã£ãŠïŒå±é¢ã®éåã衚ããšè¯ãã®ã§ã¯ãªãã§ããããïŒ
ãããªãïŒããããã®èŠçŽ ã¯æ®éã®æ£è圢åŒãªã®ã§ïŒæ£èãã³ã¡ã³ãïŒãã¬ã€ã€ãŒæ
å ±çãæãããäºãåºæ¥ãŸãïŒ
ããã§ç®æ¡æžãã§ãããããããããã®ãã®ã衚ãäºãã§ããã®ã§ã¯ãªãã§ããããïŒ
> ããããããã²ãšã€ãæ£èãšã«ãŒã«å®çŸ©ã®åé¢ã§æãã€ããã®ã§ããã
> ãããå®å
šãªæãææ
å ±ãæã€ã芪æ£èããšãä»»æã®æãæã«å¯Ÿããä»»æã®ãã©ã¡ãŒã¿ããæããªãã忣èã
> ãçšæããçµã¿åãããŠå©çšããããšã«ã䜿ããã§ããããïŒ
>
> äŸãã°ãã©ã€ãäžç¶ãããŠãã芪æ£èã«å¯ŸããŠãæ£èãã¥ãŒã¢åŽã
> ã»ã³ã¡ã³ãã®ã¿èšè¿°ããã忣èãããã¯ã¹è¡šç€ºããŠãå€èšèªåæäžç¶
> ã»AIã®åœ¢å¢å€æã®ã¿èšè¿°ããã忣èãããã¯ã¹è¡šç€ºããŠåç
§
> ã»å€åæé ã®ã¿ãèšè¿°ããã忣èãããã¯ã¹è¡šç€ºããŠæ¬çãšæ¯èŒåç
§
ç¶æ¿ãšãäžæžãã®ãããªãã®ã§ããïŒé¢çœããã§ãïŒ
忣èäžã«ãoverride: "芪æ£èãã¡ã€ã«å"ããšæžããŠããïŒåæ£èãèªãŸããããŸã芪æ£èãèªã¿èŸŒãã åŸã«
äžæžããããããªæãã§ããïŒãã¡ã€ã«åŽã§ã¯ããããæžããŠããã°ååããšæããŸãïŒ
> ã©ãã¶ã€ãããã=3x4å°æ£ã®æ£èã§ãã
> ããããã+ãããããxãããããããoããã²ããã'ããã«ããšãã*ã
> ãèããã®ã§ãããããã ãšããã°ã©ã ã¯æžãã«ããã§ãã?
衚瀺åŽã®è©±ãªã®ã§ïŒã©ããªèšå·ã§ãåé¡ãªããšæããŸãïŒ
Hidetchiããã®ãã£ãããéãïŒèŠãç®ãã©ãããšãã話ã«ãªããŸãïŒ
> æ£èãã¡ã€ã«ã䜿ã£ãŠäœããœãããäœãåŽããã®æèŠããããŸããšïŒ
> ãæãã®æ
å ±ã®ã¿ããè²ã
ãªããšãåããæ¹ãæé£ãã§ãïŒ
> ããšãã°ïŒè±èªã®è¡šèšã§ã¯
> ãã»åã«â²5äºè§ â B-5e
> ãã»é§ãåããªããâ²5äºè§ â Bx5e
> ãšå€åããŸãïŒ
> ã€ãŸãé§ãåãæãã©ããã®æ
å ±ããæãã®äžã«å
¥ããŠãããªããšïŒ
> ãã è±èªè¡šèšã«ãããã ããªã®ã«ïŒãã¡ãã¡åã®å±é¢ãåç
§ããªããšãããŸããïŒ
> (ã€ãŸãåæããåçããªããšãããŸãã)
> æ¥æ¬èªã§ãïŒãåããã€ãããã©ããã®å€æã«ã¯ïŒ1æåã®åç
§ãèŠããŸããïŒãããé¢åã§ãïŒ
> CSA圢åŒã¯ãã®é¢ã§ãã£ãšäžäŸ¿ã§ïŒãã®æãæããªã®ãïŒããšããæãé§ã ã£ãã®ãããïŒ
> åã®å±é¢ãåç
§ããªããšåãããªãã§ãïŒ
åæã§ãïŒ
ã»åã£ãé§ã®çš®é¡ãæã€
ã»æã£ãæã«åããããã«ãã
ã»ãåããææ§ãªã®ã§å
ã®åº§æšãæã€ããã«ãã
ãå¿
èŠã§ããïŒ
ããšïŒ
> â»æã£ãåãšåŸã®é§ã®çš®é¡ãèšé²ããŠããä»¶ã¯ïŒãã®å¿
èŠããããã©ããããåãããŸããïŒ
> ãã«ãŒã«ãã¡ã€ã«ã«ãæ©âãšããªã©ã®å¯Ÿå¿é¢ä¿ãå®çŸ©ããŠãããæ°ãããŸãïŒ
ã§ããïŒç¢ºãã«ããã§ããïŒå°æ£ã£ããŒã§100çš®é¡ã®ã«ãŒã«ãäœã£ãŠããŸãããïŒ
é§ã®è¡šè£ã®é¢ä¿ã厩ããããšã¯äžåºŠããªãã£ãã®ã§ïŒè¡šè£å¯Ÿå¿ãã«ãŒã«ãã¡ã€ã«ã«æžãã®ã¯è¯ãæ¡ã ãšæããŸãïŒ
ãããªãïŒéåžžã®ç§»åæ
å ±ã«å ããŠæã£ããšãããã©ã°ã1ã€æãããã ãã§è¯ãã§ããïŒ
ã«ãŒã«ãã¡ã€ã«ã«æããã衚èšãšããŠã¯ïŒäŸãã°
0ãæ©, 9ããšéãšãªã£ãŠãããšããŠïŒ
"nari": {
ã"0": 9, //æ©: ãšé
ã"1": 10, //éŠ: æéŠ
ïœïœïœ
}
ãšããã®ãã²ãšã€ã®æ¹æ³ã§ããïŒ
> â»ãšããã§ïŒæ¬å°æ£ãšã©ãã¶ã€ããããã§ã«ãŒã«ãã¡ã€ã«ãåããã®ã¯åãããŸãããïŒ
> ãé§èœã¡ãå
šãŠåããã®ã§ãã? (åæå±é¢ããã¡ãã«å
¥ã£ãŠããã®ã§)
> ãã«ãŒã«ãã¡ã€ã«ã¯çµ±äžããŠïŒåæå±é¢ãšåæã®æçªã®ã¿
> ãæ£èãã¡ã€ã«ã®æ¹ã«æžããŠãè¯ãæ°ãããŸãïŒ
> ãè©°å°æ£ãªã©ã®å Žåãããã®ã§ïŒåæå±é¢ãšæçªãæ£èãã¡ã€ã«ãä¿æã§ããªãããã§ã¯
> ã䜿ãéããã°ãŸããšæããŸãïŒ
åæå±é¢ãæå®ã§ããããã«ããã®ã¯äœã£ãã»ãããããšæããŸãã(äžã®ã»ãã§ãæžããŸããã)ïŒ
é§èœã¡ã®æ£èãã¡ã€ã«å
šãŠã«åæå±é¢ãæå®ããå¿
èŠãããã®ã¯ã¹ããŒãã§ã¯ãªããšæããŸãïŒ
ããã«ïŒããã«ãŒã«ã§åããã«åæå±é¢ã§åãããšãªããšïŒããã°ã©ã ã¯ãããéŠèœã¡ã§ãã£ãŠã
å¹³æãªã®ãéŠèœã¡ãªã®ãåãããŸããïŒãšãã£ãŠïŒ"teai": "éŠèœã¡"ãšæ£èã«æãããããšããã®ã¯ïŒ
å€åœèªç°å¢åãã§ãªãã®ã§ïŒäœãã®èšå·ã«çœ®ãæããã°ããããã§ããïŒãããªããã£ã
rule: "kyoochi.rule.json"ãæãŠã°è¯ãã®ã§ã¯ãªãã§ããããïŒãããŠã«ãŒã«ãã¡ã€ã«ã®ã»ãã§å€èšèªã®è¡šèšã
çšæããŠããããã§ãïŒ
1æããšã«å±é¢ãæã€ã®ã¯åé·ãããæ°ãããŸãïŒæãææ å ±ã ãã§é ã»éæ¹åã®ç€é¢åçãã§ããã°
ååã§ã¯ãªãããšæããŸãïŒ
ã»ãåããææ§ãªã®ã§å ã®åº§æšãæã€ããã«ãã
ãå¿ èŠã§ããïŒ
é§èœã¡ã®æ£èãã¡ã€ã«å šãŠã«åæå±é¢ãæå®ããå¿ èŠãããã®ã¯ã¹ããŒãã§ã¯ãªããšæããŸãïŒ
ããã«ïŒããã«ãŒã«ã§åããã«åæå±é¢ã§åãããšãªããšïŒããã°ã©ã ã¯ãããéŠèœã¡ã§ãã£ãŠã
å¹³æãªã®ãéŠèœã¡ãªã®ãåãããŸããïŒãšãã£ãŠïŒ"teai": "éŠèœã¡"ãšæ£èã«æãããããšããã®ã¯ïŒ
å€åœèªç°å¢åãã§ãªãã®ã§ïŒäœãã®èšå·ã«çœ®ãæããã°ããããã§ããïŒãããªããã£ã
rule: "kyoochi.rule.json"ãæãŠã°è¯ãã®ã§ã¯ãªãã§ããããïŒãããŠã«ãŒã«ãã¡ã€ã«ã®ã»ãã§å€èšèªã®è¡šèšã
çšæããŠããããã§ãïŒ
æ£èãå±é¢æ å ±ãæããªããšããéžæã¯ãã®ãããªé«ãæ€çŽ¢æ§ãæšãŠãããšã«ãªãã®ã§ãããããã¶ããã£ãããªã話ã ãšæããŸãããïŒ
確ãã«åã®åº§æšã¯ãã£ãŠããªããŠãããã§ããïŒ
JSONãªãããŒã¹ã®æç¹ã§å
éšçãª(ã¡ã¢ãªäžã®)æ§é ã«ãªã£ãŠããŸãã®ã§ïŒå
šãŠã®æã§ååŸãžã®ãã€ã³ã¿ã
æã€ã®ã¯ããŸãåŽããªããšæããŸããïŒåå²ã¯æ¬äŒŒçã«ãã€ã³ã¿ã®ãããªãã®ãå¿
èŠããã§ããïŒ
äŸãã°
{
ã0: [ //ã¡ã€ã³
ãã{kifu: 1æç®},
ãã{kifu: 2æç®},
ãã{kifu: 3æç®, bunki: [1]},//1çªã®åå²ãž
ãã{kifu: 4æç®}
ã]
ã1: [ //1çªã®åå²
ãã{kifu: 3æç®2},
ãã{kifu: 4æç®2}
ã]
}
ãšããæãã§ãïŒ
> ãåããããé¢åãªã®ããäžããšããçŽããšãã§ãããããã¯1æåã®å±é¢ãåç
§ããªããã°ãããªãã§ãããã
> ããããã®ãŸã§æã®äžã§ä¿æããã®ã¯ãããã«ã¹ããŒãã§ã¯ãªããšãªããšãçµå±ãåå±é¢ã®çæã¯èªåã§ãããããªãã§ãããã
åãäžãªã©ïŒãã¡ãã¡å±é¢ãçæããªããŠã¯ããããªããã©äººéãæ¬²ããæ å ±ã¯ïŒä¿åããããšããã§ããïŒ
> ãšããã§ãäŸãã°æ¬¡ã®1æã®ãããªåé¡å³ã衚瀺ããããšãããã®å±é¢ãåæå±é¢ãšããŠæ£èãã¡ã€ã«ãäœã£ãå ŽåãèããŸããšã
> å³é¢ã®äžã«ã¯ãâæç®ââãŸã§ããšãã衚瀺ãèŠãå ŽåããããŸãã
> ãšããããšã¯ãåæå±é¢ã«ããåã®æãããâæç®ããªã©ã®æ
å ±ãå¿
èŠãªã®ã§ããã
> ããã©ããããå³ã¯â³2ååæ©ãŸã§ããªã©ãšããå ŽåããããŸãããããåãã倿ããããšãããšã
> ãã¯ããã©ã°ãç«ãŠãããåæå±é¢ã®2æåã®æãŸã§ä¿æããå¿
èŠãã»ã»ã»
éå§ææ°ã«ã€ããŠã¯inité
äžã«tesuu倿°ãçšæããã°è¯ãã§ããïŒ
ãâ³2ååæ©ãŸã§ãã«ã€ããŠã§ããïŒæåã«ç¹ã«è§Šããªãã£ãã®ã§ããïŒæ
£äŸçã«è¡ãããŠãããåæå±é¢ã®ã³ã¡ã³ãã
ãå®çŸããããã«æãæã®0çªç®ã¯æãæãæžããã«åæã³ã¡ã³ãã ãæžãããã«ããŠããŸãïŒ
ããŸããŸã§ããïŒãã®0çªç®ã®äœçœ®ã«ãâ³2ååæ©ãã«ãããæ£èãæžãã°ãã£ããåãŸãããã§ãïŒ
> æ£èãæãæã®å±é¢æ
å ±ãæã€ããšã®ã¡ãªãããæžããŠã¿ãŸãããŸããé«ãæ€çŽ¢æ§ã«ã€ããŠã
ãªãã»ã©ïŒå±é¢ã®äžèŽæ€çŽ¢ãæ£èãã¡ã€ã«ã§è¡ãã®ã¯æ°ã¥ããŸããã§ããïŒç¢ºãã«ãã®çšéãšãªããšäŸ¿å©ã§ããïŒ
æ£èããŒã¹ã§ã¯ãªãå±é¢ããŒã¹ã®ããŒã¿ããŒã¹ã¯@koudayuãããçç®ãããŠããŸããïŒ
(http://www.flatz.jp/archives/112 â»4幎å) èªåãå°æ£ã£ããŒãäžæ®µèœãããäœããããšæã£ãŠããŸããïŒ
ãããïŒããŒã¿ããŒã¹ã«éããïŒãããããã«å±é¢è¡šèšãåã蟌ãã§æ€çŽ¢ã§ãªãã§ãåºãŠãããšããã®ã¯
å°æ£çã®ãŠãŒããã¢ãããããŸãããïŒå
šãç¥ããªããµã€ãã§ãïŒå±é¢ããã·ã¥ã®åã蟌ãŸããæ£èãã
匵ã£ãŠããã°ïŒèªåã®æ¢ããŠãå±é¢ã«ããã«ãã©ãçããèš³ã§ããïŒ
å±é¢ããã·ã¥ã¯ïŒå°ãåã«å±é¢ããŒã¿ããŒã¹ã®ããã«èª¿ã¹ãã®ã§å€å°ç¥ã£ãŠããã®ã§ããïŒ
å±é¢âããã·ã¥ã®åæ¹åãªãZobrist Hashingãã³ã³ãã¥ãŒã¿å°æ£ã§äœ¿ãããäºãå€ãã§ãïŒ
http://yowaken.dip.jp/tdiary/20081001.html
äºã11ïœ99Ãæ©ïœéŸãšã§ã©ã³ãã ãªãããåãæ±ºããŠããïŒåãããã³ã«å±é¢ã®å·®åã«ããããããåã
å±é¢ãããåã«å¯ŸãXORãåããŸãïŒ76æ©ãªã"77ã®æ©"ãš"76ã®æ©"ã«ããããããåã®2ã€ãXORããŸãïŒ
ã©ãçµç±ããŠãåãå±é¢ãªãåãããã·ã¥ã«ãªãïŒãã®éã¯ïŒããã·ã¥é·ã§è¡çªã調æŽããŸãïŒ
1æããšã«æ°åXORããã ãéåžžã«äœã³ã¹ããã€çãã§ãïŒ
ãã®æ¹æ³ã ãšåºå®é·ã§ïŒå€åããããã32bitsã64bitsã§ããããšã«ãªããšæããŸãïŒ
埩å
å¯èœãªå§çž®ãšããŠã¯ïŒåºçŸé »åºŠãçšãããããã³ç¬Šå·åãè¡ã£ãæ¹ãããŸãïŒ
http://www.geocities.co.jp/CollegeLife-Cafe/8331/shogi/index.html
å¯å€é·ã§ïŒ200bitsçšåºŠã ãšããããšã§ãïŒ
ã¡ãªã¿ã«Webæ€çŽ¢å¯èœãšãªããšå€§æåå°æåãåºå¥ã§ããªãã®ã§0-9a-zãããã§ããããïŒ
0-9a-vã®32éãã§5bitsã衚ããã®ã§ïŒ ãã€ãæ°=ãããæ°/5 çšåºŠã®é·ãã«ãªãããã§ãïŒ
åè
ãªã7or13ãã€ãïŒåŸè
ãªã40ãã€ãçšåºŠã§ããïŒ
èªåã¯ïŒæšªæ¹å(ãã¡ã€ã«éã»ãµã€ãé)ã®äžèŽæ€çŽ¢ããã§ããã°ïŒããšã¯ããããã®æ£èã§çžŠ(æãæ)ã蟿ããã®ã§ïŒ
å±é¢ã®éç®ã¯ããã»ã©å¿
èŠãªãã®ã§ã¯ãªãããšæããŸããïŒäœãéç®ã§ãããå¬ããäŸãªã©ãããŸãã§ããããïŒ
ããïŒæ£èã§ã¯ãªã1å±é¢ããšã«ïŒ11ã«çãããå±é¢ã«ã¯"11ç"ãšããæååãå«ãŸããŠãããããªè¡šçŸãèããŠããŸããïŒ
ãšãã«èªã¿éãã¯ãªããããªæ°ãããŸãïŒ
> p=1b000000000004001b0000001600000000001d00191d001d10001d000000171d001d00000e1d0000000800000005000e00000e0e000000000a0e0e0200000e000008000000000e000c000007001500000071;
>
> JSONæ£èãäžèšã®ãããªéå§çž®ã®ã¹ãã¬ãŒããªå±é¢æ
å ±ãæã£ãŠããå Žåã1äžã®åŸææ©ãš3äžã®åŸææ¡ã ããéžã³ã
> è€æ°ã®æ£èãã¡ã€ã«ã察象ã«éšåäžèŽå±é¢ãæ¢ãå Žåã¯ã
>
> /.{18}.{18}1d..19.{12}.{18}.{18}.{18}.{18}.{18}.{18}/
>
> ã¿ãããªæ£èŠè¡šçŸã§è©²åœãã¡ã€ã«ãããã¯ã¢ããã§ãããšæããŸãã
> ãããéå¯éã®ããã·ã¥ããããã¯SFENã®ãããªå§çž®èšè¿°ã§ããšäžèšã®ããã«ã·ã³ãã«ãªæ€çŽ¢ã
> åºæ¥ãªããªãã®ã§ã¯ïŒãšæããå
ã®è³ªåãšãªã£ã次第ã§ããå®éãç ç©¶çšéã®æ€çŽ¢ãèãããšå®å
šäžèŽå±é¢ãã
> ã¯éšåäžèŽæ€çŽ¢ã®æ¹ãéå®ãããå Žé¢ãå€ãããªæ°ãããŸããŠã
ãããã«åºå®é·ã§ç€é¢ç¬Šå·ãæãŠã°æ£èŠè¡šçŸã§æ€çŽ¢ã§ããŸãïŒ
ãããJSONããã¹ãã®ãŸãŸã®æ€çŽ¢ãåžžçšããã®ãåŸçãšã¯æããªãã®ã§ããâŠ
ç°¡æçãªãã®ãšããŠãã£ãã»ãããããšãããªããããšæããŸãïŒ
ä»ã®æ¹ã®æèŠã䌺ãããã§ãïŒ
ãããæ¡çšãããªãïŒWebæ€çŽ¢ã®å±é¢äžèŽã®ããã«å€§æåå°æåãåäžèŠãããšïŒ
ã ããã0-9a-zã®36éãã1ãã€ãã§è¡šããŸãïŒãã¹ã®ç¶æ
㯠空çœ1+å
åŸ2*çš®é¡14=29ãªã®ã§
ã¡ããã©1ãã¹1ãã€ãã§è¡šããŸããïŒ81ãã¹ã§81ãã€ãïŒ
ããšã¯æçªãšæã¡é§ã§ããïŒåçŽã«ãããšæçª1ãã€ãé§7çš®é¡1ãã€ããã€(36æä»¥äžãªã®ã§)ã§8ãã€ãïŒ
çž®ãããªãïŒæçª1ãããïŒæ©5ããã(0~18æ<=2^5)ïŒæ¡éŠéé3ããã(0~4æ<=2^3)*4çš®ïŒ
é£è§2ããã(0~2æ<=2^2)*2çš®
ã§22ãããïŒ1ãã€ãã§5ããã衚ããã®ã§5ãã€ãåã§ããïŒ
1å±é¢ã86~89ãã€ãã§è¡šãããšã«ãªãããã§ãïŒ
> ããããŸããããšããããçŸç¶ã®JSONæ£èã«ã€ããŠã¯shogitterããããŠã³ããŒãããŠäºç¿ããŠãããŸãã
å°æ£ã£ããŒã®JSONã¯ããã§è©±ããŠããã®ãšã¯éã£ãŠç¬ç¹ãªéšåãããã®ã§
ããŸãåèã«ãªããªããããããŸããïŒ
äœè«ã§ããïŒãã®æ°åœ¢åŒãã§ãããïŒå°æ£ã£ããŒãããã«æ²¿ãããã«å€æŽã§ããã°ãšæã£ãŠããŸãïŒ
æ°åœ¢åŒã®æ¡åŒµãšããŠïŒæ£èã§ïŒç§»åå
ïŒç§»åå
ïŒé§çš®ã®ä»ã«ïŒä»ã®ãã¹ã®å·®åæ
å ±ãæã€ãã®ã§ãïŒ
å°æ£ã£ããŒã®æ£èã¯ç§»åå
ãšããåºå¥ã¯ããŸãããŠãããïŒå
šãŠãã¹ã®å·®åãªã®ã§
æ±ãã¥ããéšåããã£ãã®ã§ïŒç§»åå
ç§»åå
ãšå·®åãçµã¿åããããšè¯ããšæããŸãïŒ
(æ£ç¢ºã«ã¯ïŒå·®åã®1çªç®ãç§»åå
ã®åº§æšïŒ2çªç®ãç§»åå
ã«ãªã£ãŠããŸã)
äŸãã°ãã«ã±(åãããé§ãåæäœçœ®ã«æ»ã)ã§ïŒ24æ©ãšè§ãåã£ãŠãã®è§ã22ã«æ»ãå ŽåïŒ
{
ãfrom: [2,5],
ãto: [2,4],
ãspecies: "æ©",
ãdiff: [
ãã{
ãããtype: "æã¡é§",
ãããplayer: "å
æ",
ãããspecies: "è§",
ãããnum: -1
ãã},
ãã{
ãããtype: "ç€é¢",
ãããplace: [2,2],
ãããspecies: "è§",
ãããplayer: "åŸæ"
ãã}
ã]
}
ãµã€ãã«24æ©ãšåã£ãåŸïŒdiffã«åŸã£ãŠå
æã®è§ã1ææžãããŠ22ã«çœ®ãæãã§ãïŒ
diffããªããã°ãµã€ãã®å°æ£ãšåãã§ãïŒ
> æäœKZå¶äœæã«ãKIFãCSAãPSNã®èšè¿°æ¹æ³ãæ¯èŒããããã«äœã£ãExcelã®è³æããããŸãã®ã§ãdropboxã«äžããŠãããŸãã
> PSNã®ç®æãªã©äžæ£ç¢ºïŒãããã«ããèšè¿°ãå€ã
ããããšæããã§ããããªã«ãããã圹ã«ç«ãŠãŸããã幞ãããªã§ãã
>
> http://dl.dropbox.com/u/2385159/kifu_format.zip
ããããšãããããŸãïŒåèã«ããããšæããŸãïŒ
--
na2hiro (http://81.la, http://shogitter.com)
twitter: @na2hiro
æ£èãã©ãŒãããã®èæ¡ãæèŠããŸããã
ããã·ã¥å€ãå«ãéã«ã1ãã¹æ¯ã®è¡šèšãåè£ã«å
¥ããŠããã®ã¯ã
ginshoããã®SFENã§ã¯æ£èŠè¡šçŸã«ããéšåå±é¢æ€çŽ¢ãã¹ããŒãã«åºæ¥ãªãã®ã§ã¯ïŒ
ãšããçºèšãåããŠã®ããšã ãšæããŸãããSFENã§ãåºæ¥ããšæããŸãã
äŸãã°ãå ææ¯ãé£è»ç©Žç 察 åŸæå± é£è»ç©Žçã®äŸãèããŠã¿ãŸãã
çåšèŸºéšåã ããèãããã®ãSFENã§è¡šããšæ¬¡ã®ããã«ãªããŸãã
6gnk/6gsl/6ppp/9/9/9/6PPP/6GSL/6GNK
ãããå±é¢å³ç»åã«çŽããšæ¬¡ã®ãªã³ã¯ã«ãªããŸãã
http://sfenreader.appspot.com/sfen?sfen=6gnk%2F6gsl%2F6ppp%2F9%2F9%2F9%2F6PPP%2F6GSL%2F6GNK%0D%0A
ãããŠãããå«ãå±é¢å³ãæ€çŽ¢ããããšæã£ããæ¬¡ã®ãããªæ£èŠè¡šçŸã«ãªããšæããŸãã
.*gnk\/.*gsl\/.*ppp\/.*\/.*\/.*\/.*PPP\/.*GSL\/.*GNK
ïŒééããåäŸããã£ãããææãé¡ãããŸãã
.*ã®éšåã¯ãªãã§ãOKã®æå³ã§ã/ã¯æ£èŠè¡šçŸã§ã¯ç¹å¥ãªæåãªã®ã§ããã¯ã¹ã©ãã·ã¥ã§ãšã¹ã±ãŒãããŠãŸãã
banhashã¯åäžå±é¢å³æ€çŽ¢ãé«éã«è¡ããªã©ã®ç®çã§å¿
èŠã ãšæããŸããã
ãããšã¯å¥ã«sfenãšãããã£ãŒã«ããçšæããŠãå±é¢ã®sfenæååããã®ãŸãŸå
¥ããããšã¯åºæ¥ãªãã§ããããã
ãã ãèšå€§ãªsfenæååãæ£èŠè¡šçŸã§æ€çŽ¢ããŠ
é«éã«åŠçãåºæ¥ããã©ããã¯äžèã®äœå°ããã ãšã¯æããŸãã
ïŒginshoãã
以ååºãsfenã®æ¡åŒµã¯æçµçæã®è²åãã ã£ããšæããŸããã
ä»åã¯æ£èããŒã¿ãã®ãã®ã®çå®ãªã®ã§ã
å人çã«ã¯sfenãã®ãã®ã®æ¡åŒµã«ã¯æå³ãèŠåºããŠããªãã®ã§ããã©ãã§ãããã
--
fantakeshi <fanta...@gmail.com>
ã¯ãããŸããŠïŒãããããé¡ãããŸãïŒ
è±éã¯åå è
èªããããªããããã§ãïŒ
http://groups.google.com/support/bin/answer.py?hl=jp&answer=46608
> ããŠããã®ãããã¯ã¹ã§å±é¢ããã·ã¥ã®è©±ãåºãŠããŸããã
> æã
ã®ãšããã§ã¯å±é¢æ€çŽ¢çšã«ããã·ã¥ãèããŠããã®ã§ããå
æ¥ãããŸããã
> å±é¢ã¯ãã®ãŸãŸã§ã530ãããçšåºŠã§è¡šçŸã§ããããã§ããïŒç¬èªåœ¢åŒã§ãã 534bitã§è¡šçŸããŠããŸãïŒ
> ãããããšããã·ã¥ã®è¡çªãèæ
®ããªããŠãããªãã®ã§ã
確ãã«åæ¹åã ãšè¡çªããå¯èœæ§ã¯ãããŸããïŒ
ãã ããã·ã¥é·ãé·ãããã°åå察å¿ã§ããã®ã§ã¯ãªãããšæããŸãïŒ
Zobrist Hashingã¯ïŒXORããšãã ããªã®ã§ïŒä»ãŸã§64bitã ã£ãã®ãããšãã128bitã«æ¡åŒµãããš
ããããšã«ãªã£ãŠãïŒé ã®64bitã¯ãã®ãŸãŸæ®ããŠæ«å°Ÿ64bitãè¶³ãã ãã§è¯ãã®ã§ïŒ
ææªããšã§è¡çªãèŠã€ãã£ãŠäŒžã°ããããªã£ããšããŠãïŒæ··ä¹±ã¯é¿ãããããšæããŸãïŒ
128bitã«ãªã£ãããšã§ãïŒå
é ã®64bitã ãåãåã£ãŠæ€çŽ¢ããã°ïŒå€ã64bitã®ããã·ã¥ã䜿ã£ã
æ£èãæ€çŽ¢ã§ããŸãã®ã§ïŒ
> çåšèŸºéšåã ããèãããã®ãSFENã§è¡šããšæ¬¡ã®ããã«ãªããŸãã
> 6gnk/6gsl/6ppp/9/9/9/6PPP/6GSL/6GNK
>
> ãããå±é¢å³ç»åã«çŽããšæ¬¡ã®ãªã³ã¯ã«ãªããŸãã
> http://sfenreader.appspot.com/sfen?sfen=6gnk%2F6gsl%2F6ppp%2F9%2F9%2F9%2F6PPP%2F6GSL%2F6GNK%0D%0A
>
> ãããŠãããå«ãå±é¢å³ãæ€çŽ¢ããããšæã£ããæ¬¡ã®ãããªæ£èŠè¡šçŸã«ãªããšæããŸãã
> .*gnk\/.*gsl\/.*ppp\/.*\/.*\/.*\/.*PPP\/.*GSL\/.*GNK
> ïŒééããåäŸããã£ãããææãé¡ãããŸãã
ããã¯æ¢ããããã¹ã䞡端ã«ããããã§ããã®ã§ãã£ãŠïŒäŸãã°ããæ®µã®5çã«æ©ãããã®ãæ€çŽ¢ããæïŒ
/1P7/ ãš /4P4/ ã®åºå¥ãæ£èŠè¡šçŸã§è¡ãã®ã¯ããªãé¢åãããæ°ãããŸãïŒ
> banhashã¯åäžå±é¢å³æ€çŽ¢ãé«éã«è¡ããªã©ã®ç®çã§å¿
èŠã ãšæããŸããã
> ãããšã¯å¥ã«sfenãšãããã£ãŒã«ããçšæããŠãå±é¢ã®sfenæååããã®ãŸãŸå
¥ããããšã¯åºæ¥ãªãã§ããããã
ããŒãïŒãã¯ã1æãã€å±é¢å³èªäœãæã€ããããã¿ã¯ïŒWebæ€çŽ¢ãšã³ãžã³çã®å±é¢æ€çŽ¢å¯Ÿå¿ä»¥å€ã«ã¯
ãªããšæãã®ã§ïŒä»æ§ã«å«ããå¿
èŠããããšã¯æããªãã®ã§ããã»ã»ã»ïŒ
JSONãšããŠèªã¿èŸŒãã°ïŒåæãã䞊ã¹ãŠè¡ã£ãŠå±é¢ãäœããŸãã®ã§ïŒäœã«äœ¿ãã®ããããŸãã¡ãã³ãšæ¥ãŠããŸããïŒ
ãã¿ãŸãããæžããŠããèªåã§ãåžå£ã®äžã§åäŸã«æ°ãä»ããŸããã
SFENæååã§æ£èŠè¡šçŸã ãã§éšåäžèŽæ€çŽ¢ãå®çŸããã®ã¯ãäŸç€ºããããã®ã ãã§ãäžå¯èœã ãšæããŸãããã
> ããŒãïŒãã¯ã1æãã€å±é¢å³èªäœãæã€ããããã¿ã¯ïŒWebæ€çŽ¢ãšã³ãžã³çã®å±é¢æ€çŽ¢å¯Ÿå¿ä»¥å€ã«ã¯
> ãªããšæãã®ã§ïŒä»æ§ã«å«ããå¿
èŠããããšã¯æããªãã®ã§ããã»ã»ã»ïŒ
> JSONãšããŠèªã¿èŸŒãã°ïŒåæãã䞊ã¹ãŠè¡ã£ãŠå±é¢ãäœããŸãã®ã§ïŒäœã«äœ¿ãã®ããããŸãã¡ãã³ãšæ¥ãŠããŸããïŒ
JSONã¯åé·ãªæ
å ±ãæãŠãã®ã§ãç¡ããããã£ãæ¹ãããã®ã§ã¯ããããã®æ°æã¡ã§æžããŸããã
ããããå±é¢ã®æ
å ±ã«ã€ããŠçŽæ¥JSONã®ããã¹ãæ€çŽ¢ãããªããšããæ¹éã«ç«ãŠã°ã
確ãã«æå¹ãªå Žé¢ãæãã€ããŸããã§ããã
äžæ©ç«ã£ãŠããããã¹ã¬ãããèŠè¿ããŠã¿ããäžåšé
ãã®è°è«ã ã£ããããããŸããã
ãã¿ãŸããã§ããã
ïŒã¹ã¬ããã®ç¹å®ã®çºèšã«å¯ŸããŠURLãšãå²ãæ¯ãããªããã§ãããããïŒ
--
fantakeshi <fanta...@gmail.com>
åœæ¥ã®è³æã¯ãã¡ãã§ãïŒ
http://bit.ly/jsonshogi
ãŸãïŒãã¬ãŒã³ã§ã¡ãã£ãšäžéå端ã ã£ããµã³ãã«ãè£å
ãããã®ãã¢ããããŒãããŸããïŒ
http://81.la/jsonshogi
æ¿æšããã«ãïŒæŠãJSONæ£èã®è¶£æšã«çè§£ã瀺ããŠããã ããŸãããïŒæ°å¹ŽåããXMLæ£èã®æ§æ³ã
æã£ãŠããªãããªããªã衚ã«åºãããšããããšã«ãªããªãããšããïŒãã¯ãæ¢åã®KIFã巚倧ã«ãªã£ãŠããŠ
åã£ãŠä»£ããã®ã¯çžåœã®åªåãå¿
èŠãšããèãããæã¡ã§ãããšæããããŸããïŒ
å±é¢ããã·ã¥ã®åã蟌ã¿ãªã©ïŒJSONãã®ãã®ã«å©çšè
ã«ãšã£ãŠã®çŽæ¥ã®ã¡ãªãããããããæ©èœãªã©ã«
ããããè°é¡ãã·ããããŠããå¿
èŠãããããã§ãïŒ