ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

ÓÃCÓïÑÔʵÏÖSGF¸ñʽΧÆåÆåÆ×½âÎöÆ÷(Ò»)
2014-11-23 21:45:58 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:10095´Î
Tags£ºÓïÑÔ ÊµÏÖ SGF ¸ñʽ ΧÆå ÆåÆ× ½âÎö

ÕâÊDZ¾ÈË£¨liigo£©¶ÀÁ¢ÊµÏÖµÄSGF¸ñʽΧÆåÆåÆ×Îļþ½âÎöÆ÷£¬±¾ÎĽéÉÜÆäʵÏÖϸ½Ú¡£ÍøÂçÉϿ϶¨¿ÉÒÔÕÒµ½ÍêÉƵĿªÔ´µÄSGF½âÎöÆ÷£¬ÕâÊÇÎãÓ¹ÖÃÒɵģ¬ÎÒ²»Ö±½ÓʹÓÃËüÃÇ£¬Ò²²»²Î¿¼ËüÃǵÄʵÏÖ´úÂ룬¶øÊÇ×Ô¼º¶ÀÁ¢±àÂëʵÏÖ£¬ÊÇÓÐÔ­ÒòµÄ£¬ÒòΪÎÒÏë×Ô¼ºÖظ´·¢Ã÷ÂÖ×Ó£¬²¢ÇÒÈÏΪÕâÑù¸üÓÐÖúÓÚÌá¸ßÎҵıàÂëÄÜÁ¦¡££¨¹ØÓÚÎҵġ°Ò»¶¨ÒªÑ§»áÖظ´·¢Ã÷ÂÖ×Ó¡±µÄ²»³ÉÊìµÄÂÛµ÷£¬½ñºóÎÒ½«»áרÃÅ׫ÎıíÊö¡££©

¡¡¡¡ÎÒ£¨liigo£©¿ª·¢µÄÕâ¸öSGF½âÎöÆ÷£¬²ÉÓûùÓÚʼþµÄ¼òµ¥API£¬ÀàËÆÓÚXML½âÎöÆ÷ÖеÄSAX(Simple API for XML)¡£ÕâÖÖ½âÎöÆ÷µÄºËÐÄÊÇ£ºÓÉÓû§ÊÂÏÈÌṩһϵÁлص÷º¯Êý£¬½âÎöÆ÷ÔÚ½âÎöµÄ¹ý³ÌÖУ¬ÒÀ´Îµ÷ÓÃÏà¹ØµÄ»Øµ÷º¯Êý²¢´«ÈëÏàÓ¦²ÎÊý£¬Óû§³ÌÐòÔڻص÷º¯ÊýÖÐ×ö³öÏàÓ¦µÄ´¦Àí¡£´ËÀà½âÎöÆ÷ÊôÓÚÇáÁ¿¼¶µÄ½âÎöÆ÷£¬½âÎöËٶȿ죬ռÓÃÄÚ´æÉÙ£¬½á¹¹ÇåÎúÒ×ÓÚʵÏÖ£¬Ö»ÊÇÏà¶ÔÀ´Ëµ²»Èç»ùÓÚDOMµÄ½âÎöÆ÷·½±ãʹÓá£

¡¡¡¡SGF¸ñʽ£¬Smart Game Format£¬±»Éè¼ÆÓÃÀ´¼Ç¼¶àÖÖÓÎÏ·ÀàÆåÆ×µÄͨÓøñʽ£¬ÔÚΧÆåÁìÓò±»·¢Ñï¹â´ó£¬ÊÇÓÃÓÚÃèÊöΧÆåÆåÆ×µÄ×îÖØÒªÒ²×îͨÓõÄÐÎʽ¡£ËüÊÇ´¿Îı¾µÄ¡¢»ùÓÚÊ÷£¨TREE£©µÄ½á¹¹£¬±ãÓÚʶ±ð¡¢´æ´¢ºÍ´«Êä¡£Æä¸ñʽ¼ò½àʵÓã¬Ò²·Ç³£Ò×ÓÚ±à³Ì½âÎö¡£SGF¸ñʽ¹Ù·½¹æ·¶ÍøַΪ£ºhttp://www.red-bean.com/sgf/¡££¨Ëµµ½Î§ÆåÆåÆ×£¬²»µÃ²»ÔÞ̾һÏ£¬ËüÖ»ÐèÓÃÒ»·ùͼ¾Í¿ÉÒÔÍêÕû»¹Ô­Ò»ÅÌÆå´ÓʼÖÁÖյķçÔƱä»Ã£»×÷Ϊ¶Ô±È£¬ÏóÆåÒ»·ùͼֻÄÜÃèÊö¶ÔÞÄÖÐijһʱ¿ÌµÄ³¡¾°¡££©

