-ããªãã®äž»ãªçœªãç¥ã£ãŠããŸããïŒ
-äžäœäœïŒ ç§ã¯7ã€ãã¹ãŠãåŽæããŠããŸã...
ããããä»...ç§ã¯æããå£ã«ããæºåãã§ããŠããŸãïŒ
ãã«ã³ã ã»ã¬ã€ãã«ãºã Mission Serenity ã
ç§å人ã®ã
ãã©ãã«ã¬ãŒãã£ã³ã° ãã¯æ¥éã«å®äºã«åãã£ãŠããããã
Zillions of Gamesããå¿
èŠãªåäœãååŸããããšããŸããŸãå°é£ã«ãªã£ãŠããŸãã äžéšã®ã«ãŒã«ã¯éåžžã«ç°¡åã«å®åŒåã§ããŸãããéçºè
ã«å€§éã®è¡ãæµããŸãã ãæãã®ã«ãŒã«ãããã®äžã€ã§ãã
4.æ§äº€ã®ããã«ïŒ
ããŒãããããŒã¹ïŒèªåèªèº«ãŸãã¯å¯ŸæŠçžæïŒãåé€ããæ©èœã¯éåžžã«äŸ¿å©ã§ãã äŸã®ããã«é ãã«è¡ãå¿
èŠã¯ãããŸããã Martin Gardnerã®
Mathematical Leisureã§èª¬æãããŠããã²ãŒã
Focusã«ã€ããŠã¯ãã§ã«
æžããŠããŸãã ããããã¬ã€ããããšã¯ç°¡åã§ã¯ãããŸããããã²ãŒã ã®åã³ã¯ã2çªç®ã®ãã¬ãŒã€ãŒã®ããã®éåžžã«åçŽãªwin-winæŠç¥ããããšããäºå®ã«ãã£ãŠå¹Ÿå圱ãèããªããŸãã ããŒãã®äžå¿ã«å¯ŸããŠå¯Ÿç§°çã«å察æŠçžæã®åããç¹°ãè¿ããšã圌ã¯ã²ãŒã ãç¡æéã«åŒãããããšãã§ããŸãã
ããããã®åãã§ã2çªç®ã®ãã¬ãŒã€ãŒã¯åã®åãã§å£ããäžå€®ã®å¯Ÿç§°æ§ã埩å
ããŸãã ããŒã¹ã¯å¯Ÿè§ç·ã«æ²¿ã£ãŠç§»åã§ããªããããæåã®ãã¬ãŒã€ãŒã¯åãè¿ãã®ã€ããªãïŒ1åã®åãã§ïŒå¯Ÿç§°æ§ãç Žãããšãã§ããããããã£ãŠãçžæã¯è² ããããã¹ãŠã®åããæ£ç¢ºã«ç¹°ãè¿ããŸãã æããã«ããã®æ¬ ç¹ã¯ãå
ã®å³åœ¢ã®å¯Ÿç§°é
眮ã«éåããããšã«ãã£ãŠã®ã¿å
æã§ããŸãã
æåã®åããšããŠãåãã¬ãŒã€ãŒã¯ããŒããã1ã€ã®ããŒã¹ãåé€ã§ããŸãïŒãã¡ããã2çªç®ã®ãã¬ãŒã€ãŒã¯ã1çªç®ã®ãã¬ãŒã€ãŒãè¡ã£ãåãã«å¯ŸããŠå¯Ÿç§°ã«äœçœ®ããããŒã¹ãåé€ããããšãçŠæ¢ããå¿
èŠããããŸãïŒã ZRFã§ã¯ãããŒãããããã€ãã®ããŒã¹ãåé€ããããšã ãã«å¶éãããåãã圢æããå¯èœæ§ã¯ãããŸããããããŒãããããšãã§ããŸãã ãã®ã³ãŒãã¯ãç®çã®çµæãçæããŸãã
å³åœ¢ãåé€ãã(define capture-enemy ( (verify enemy?) (verify (not is-protected?)) mark sym (set-attribute is-protected? true) back capture add )) ... (piece ... (drops (move-type capturing) (capture-enemy) ) )
ããã§
symã¯ãããŒãã®ãã£ãŒã«ãã察称çã«ãã¢ã§æ¥ç¶ããæ¹åã§ãã å®éãåé€ã¯ããŸããããç¹å®ã®è£å©éšåãããŒãã«é
眮ããŸãã 以åã«ã¿ãŒã²ãããã£ãŒã«ãã«é
眮ãããŠããå³ã¯èªåçã«åé€ãããŸãã
远å ã³ãã³ãã§ç§»åãå®äºããåã«ã
ãã£ããã£ã³ãã³ãã§è¿œå ãããå³èªäœãåé€ããŸãã ZSG衚èšã§ã¯ããã®åãã¯æ¬¡ã®ããã«ãªããŸãã
1. White t e6 x e6
æµã®è²ãèªåã®ãã®ã«å€æŽããããšã§ãã£ã®ã¥ã¢ããåãæ¿ãããã®ã¯ããã«ç°¡åã§ãïŒäžèšã®ã³ãŒãã¹ããããã®
ãã£ããã£ã³ãã³ããã³ã¡ã³ãã¢ãŠãããã ãã§ãïŒããæåã®åŸ
ã¡äŒãã¯ããã«ãããŸãã çžæã®äžã«èªåã®ãã£ã®ã¥ã¢ã眮ãããšãã§ããŸããããã®éã¯ã§ããŸããïŒ ZoGã§ã¯ãèªåã®äœåã ãã§éã¶ããšãã§ããŸãã 幞ããªããšã«ããã®å Žåãããã¯ããŸãéèŠãªå¶éã§ã¯ãããŸããã ããŒãããèªåã®ããŒã¹ãèªçºçã«åé€ããããšïŒããã«ã¯æµã®ããŒã¹ãšäº€æããããšïŒã¯åŸçã§ã¯ãããŸããã æµã«è²Žæãšåãããã«æ¯ãèãããããšã¯ã§ããªãã®ã§ãã²ãŒã ã®æåã«å·šå€§ãªäžåè¡¡ãçããŸãã
ãã¡ãããããã©ãŒã«ã¹ãã ãããä»»æã®ããŒã¹ã®é€å»ãå®è¡ããåããæ±ããããã²ãŒã ã§ã¯ãããŸããã åäžçŽã®30幎代ããœããšãé£éŠã§ã¯
ã·ã£ãŒããŒã€ã²ãŒã ãç©æ¥µçã«æšé²ãããç«¶æå Žã®æ°åã¯æ©å
µãèªç©ºãå€§ç ²ã®åã象城ããŠããŸããã ãã®ã²ãŒã ã®å€§ç ²ã¯ãæåéããçŸå Žãé¢ããªããæµã®ãã£ã®ã¥ã¢ãç Žå£ããå¯èœæ§ããããããæãã¹ãåã§ããã ããã¯ã²ãŒã ã®ãã©ã³ã¹ãå®å
šã«å°ç¡ãã«ããå¯èœæ§ããããŸãããåé¡ã¯éåžžã«ç¬åµçãªæ¹æ³ã§è§£æ±ºãããŸããã
ããŒãã®å察åŽã®ç«¯ã«å°éãããã®ã²ãŒã ã®ãããããã³ãã®æã匱ããã£ã®ã¥ã¢ã¯ãä»ã®ãã£ã®ã¥ã¢ã«å€ãããŸããã§ããã å®éãæµã®ãã£ã³ãã«å°çããæ©å
µãæŠè»ãŸãã¯é£è¡æ©ã«å€ãã£ãå Žåãã²ãŒã ã¯éåžžã«å¥åŠã«èŠããã§ãããïŒãæ¬éšãã¯èšããŸã§ããããŸããïŒã æŠå Žå
šäœãééããåŸããæ©å
µãã¯ããŒãããåé€ãããŸããããã劚害ããå®è¡ããæš©å©ããããŸãã-æµã®éžæãããã£ã®ã¥ã¢ãããŒãããåé€ããããã«ïŒãã¡ãããæ¬éšããé€ãïŒã å¥ã®èŠåã§ã¯ããæ©å
µããããŒãã®é»ããã£ãŒã«ãïŒä»ã®ããŒã¹ã§å ããããŠããªãïŒãé£ã³è¶ããããšãã§ããããã«ããç ²å
µã®éå£ã广çã«ãæŒãããããšãã§ããŸããã
ãäžç®äžŠã¹ããš
ãã©ãããã¡ããªãŒã®ã²ãŒã ãšã®éã®ç§»è¡åœ¢æ
ã§ããã
ãã«ãº ãã®ããŸããŸãªããŒãžã§ã³ã§ã¯ã圌ã®ãããã3ã€äžŠã¹ããšãæµã®ä»»æã®ããŒã¹ã®é€å»ãå®è¡ãããŸãã ã²ãŒã ã®éå§æã«ããã¬ãŒã€ãŒã«å±ãããããã¯ç©ºã®ããŒãäžã«äº€äºã«é
眮ããããã®åŸãããŒãã®ã©ã€ã³ã«æ²¿ã£ãŠç§»åã§ããŸãã æ¢åã®ZoGå®è£
ã§ã¯ã察æŠçžæã®é§ãåãé€ãããšã¯ãããã«ãïŒ3ã€ã®ãããã®åïŒãæ§ç¯ããåããšçµã¿åããããŸãã
å·¥å Žã§ä»»æã®æ°åãæ®ã (define take-piece a1 (while (on-board? next) (if enemy? mark (not-in-a-mill ns) back (if (flag? eatit) (not-in-a-mill ew) back (if (flag? eatit) (not-in-a-mill in out) back (if (flag? eatit) capture add (set-flag writeit false) ) ) ) ) next ) ) (define check-mill (set-flag mill false) (check-dir1 ns)(check-dir2 ns)(check-dir3 ns) (check-dir1 ew)(check-dir2 ew)(check-dir3 ew) (check-dir1 in out)(check-dir2 in out)(check-dir3 in out) to (if (flag? mill) (take-piece) ) ) (define shift ( mark $1 (verify empty?) (set-flag writeit true) (check-mill) (if (flag? writeit) add ) ) )
writeitãã©ã°ã®äœ¿çšã«æ³šæãã䟡å€ããããŸãã ãããã®ç§»åïŒ
shift ïŒã®ãã¯ãå
ã§ã®ïŒãµã€ã¬ã³ãã³ãã³ãïŒç§»åïŒ
addã³ãã³ãã«ããïŒã¯ãæµã®ããããåé€ãããªãã·ã§ã³ãèŠã€ãããªãã£ãå Žåã«ã®ã¿çºçããŸãã æ¬¡ã«ã
ãã€ã¯ããŒã¹ãã¯ãã§ã®ãã£ããã£åŸã«å®è¡ãããå
远å ã³ãã³ãã«ãããç¬ç«ããç§»åãªãã·ã§ã³ã圢æãããŸãïŒããµã€ã¬ã³ããç§»åã®åœ¢æã¯çŠæ¢ãããŸãïŒã
ããã¯ãMillãã¢ã«ãŽãªãºã ã®éåžžã«è峿·±ãå®è£
ã§ãããæ®å¿µãªããããã®ã²ãŒã ã§èµ·ãããããã¹ãŠã®ç¶æ³ãã«ããŒããŠããããã§ã¯ãããŸããã ã«ãŒã«ã®ããã€ãã®ããªãšãŒã·ã§ã³ã«ãããšããããã®ããã€ãã®åã®åææŽåã¯ã察å¿ããæ°ã®æµããããé€å»ããèœåãæäŸããã¯ãã§ãã äžèšã®ã¢ã«ãŽãªãºã ã§ãã®åé¡ã解決ããããšãããšããçµã¿åããççºãã«ã€ãªãããŸãã åæ§ã®ã¢ããªã«ã®ã²ãŒã
Swampã® å®è£
ã§ã¯ ãå¥ã®ã¢ãããŒããåãããšã«ããŸããã
沌ã§ãã£ã®ã¥ã¢ããã£ããã£ãã (define my-friend? (and (in-zone? inner $1) (not (position-flag? from? $1)) (friend? $1) ) ) (define check-side (set-flag is-checked? false) (if (my-friend? $1) mark $1 (if (my-friend? $1) (set-flag is-checked? true) (set-flag is-accepted? false) (set-position-flag is-marked? true $2) (set-position-flag is-marked? true $3) $1 (set-position-flag is-marked? true $2) (set-position-flag is-marked? true $3) ) back (if (flag? is-checked?) (set-position-flag is-marked? true $2) (set-position-flag is-marked? true $3) ) ) ) (define check-middle (if (and (my-friend? $1) (my-friend? $2)) (set-flag is-accepted? false) mark $1 (set-position-flag is-marked? true $3) (set-position-flag is-marked? true $4) $2 $2 (set-position-flag is-marked? true $3) (set-position-flag is-marked? true $4) back (set-position-flag is-marked? true $3) (set-position-flag is-marked? true $4) ) ) (define shift-man ( (set-position-flag from? true) (verify (in-zone? inner)) $1 (verify (in-zone? inner)) (verify empty?) (set-flag is-accepted? true) (check-side $1 $2 $4) (check-side $2 $3 $1) (check-side $4 $1 $3) (check-middle $2 $4 $1 $3) (if (not-flag? is-accepted?) mark a0 (while (on-board? next) next (if (and enemy? (position-flag? is-marked?)) (set-attribute is-capturing? true) ) ) back ) add )) ... (piece (name Man) ... (attribute is-capturing? false) (drops (move-type droptype) (drop-man) ) (moves (move-type normaltype) (shift-man nesw) (shift-man eswn) (shift-man swne) (shift-man wnes) ) )
ãã®ã²ãŒã ã§ã¯ã3ã€ã®ãã£ã®ã¥ã¢ã®ã·ãªãŒãºãšããã«ããæ§ç¯ããããšã«ãããæµã®ãã£ã®ã¥ã¢ãšæŠãããšãã§ããŸãããæµã®ãã£ã®ã¥ã¢ãšæŠãããšã¯ã§ããŸããã ãããäœãæå³ããã®ããçè§£ããããã«ãç§ã¯æ¬¡ã®
èšé²ãããã®ã²ãŒã ã®ã²ãŒã ããã¬ã€ããªããã°ãªããŸããã§ããã ãã®è¡šèšã®å質ã¯ã²ã©ããã®ã ãšããã«èšããªããã°ãªããŸããã ç§ã®ç¥ããªãæ¬ããã®ã¹ãã£ã³ã¯ãèªèãšã©ãŒãã¯ãªãŒã³ã¢ããããããšãæ°ã«ããŸããã§ããã ããããç®ã®åã«ããŒã
ã眮ããŠãã²ãŒã ã®ã³ãŒã¹
ã埩å
ããããš
ãã§ããŸãã ïŒãã¬ã€ã€ãŒã®åãã®ããã€ãã¯ãç§ã«ã¯ç¹ã«è³¢ãèŠããŸããã§ããïŒã
äžèšã®ã³ãŒãã¹ããããã¯ããã®ãããã®åæã«åºã¥ããŠããŸãã
ãã§ãã¯ãµã€ããã¯ããš
ãã§ãã¯ããã«ãã¯ãã¯ãããªãã«ã®åœ¢æããã§ãã¯ããã ãã§ãªãããæŠéäžãã®ãã£ãŒã«ãã
ããŒã¯ããããã©ã°ã§
ããŒã¯ããŸããïŒ ã ãã¹ãŠã®ãã©ã°ïŒäœçœ®ãã©ã°ãå«ãïŒã¯åã¿ãŒã³ã®éå§æã«èªåçã«ã¯ãªã¢ããããããã³ãŒã¹èšç®ã®æåŸã«ãã¬ããŒãžã¯ãªãŒãã³ã°ããå®è¡ããå¿
èŠã¯ãããŸããã åãçç±ã§ã
is-capturing屿§ãèšå®ããããšã§ããã£ã®ã¥ã¢ã®æŠãã«ã€ããŠåãåã£ãæ
å ±ãæ¬¡ã®ã¿ãŒã³ã«è»¢éããå¿
èŠããããŸã
ãïŒ ã æ¬¡ã®åãã§ã¯ããã®å±æ§ãèšå®ãããŠãããã¹ãŠã®å³åœ¢ãåé€ã§ããŸãã ãã®ã¢ãããŒãã¯ç§ã«ãšã£ãŠããæè»ã§ãããã«ãMillã«ãã£ãŠåœ¢æãããå¯èœæ§ã®ããåãã®é·ããªã¹ãããéžæããããããåå¥ã®åãã«ãã£ãŠäœãããããŒã¹ãåé€ããæ¹ãæçœã§ãã
å¥ã®ã¢ããªã«ã®
ã²ãŒã ã® å®è£
ããã°ã©ãã£ãã¯ãªãœãŒã¹ãååŸããŸããã ç¶æ³ã¯å®å
šã«éžè©±çã§ããã ã²ãŒã ã¢ã«ãŽãªãºã ãã»ãŒå®å
šã«å®è£
ãããšããZoGã¯é©ãããããããŸããã
(loss-condition (White Black) (pieces-remaining 2))
ãSwampãã®ããŒãã£ãŒã¯ã空ã®ããŒãã«ããŒã¹ããã¢ã§èšçœ®ããããšããå§ãŸããŸãã äžèšã®è¡ã¯ãããããã®ãã¬ã€ã€ãŒã2çªç®ã®ããŒã¹ã远å ãããšãã«ã²ãŒã ãå®äºããŸããã ããŒãã«ããŒã¹ã远å ããæ®µéã§ãã§ã«ZoGã«ãã£ãŠããŒã¹ãèæ
®ãããããã«ã1åéãã®ããªã¶ãŒãããå®è£
ããå¿
èŠããããŸããã ãäºåãã®ããŒããåŒããŠã»ããã¢ããããåããªããªã£ãããããšãŒã¿ã€ããé©åãªããŒãã®å®çŸ©ãåããŸããã
ã¡ãªã¿ã«ãé€äœã¯ä»æ¥ã®äŒè©±ã®ãããã¯ã«ãé©åããŸãã ãã®ã²ãŒã ã¯ãã§ãã«ãŒã®ãããªãã®ã§ãã ãã®äžã®ãã£ããã£ã¯ãæµã®ãã£ã®ã¥ã¢ãéåžžã®ããžã£ã³ããããããšã«ãã£ãŠå®è¡ãããŸãã ãã§ãã«ãŒã®å Žåãšåæ§ã«ãã¿ãŒã³ããšã«è€æ°ã®ãã£ããã£ãããã§ãŒã³ã§ãèš±å¯ãããŸãã éãã¯ãæ®åœ±ãããåããŒã¹ã«ã€ããŠããã¬ãŒã€ãŒã¯
å¥ã® ïŒä»»æã®ïŒçžæã®ããŒã¹ãååŸããæš©å©ãæã£ãŠããããšã§ãã ãã®ãããªãè¯å®çãªãã£ãŒãããã¯ãã¯ãããã«åŸãããå©çãåå©ã«ã€ãªãããšããäºå®ã«ã€ãªããïŒãã®ã²ãŒã ã§ã¯åŒãåãã¯ãŸãã§ãïŒãã²ãŒã ã®æ§è³ªã¯ã¢ããªã«å€§éžã®æ°è³ªã®äœæ°ã«éåžžã«é©ããŠããŸãã
ãããããã®ãããªã«ãŒã«ã¯ãšããŸããã¯ãªã²ãŒã ã§ã®ã¿èŠã€ãããšèããã¹ãã§ã¯ãããŸããã åäŸã®é ã«ãã§ãã«ãŒããã人ã®å€ãã¯ãæŠãã®å¯èœæ§ããéãããããŒã¹ããéç¬ã®ããã«ãããŒãããåãé€ãããšãã§ãããšããã«ãŒã«ãããããèŠããŠããŸãã ãã®èŠåã¯æ±ºããŠããã·ã¢ã®èæ¡ãã®çºæã§ã¯ãããŸããïŒ åæ§ã«ãEnglish
Checkersã§ãã£ã®ã¥ã¢ãããããã§ããŸãã å€ãã®ç ç©¶è
ã¯ããã®ãããªãæãã®ã«ãŒã«ãããã¹ãŠã®ãã§ãã«ãŒã²ãŒã ã®å
é§è
ã§ãã
Alcuirkeã«ãã§ã«ååšããŠããããšã«åæããŸãã
ãæãã®ã«ãŒã«ãèªäœã«é¢ããŠãæŽå²ã¯ã»ãšãã©æçœãªæãééããŸããã ãã®ã«ãŒã«ããã§ãã«ãŒã«é©çšãããšãå°ãªããšãè€éãªã³ã³ãããŒã·ã§ã³ã²ãŒã ãæã€ããšã¯ã»ãŒäžå¯èœã«ãªããŸãã å®éãã»ãšãã©ã®å Žåããã¬ã€ã€ãŒã1ã€ã®ããŒã¹ããåœç©ã®ããã«ãäžããã»ãããtrapã«èªæãããããã¯ããã«å©çããããŸãã åœç¶ã®ããšãªãããã»ãšãã©ã®ææ°ã®ãã§ãã«ãŒã§ã¯ããæãã®ã«ãŒã«ããæé€ãããŠããŸãã
çŸåšã
ã¬ãŒãå
±ååœã®é åã§æŒããããŠãã
ããã€ãªã©ã®äžéšã®ã¢ããªã«çã§ã®ã¿äœ¿çšãããŠããŸãã ä»ã®å€ãã®ã¢ããªã«ã®ã²ãŒã ãšåæ§ã«ããã®ããŒãžã§ã³ã®ãã§ãã«ãŒã¯ãã¹ããŒãããšãããã³ãã§ãã¬ã€ãããŸã-æŠè¡ã®éèŠãªèŠçŽ ã§ãã ãã以å€ã®å Žåãããã€ã®èŠåã¯
åœéèæ¡ã«äŒŒãŠããŸãã
äžçš®ã®ãç¥çäœæããšããŠãç§ã¯ZRFã«ãããã³ã䌎ãããã§ãã«ãŒã
å®è£
ããããšã«ããŸããã æåã®ã¹ãããã¯æããã§ãã-ãã¬ãŒã€ãŒã¯éžæã®èªç±ãæå€§éã«ç¢ºä¿ããå¿
èŠãããããããã€ã¯ã®åªå
é äœã倿°æ±ºã«ãŒã«ããªãã«ãããã€ã¯ãã§ãŒã³ã®äžæãèš±å¯ããŸããã ãã®ã²ãŒã ã§ã¯ããã¬ãŒã€ãŒã¯å¯ŸæŠçžæã®é§
ã ãé£ã¹ãã
矩åã¯ãã
ãŸãããããã§ãã«ãŒããæ é€äžè¶³ãã®å Žåã察æŠçžæã¯ãããã®ãããããããŒãããåé€ããæš©å©ããããŸãã ãæãã®ã«ãŒã«ãã«è©²åœããæ°åã¯ã屿§ã§ã¿ã°ä»ãããããšã«ããŸããã ããã«æ¬¡ã®åçŽãªã¢ã«ãŽãªãºã ã圢æãããŸããã
- 圌ã®ã¿ãŒã³ã®çµããã«ããã¹ãŠã®å¯ŸæŠçžæã®ããŒã¹ã«ã€ããŠã圌ã®ããŒã¹ïŒæŠéãå®äºããããšãã§ããããŒã¹ã屿§ã§ããŒã¯ããïŒãšæŠãå¯èœæ§ã確èªããŸã
- æµããã£ããã£ãååŸãããããã¹ãŠã®ããŒã¹ã®å±æ§ãã¯ãªã¢ããŸãïŒéããªåãããããšã-屿§ã«è§Šããªãã§ãã ããïŒ
- 察æŠçžæã®ãã£ã®ã¥ã¢ã®ããããã屿§ã§ããŒã¯ãããŠããå ŽåããããåããŸãïŒä»ã®ãã¹ãŠã®ãã£ã®ã¥ã¢ã®å±æ§ãã¯ãªã¢ããïŒ
- ããªãã®æ¬¡ã®äžæ©ãèžã¿åºã
çŽã®äžã§ã¯ãã¹ãŠãã¹ã ãŒãºã§ããã ãã¡ãããZoGã¯ããã«èª¿æŽãå§ããŸããã ZRFã§å€å°è€éãªãã®ãå®è£
ããéã«æåã«å¯ŸåŠããå¿
èŠãããã®ã¯ãç§»åãã圢ç¶ã®ããŸãæç¢ºã§ã¯ãªãã¢ãã«ã§ãã ç§»åãçµäºãããŸã§ãZoGã®æ°åã¯ãã®åæäœçœ®ã«ããã®ãŸãŸãæ®ããã»ãšãã©ã®å Žåãæªéçã«äžäŸ¿ã§ãã éå§ãã£ãŒã«ãã¯ãæ¬åœã«ã空ã§ãããæåŸã®ãã£ãŒã«ãã¯ç§»åããå³ã§åããããŠããããšããèŠããŠãããå¿
èŠããããŸãã çµæã¯æ¬¡ã®ãã¯ãã§ãã
ãã¡ã€ãã£ã³ã°ZoG (define my-friend? (and (not (position-flag? from? $1)) (or (position-flag? to? $1) (friend? $1) ) ) ) (define my-empty? (and (not (position-flag? to? $1)) (or (position-flag? from? $1) (empty? $1) ) ) )
ãã¡ãããäœçœ®ãã©ã°
ã¯ïŒ ãããŠ
ãžïŒ ãŸããæ£ããå
¥åããå¿
èŠãããããã¯ãèªäœ
ã¯æçµããŒãžã§ã³ã«
ããã«ã¯å°éã
ãŸããã§ãã ã æ¬¡ã¯ãããŒã¯ããã圢ç¶ãåé€ããåé¡ã§ããã ãfor fukãã®ããŒã¹ãåãåã£ããã¬ã€ã€ãŒã¯ãçžæã«ã ãŒããæž¡ãããšãªããå¥ã®ã ãŒããå®è¡ããå¿
èŠããããŸãã ç§ã¯
ã¿ãŒã³é ã§ç§»åã®é åºã倿ŽããããããŸããã§ããïŒããã«ã¯çç±ããããŸããïŒãç¹å¥ãªäžå¯èŠã®ããŒã¹ããã£ãŒã«ãã«é
眮ããããšã«ãããåŸç¶ã®ç§»åã®å¯èœæ§ã
ãããã¯ããããšã«ããŸããïŒéåžžã®ç§»åã®æåŸã«åé€ãããŸãïŒã ãã¬ãŒã€ãŒãç§»åãã¹ãããã§ããããã«ããã«ã¯ã察å¿ãããªãã·ã§ã³ãã¢ã¯ãã£ãã«ããå¿
èŠããããŸããã
(option "pass turn" forced)
ããã«ãäžæ¹ã仿¹ãåŒã£åŒµã£ãã ã
ãã¹ã¿ãŒã³ ããªãã·ã§ã³ã¯ããã¬ãŒã€ãŒã®åããã¹ãããããæ©èœãå¶åŸ¡ããŸãïŒã€ãŸããçæãããåãã®ãªã¹ãã«ç©ºã®
ãã¹ã远å ããŸã
-pass ïŒã å€ãã
forced ãã«èšå®ãããšããã®ã¢ã¯ã·ã§ã³ã¯ããã«ããªãããŒã«ãªããŸããä»ã®å¯èœãªåãããªãå Žåã«ã®ã¿ãã¹ãå¯èœã§ãïŒãã®å Žåãã¹ãããã¯èªåçã«å®è¡ãããŸãïŒã æ®å¿µãªããããã®æ§è³ªäžããã®ãªãã·ã§ã³ã¯æ¬¡ã®ã²ãŒã çµäºæ¡ä»¶ãšå®å
šã«äºææ§ããããŸããã
(loss-condition (First Second) stalemated)
ãããŠãããã¯éåžžã«æªãããšã§ãããªããªãããã¬ãŒã€ãŒã®æåã«ããã²ãŒã ã®çµäºã¯ãåãã®å¯èœæ§ããªãå Žåããã§ãã«ãŒã®ã»ãšãã©ã®äž»èŠãªããšã ããã§ãã å¥ã®ãããçæ³çãªäžçã®ã©ããã§ã次ã®ãã¶ã€ã³ãæ©èœããããšãæã¿ãŸãïŒãã ãããããã¯ç©ºã®å€¢ã§ãïŒã
(loss-condition (First Second) (and stalemated (total-piece-count 0 Lock) ) )
ãæåã§ãç§»åãã¹ãããããå¿
èŠããããŸããã å®éãããã¯
æã£ãã»ã©
æãã¯ãã
ãŸãã ã å¿
èŠãªã®ã¯ããã¬ãŒã€ãŒãã¯ãªãã¯ããããã¿ã³ããå®è£
ãããã¹ãããç§»åããå®è¡ããããšã§ãã ãã£ãŒã«ã
a8 ïŒ64ã»ã«ããŒãäžïŒã¯ããã®é
眮ã«é©ããå Žæã§ãïŒéåžžã®ããŒã¹ãå
¥ããªãããïŒã å®éã«ã¯ãã€ãã¹ã1ã€ãããŸã-æ£çŽãªã
匷å¶ã¿ãŒã³ ããšã¯ç°ãªãããã®ãã¿ã³èªäœã¯ãæŒãããŸãããã äžæ¹ããã®ã ãŒãã®åŠçã³ãŒãã«ã¯ãã¯ãªãŒãã³ã°å±æ§ãªã©ã®è¿œå ã®ããžãã¯ãé
眮ã§ããŸãïŒçŸåšã®å®è£
ã§ã¯å¿
èŠãããŸããã§ããããå¿
ããã幞éãªããã§ã¯ãããŸããïŒã æåŸã«ãã
è±èªã®èæ¡ ãã§ãã¹ãŠãããŸã
ãããŸããããé·è·é¢ã®å¥³æ§ã¯å¥ã®åé¡ã§ãïŒ
ãã·ã¢ã®ãã©ããïŒããã³ä»ãïŒ (define check-huff (if (and (on-board? $1) (my-friend? $1)) $1 (if (and (on-board? $1) (my-empty? $1)) (set-flag is-huffing? true) ) $2 ) ) (define check-huff-2 (set-flag is-huffing? false) (if (and (on-board? $1) (empty? $1)) $1 (check-huff $1 $2) $2 ) (if (and (flag? is-huffing?) (not is-huff?)) (set-attribute is-huff? true) ) ) ... (define check-huff-6 (set-flag is-huffing? false) (if (and (on-board? $1) (empty? $1)) $1 (check-huff-5 $1 $2) $2 ) (if (and (flag? is-huffing?) (not is-huff?)) (set-attribute is-huff? true) ) ) (define check-long-enemies (set-position-flag to? true) mark a0 (while (on-board? next) next (if enemy? (if is-huff? (set-attribute is-huff? false) ) (check-huff-1 sw ne) (check-huff-1 se nw) (check-huff-1 ne sw) (check-huff-1 nw se) (if (piece? King) (check-huff-2 sw ne) (check-huff-2 se nw) (check-huff-2 ne sw) (check-huff-2 nw se) (check-huff-3 sw ne) (check-huff-3 se nw) (check-huff-3 ne sw) (check-huff-3 nw se) (check-huff-4 sw ne) (check-huff-4 se nw) (check-huff-4 ne sw) (check-huff-4 nw se) (check-huff-5 sw ne) (check-huff-5 se nw) (check-huff-5 ne sw) (check-huff-5 nw se) (check-huff-6 sw ne) (check-huff-6 se nw) (check-huff-6 ne sw) (check-huff-6 nw se) ) ) ) back ) (define king-jump ( (check-lock) (set-position-flag from? true) (while (empty? $1) $1 ) (verify (enemy? $1)) $1 (set-position-flag from? true) (verify (empty? $1)) $1 (while empty? (clear-enemy-huffs) mark (while empty? (opposite $1) ) (verify enemy?) capture back (clear-huffs) (clear-lock) (set-flag more-captures false) (king-captured-find $1) (king-captured-find $2) (king-captured-find $3) (if (flag? more-captures) (set-attribute is-huff? true) (add-partial jumptype) else (check-long-enemies) (set-attribute is-huff? false) (add-partial notype) ) $1 ) )) (define king-shift ( (check-lock) (set-position-flag from? true) (while (empty? $1) (clear-enemy-huffs) $1 (check-long-enemies) (clear-lock) add ) ))
ãã®ãªãã·ã§ã³ã¯ã女æ§ã«ãªããŸã§æ©èœããŸããã 女æ§ãã¡ã¯ç¥ç§çã«ãµããŸããŸããïŒ
è¬ã¯ç°¡åã«è§£æ±ºãããŸããã é·è·é¢ã®å¥³æ§ã¯ãã«ãŒãã«æ²¿ã£ãä»»æã®ãã£ãŒã«ãã«ç«ã¡å¯ãããšãã§ãããããããããã«ã€ããŠãæµã®ãã£ã®ã¥ã¢ã«ããæŠéã®å¯èœæ§ã®ãã§ãã¯ãå®è¡ããå¿
èŠããããŸãã
h8ã®ãã ã®ãã©ã°ã¯ãé»ããã ããã£ãŒã«ã
b2ãééãããšãã«èšå®ãããŸããããã«ãŒãã®æ¬¡ã®å埩ã®éå§æã«ãªã»ãããããªããªããŸããã 屿§å€ãæã€åæ§ã®ã²ãŒã ã¯ãã«ãŒãçæãµã€ã¯ã«ã«å ŽæããããŸããã ç¹°ãè¿ãã«ãªããŸãããå€ãè¯ããã³ããŒïŒããŒã¹ãããå©ãã«ãªããŸããã
ä¿®æ£ãããå®è£
(define king-jump-1 ( (check-lock) (set-position-flag from? true) (while (empty? $1) $1 ) (verify (enemy? $1)) $1 capture (set-position-flag from? true) $1 (verify empty?) (clear-huffs) (clear-lock) (set-flag more-captures false) (king-captured-find $1) (king-captured-find $2) (king-captured-find $3) (if (flag? more-captures) (set-attribute is-huff? true) (add-partial jumptype) else (check-long-enemies) (set-attribute is-huff? false) (add-partial notype) ) )) ... (define king-jump-6 ( (check-lock) (set-position-flag from? true) (while (empty? $1) $1 ) (verify (enemy? $1)) $1 capture (set-position-flag from? true) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) (clear-huffs) (clear-lock) (set-flag more-captures false) (king-captured-find $1) (king-captured-find $2) (king-captured-find $3) (if (flag? more-captures) (set-attribute is-huff? true) (add-partial jumptype) else (check-long-enemies) (set-attribute is-huff? false) (add-partial notype) ) )) (define king-shift-1 ( (check-lock) (set-position-flag from? true) $1 (verify empty?) (check-long-enemies) (clear-lock) add )) ... (define king-shift-7 ( (check-lock) (set-position-flag from? true) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) $1 (verify empty?) (check-long-enemies) (clear-lock) add )) (variant (title "Russian Checkers (with huffs)")
ç§ã®è©Šè¡ã¯ããã§çµäºãããããã³ã䌎ããã·ã¢ã®èæ¡ãã®æ£ããåäœããå®è£
ãåŸãããã«èŠãããããããŸããããããã¯ããã»ã©åçŽã§ã¯ãããŸããã ãŸããã
æå€§ãã£ãã㣠ããªãã·ã§ã³ãå«ãããšã以åã®
èšäºã®ããããã§èª¬æãããã°ã埩掻ããŸããã ã²ãŒã ã®ããæç¹ã§ãAIã®å¶åŸ¡äžã§ãããã°ã©ã ã¯ç¬èªã®ããŒã¹ã䜿çšããå¯èœæ§ã忢ããŸããïŒãããŠãæµã®ãã§ãã¯ãå®è¡ããã³ãŒãããã®å¯èœæ§ãèªèããããã圌ã¯ãã§ãã«ãŒãæåéããåœé ãããŸããïŒã
Checkers Collectionã§åæ§ã®ãã°ã«å¯ŸåŠããæ¹æ³ããã§ã«åŠç¿ãã察å¿ãã
ä¿®æ£ãæçš¿ããŸããããäœããã®çç±ã§ãã®æ¹æ³ã¯ãããã³ãããããŒãžã§ã³ã§ã¯æ©èœããŸããã§ããã
ããããããã¯åé¡ã®äžéšã«ãããŸããã äžã®å³ã§ã¯ãçœäººã®å¥³æ§ã¯
d6ãš
f6ã®ããŒã¹ãåãã
h8ã®æŠãã®å¯Ÿè±¡ãšãªããŸãã ãã¡ããã圌女ã¯éããªåãããããããã®å Žã«çãŸãããšã§ãããã³ãããããšãã§ããŸããããã®å Žåã圌女ã¯ãæãè
ã®ããã«ãåãããããšãã§ããŸãã å°é£ã¯ãæè¡çãªææ®µã«ãã£ãŠãçœäººå¥³æ§ã«æŠããç¶ããããã匷å¶ãããããšãã§ããªããšããäºå®ã«ãããŸãã 圌女ã¯
f4ãŸãã¯
g3ã«ç§»åã§ããŸãããããŒã¯ãããã³ãã¯åé€ãããŸãã ZRFã«ããã€ãã®ããšãæ£ããå®è£
ããããšã¯åã«äžå¯èœã§ãã