¡¡¡¡SGFµÄÖ÷Òª½á¹¹ÓÉÊ÷£¨GameTree£©¡¢½ÚµãÐòÁУ¨Sequence£©¡¢½Úµã£¨Node£©¡¢ÊôÐÔ£¨Property£©µÈ×é³É¡£ÆäÖС°ÊôÐÔ¡±Îª×îÖØÒªµÄ»ù±¾µ¥Î»£¬ËüÓÉÊôÐÔ±êʶ£¨PropIdent£©ºÍÊôÐÔÖµ£¨PropValue£©×é³É¡£Óɷֺš°;¡±·Ö¸ôµÄ¶à¸öÊôÐÔ£¬³ÆΪ½Úµã¡£¶à¸ö½Úµã˳ÐòÅÅÁгÆΪ½ÚµãÐòÁС£ÓÉÀ¨ºÅ¡°(¡±¡°)¡±À¨ÆðÀ´µÄ½ÚµãÐòÁУ¬³ÆΪÊ÷£¬Ê÷Öпɰüº¬×ÓÊ÷¡£SGFµÄEBNF¶¨ÒåÈçÏ£¨²Î¼ûhtml#ebnf-def">http://www.red-bean.com/sgf/sgf4.html#ebnf-def£©£º

view plaincopy to clipboardprint
Collection = GameTree { GameTree }
GameTree = "(" Sequence { GameTree } ")"
Sequence = Node { Node }
Node = ";" { Property }
Property = PropIdent PropValue { PropValue }
PropIdent = UcLetter { UcLetter }
PropValue = "[" CValueType "]"
CValueType = (ValueType | Compose)
ValueType = (None | Number | Real | Double | Color | SimpleText | Text | Point | Move | Stone)
Collection = GameTree { GameTree }
GameTree = "(" Sequence { GameTree } ")"
Sequence = Node { Node }
Node = ";" { Property }
Property = PropIdent PropValue { PropValue }
PropIdent = UcLetter { UcLetter }
PropValue = "[" CValueType "]"
CValueType = (ValueType | Compose)
ValueType = (None | Number | Real | Double | Color | SimpleText | Text | Point | Move | Stone)

¡¡¡¡ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄÓÐÒ»¶¨´ú±íÐÔµÄSGFÎı¾£¬ÏÈÈôó¼ÒÓÐÒ»¸ö¸ÐÐÔÈÏʶ£º

+ expand sourceview plaincopy to clipboardprint
(;FF[4]GM[1]SZ[19]FG[257:Figure 1]PM[1]
PB[Takemiya Masaki]BR[9 dan]PW[Cho Chikun]
WR[9 dan]RE[W+Resign]KM[5.5]TM[28800]DT[1996-10-18,19]
EV[21st Meijin]RO[2 (final)]SO[Go World #78]US[Arno Hollosi]
;B[pd];W[dp];B[pp];W[dd];B[pj];W[nc];B[oe];W[qc];B[pc];W[qd]
(;B[qf];W[rf];B[rg];W[re];B[qg];W[pb];B[ob];W[qb]
(;B[mp];W[fq];B[ci];W[cg];B[dl];W[cn];B[qo];W[ec];B[jp];W[jd]
;B[ei];W[eg];B[kk]LB[qq:a][dj:b][ck:c][qp:d]N[Figure 1]

;W[me]FG[257:Figure 2];B[kf];W[ke];B[lf];W[jf];B[jg]
(;W[mf];B[if];W[je];B[ig];W[mg];B[mj];W[mq];B[lq];W[nq]
(;B[lr];W[qq];B[pq];W[pr];B[rq];W[rr];B[rp];W[oq];B[mr];W[oo];B[mn]
(;W[nr];B[qp]LB[kd:a][kh:b]N[Figure 2]

;W[pk]FG[257:Figure 3];B[pm];W[oj];B[ok];W[qr];B[os];W[ol];B[nk];W[qj]
;B[pi];W[pl];B[qm];W[ns];B[sr];W[om];B[op];W[qi];B[oi]
(;W[rl];B[qh];W[rm];B[rn];W[ri];B[ql];W[qk];B[sm];W[sk];B[sh];W[og]
;B[oh];W[np];B[no];W[mm];B[nn];W[lp];B[kp];W[lo];B[ln];W[ko];B[mo]
;W[jo];B[km]N[Figure 3])

(;W[ql]VW[ja:ss]FG[257:Dia. 6]MN[1];B[rm];W[ph];B[oh];W[pg];B[og];W[pf]
;B[qh];W[qe];B[sh];W[of];B[sj]TR[oe][pd][pc][ob]LB[pe:a][sg:b][si:c]
N[Diagram 6]))

(;W[no]VW[jj:ss]FG[257:Dia. 5]MN[1];B[pn]N[Diagram 5]))

(;B[pr]FG[257:Dia. 4]MN[1];W[kq];B[lp];W[lr];B[jq];W[jr];B[kp];W[kr];B[ir]
;W[hr]LB[is:a][js:b][or:c]N[Diagram 4]))

(;W[if]FG[257:Dia. 3]MN[1];B[mf];W[ig];B[jh]LB[ki:a]N[Diagram 3]))

(;W[oc]VW[aa:sk]FG[257:Dia. 2]MN[1];B[md];W[mc];B[ld]N

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£ºGLIBC strlenÔ´´úÂë·ÖÎö ÏÂһƪ£ºCÓïÑÔС³ÌÐò¨DÊ®½øÖÆСÊýת¶þ½øÖ..

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