ã
æŠç¥ã®åéã§æ€çŽ¢ãã ããšããèšäºãç¶ã
ãŸãã AIãã©ã€ã㌠ãã æŠéã²ãŒã ã®ãžã£ã³ã«ã®ããã²ãŒã ãäœæããŸããããã®ã²ãŒã ã§ã¯ãèšç·ŽãåããAIãä»ã®ææžãããããšæŠãã詊è¡é¯èª€ã«ãã£ãŠå婿Šç¥ãéçºããŸãã
ãã®ã²ãŒã ã§ã¯ã2人ã®ç·ããã®ããã«æŠã£ãŠããŸãã

ãããã¯åº§æšè»žäžã«ãããããçšåºŠã®ãã«ã¹ãªã¶ãŒããããããã¯ãŒã«ããŠã³ããã©ã¡ãŒã¿ãŒããããŸãã ã¯ãŒã«ããŠã³-ããã¯ããã¡ã€ã¿ãŒããã®ã¢ã¯ã·ã§ã³ãå®è¡ããããã«éãããŒã®æ°ã§ãã ããšãã°ãã¢ã¯ã·ã§ã³ãgoãã¯ã¯ãŒã«ããŠã³2ãåŒãèµ·ãããã¢ã¯ã·ã§ã³ãstabãã¯ã¯ãŒã«ããŠã³4ãåŒãèµ·ãããŸããã¯ãŒã«ããŠã³ããŒãã«ãªã£ããšãã«ã®ã¿åäœã§ããŸãïŒãŒãã«çãããªãå Žåã¯1åäœæžå°ããŸãïŒã
ãã®ããã2äººã®æŠéæ©ãããŸãã ããããã«åº§æšããã«ã¹ãã¯ãŒã«ããŠã³ããããŸãïŒ

åãã¡ã€ã¿ãŒã¯ãèªåã®é çªã§6ã€ã®ã¢ã¯ã·ã§ã³ã®ãããããå®è¡ã§ããŸãã
1ïŒ1ã§å³ã«é²ã¿ãŸãïŒã¯ãŒã«ããŠã³2ãåŒã³åºããŸãïŒ
2ïŒ1ã§å·Šã«ç§»åããŸãïŒã¯ãŒã«ããŠã³2ãåŒã³åºããŸãïŒ
3ïŒåŸ
æ©ïŒã¯ãŒã«ããŠã³1ãåŒã³åºããŸãïŒ
4ïŒãã€ãã¹ãã©ã€ã¯ïŒã¯ãŒã«ããŠã³4ãåŒãèµ·ãããæµãŸã§ã®è·é¢ã1以äžã®å Žåã20ã®ãã¡ãŒãžãäžããïŒ
5ïŒã¯ãã¹ããŠã·ã§ããïŒã¯ãŒã«ããŠã³10ãåŒãèµ·ãã;æå€§5ã»ã«ã®ãã¡ãŒãžãäžãã;æå€§12ã»ã«ã®4ãã¡ãŒãžãäžããïŒ
6ïŒäžæ¯ïŒã¯ãŒã«ããŠã³10ãåŒãèµ·ãããŸããæå€§8ã»ã«ã®è·é¢ã§2ã€ã®ãã¡ãŒãžãšæ¯ãäžããŸããæ¯ãããæµã¯æ¯ã¿ãŒã³1銬åã倱ããŸããäžæ¯ã¯æŠéçµäºãŸã§ç¶ãã2忝ããããšã¯ã§ããŸããïŒ
å
¥ãå£ã§ãåæŠéæ©ã¯æ¬¡ã®æ
å ±ãåãåããŸããxãhpãããã³ç¶æ
ã¯æ¯ãããŠãããèªåãšçžæã«ã€ããŠæ¯ãããŠããŸããã ããã«ãæµã®ã¯ãŒã«ããŠã³å€ãå°çããŸãã åºåã§ã¯ãåæŠç¥ã¯1ãã6ãŸã§ã®æ°åãäžããŸãã
ãã¥ãŒã©ã«ãããã¯ãŒã¯ãæŠç¥ãå®è£
ããå Žåã6ã€ã®æ°å€ãçæããŸããåæ°å€ã¯ããç§ãæãéãããã®ãããªãªãã·ã§ã³ãå®è£
ãããããšãæå³ããŸãã ããšãã°ããã¥ãŒã©ã«ãããã¯ãŒã¯ã0 0 1 0 -1 0ãçæããå Žåãã·ãŒã±ã³ã¹ã®3çªç®ã®èŠçŽ ã®å€ãæã倧ãããããã¢ã¯ã·ã§ã³3ãéžæããããšãæå³ããŸãã
1ã€ã®æŠéã¯70ãã£ãã¯ç¶ããŸãïŒãŸãã¯ããããæ©ãçºçããå ŽåãããæŠéæ©ãå¥ã®æŠéæ©ã殺ããŸã§ïŒã 70å°ç¯ã¯7ã·ã§ãããŸãã¯35ã¹ãããã§ãã
AIãã¡ã€ã¿ãŒã®åè³ªææšãæ±ºå®ããŸãã 1åã®æŠéã§ã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®ã²ãŒã ã®å質= -100-ïŒã©ãã ãã®äœåã倱ã£ããïŒ+ïŒæµãäœåãã©ãã ã倱ã£ããïŒãæ³å®ããŠããŸãã ç§ã®ãªããã£ãã€ã¶ãŒã¯è² ã®å€ã®ã¿ãæå€§åããããã100æªæºãå¿
èŠã§ãã
q = -100-ïŒå
¥åïŒ3ïŒ-åäœïŒ1ïŒ.hpïŒ+ïŒå
¥åïŒ4ïŒ-åäœïŒ2ïŒ.hpïŒ;
ãã®æŠç¥ã®ãã©ã¡ãŒã¿ãŒã¯ããã¥ãŒã©ã«ãããã¯ãŒã¯ã®éã¿ãšã·ããã§ã-AIã®ãã¹ãã¯æ¬¡ã®ãšããã§ãïŒéã¿ã®ã»ããããã¥ãŒã©ã«ãããã¯ãŒã¯ã«èªã¿èŸŒãŸãããã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã°ããã®éæµãšæŠã£ãŠãããå質è©äŸ¡ãåãåããŸãã ãªããã£ãã€ã¶ãŒã¯ãçµæã®å質ãåæããæ°ããéã¿ã®ã»ãããçæãïŒããããæé«ã®å質ãæäŸããŸãïŒããµã€ã¯ã«ãç¹°ãè¿ããŸãã
ãã®ã²ãŒã ã®éèŠãªèŠçŽ ã¯ããã¥ãŒã©ã«ãããã¯ãŒã¯ã®ä¿æ°ã«å¯Ÿããå質ã¡ããªãã¯ã®æ®µéçãªäŸåæ§ã§ãã

ãªããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã次ã®åºåãã¯ãã«ãçæãããšããŸãããïŒ0 0 1 0 00ããããŠã1ã€ã®ãã©ã¡ãŒã¿ãŒããããã«å€æŽããŸããã ãããŠã次ã®ãããªåºåãã¯ãã«ãåŸãŸããïŒ0 0 0.9 0 00ããŸãã¯0.1 -0.1 0.9 0 0 -0.1ã åæã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãªãã·ã§ã³3ã«æç¥šããåŒãç¶ããªãã·ã§ã³3ã«æç¥šããŸãã
ã€ãŸããå°ããªå€æŽïŒåŸé
éäžãªã©ïŒã«åºã¥ãæé©åæ¹æ³ã¯ããã§ã¯æ©èœããŸããã
äžé£ã®æŠéã®çµæãšããŠã®AIã®å質ã¯ããã¹ãŠã®æŠéã®å¹³åå質ã«ã2ã§å²ã£ãææªã®å質ãå ãããã®ãšèŠãªãããŸãã
q=(min(arr)+sum_/countOfPoints)/2 - sum(abs(k))*0.00001;
ãªãææªãªã®ã§ããïŒ æ¬¡ã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ã1ã€ã®ãŸããªã±ãŒã¹ã§å®å
šã«ãã¬ã€ããæ¹æ³ãåŠç¿ãããä»ã®ãã¹ãŠã®ã±ãŒã¹ã§ãã¬ã€ãããŸããããããã®ããã«ãå¹³åããã€ã³ãã倧éã«åãåããªãããã«ããŸããã ãªãå¹³åãåãã®ã§ããïŒ æ¬¡ã«ãè©äŸ¡ã«é¢äžãããã¥ãŒã©ã«ãããã¯ãŒã¯ã®éžæè¢ãå€ãã»ã©ãããã¯å€§ãããªããŸãã

次ã®ããã«ãªããŸãã

ãŸãã2çªç®ã®ãªãã·ã§ã³ã¯ãæåã®ãªãã·ã§ã³ãããå°ããªå€æŽã䜿çšããŠæé©åããæ¹ãã¯ããã«ç°¡åã§ãã
äžé£ã®ãã¹ãã宿œããŸãã å質ã¡ããªãã¯ã¯çŽ-100ã®ãŸãŸã§ãã ã€ãŸããAIã¯æŠããªãã£ãã ãŸããäœïŒ éããããšãåŠã¶ããšã¯ãåã€ããšãåŠã¶ããšãããã¯ããã«ç°¡åã§ãã
å¶éãå°å
¥ããŸãã æŠéæ©ãã¢ãªãŒããè¶
ãããšãïŒ-20ãã20åãŸã§ïŒãåœŒã¯æ»ã«ãŸãã å®è¡äžã®ãã¹ãããããã¯ã§ã¯ãªããæ³šæã
ã¯ããææžããããã®æŠç¥ã«ã€ããŠè©±ãåããŸãããããã®äžã«ã¯ããã€ããããŸãã
ææžãããããã°ã©ãã£ãšãŒã¿ãŒãã åè§£ã«è¡ããŸãã 圌ããã€ãã§æµã«å°éããå Žåã圌ã¯ãããããŸãã æµã1çºã§æ®ºãããšãããã£ãå Žåã«ã®ã¿æã¡ãŸãïŒããã¯ã»ãšãã©èµ·ãããŸããïŒã
AIã¯ã15åéã®ãã¬ãŒãã³ã°ã®åŸãè² ãããããåã¡å§ããããã«ãªããŸããïŒã¡ããªãã¯ïŒ-95.6ïŒã ããã«1ååŸã圌ã¯ã¹ãã«ãåäžãããŸããïŒã¡ããªãã¯ïŒ-88ïŒã ããã«1ååŸãã¡ããªãã¯ã¯-77.4ã§ããã 1åã§-76.2ã
圌ãåã€æ¹æ³ã確èªããŠãã ããã æŠããå§ããŸãã
Gladiatorã®åº§æšã¯10ãhp = 80ããã¥ãŒã©ã«ãããã¯ãŒã¯ã®åº§æšã¯-9ãhp = 80ã§ãã
å£é士ãåé²ãããã¥ãŒã©ã«ãããã¯ãŒã¯ã鿢ãããã€ãã§ç©ºäžã«æ¯ãå¹ã蟌ã¿ãŸãã å£é士ãäžæ¯ã®ã©ã€ã³ã«å°éãããšããã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ãèµ·åããŸãã ãã®åŸãã¯ãŒã«ããŠã³ãçµéãããšããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ç¡çšã«ãã€ããæ¯ãç¶ããŸã...æ¯ã¯8åã®çްèã§çºçããŸãã 8ã€ã®ã»ã«ãééããã«ã¯ã16ã®åããè²»ããå¿
èŠããããŸãã ãã€ãã§åºãã®ã¯4æã§ãã 16ã¯4ã§å®å
šã«å²ãåããŸããããã¯ãå£é士ããã¥ãŒã©ã«ãããã¯ãŒã¯ã®ãã€ã³ããã©ã³ã¯ã«è¿ã¥ããšãå£é士ã®åã§åºãããšãæå³ããŸãã å®éãAIã¯ãã€ãã¹ãã©ã€ã¯ã¯ãŒã«ããŠã³ãã¿ã€ããŒãšããŠäœ¿çšããŸããã çŸåšããã«ã¹æ¯ã¯80:34ã§ãããã°ã©ãã£ãšãŒã¿ãŒã«æå©ã§ã¯ãããŸããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ãã¯ãã¹ããŠããçºç ²ããå ŽåïŒãã€ãã§ç©ºäžãçªãåºããããåççãšæãããïŒãå
å¶æ»æã®ãã£ã³ã¹ãéããŸãã
ã¹ã³ã¢ã45ïŒ5ã®æç¹ã§æéãçµéãããã¥ãŒã©ã«ãããã¯ãŒã¯ã«æå©ã«ãªããŸããã
æ°ããææžãããããããã€ãäœæããŸãã
ææžãããããStormtrooperãã åè§£ã«è¡ããŸãã æ¯ã§äžæ¯ããæµããŸã æ¯ãããŠããªãå Žåãæ¯ã䜿çšããŸãã ã¯ãã¹ããŠããçè·é¢ïŒ5ãŠãããïŒã§ã·ã¥ãŒãããå Žåãã·ã¥ãŒãããŸãã æµããã€ã³ãã«è¿ã¥ããå Žåããã€ããé©çšããŸãã
ææžãããããã·ã¥ãŒã¿ãŒãã åè§£ã«è¡ããŸãã 圌ãå°ãªããšãäœããã®åœ¢ã§ç³åŒããæã€å Žå-æã€ã æ¯ã§äžæ¯ããæµãæ¯ãããŠããªãå Žåãæ¯ã䜿çšããŸãã ãã€ãã§ä»äžããå Žåã¯ããã€ãã䜿çšããŸãã
ææžãããããã¿ã¯ãŒãã è¿ã¥ããªã 圌ãå°ãªããšãäœããã®åœ¢ã§ç³åŒããæã€å Žå-æã€ã æ¯ã§äžæ¯ããæµãæ¯ãããŠããªãå Žåãæ¯ã䜿çšããŸãã ãã€ãã§ä»äžããå Žåã¯ããã€ãã䜿çšããŸãã
ãããŠããã¥ãŒã©ã«ãããã¯ãŒã¯ãé¢ããŠãå€ã«åœŒããšæŠãã ãŠãŒãã£ãªãã£æ©èœãããã¹ã ãŒãºã«ããããã«ã1ã€ã®ãã¹ãïŒ70ã§ã¯ãªã85ïŒã§ããå€ãã®ãã¹ãïŒ13åïŒãšããå€ãã®ã¡ãžã£ãŒãèšå®ããŸãã
ãããã£ãŠãããã¯ãã¹ãŠãã£ãããšåäœããããã«ãªããŸãããé©åãªæé©å€ãèŠã€ããå¯èœæ§ã¯ãã£ãšãããšæããŸãã
åå10æ30å ãããã¯ãŒã¯ãã¬ãŒãã³ã°ã®å質ã確èªããŸãã -90.96ã ææªã®å Žåãã¡ããªãã¯ã¯-100ã§ãïŒã€ãŸããAIãšãã®æµã¯ãäºãã«çãããã¡ãŒãžãäžããŸãïŒã å¹³åçãªã±ãŒã¹ã§ã¯ã-81.9231ãã€ãŸããAIã¯ããã«18ã®ãã¡ãŒãžãäžããŸããã
ãã¥ãŒã©ã«ãããã¯ãŒã¯ãããŸããŸãªçš®é¡ã®ããããšã©ã®ããã«æŠãããèŠãŠã¿ãŸãããã
1ïŒã°ã©ãã£ãšãŒã¿ãŒã åæåº§æšïŒãã¥ãŒã©ã«ãããã¯ãŒã¯ã§-9ãã°ã©ãã£ãšãŒã¿ãŒã§10ã ã°ã©ãã£ãšãŒã¿ãŒã¯è¿ã¥ããŠããŸããããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã€ãã«åãã£ãŠããŸãã ãããã£ãŠããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ã»ãšãã©ã®å Žåã倧ããªã¯ãŒã«ããŠã³ã䌎ããŸãã ãããŠ...ã°ã©ãã£ãšãŒã¿ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ãã9ã®è·é¢ã«ãããšããã¯ãŒã«ããŠã³ã¯çµäºãããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯åŸ
æ©ããŠããŸããã æã¡ãŸããã å£é士ã¯åœŒã®åããäœãããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ããã«åœŒãæ¯ããŸãã ã°ã©ãã£ãšãŒã¿ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ãã4ã®è·é¢ã«å°éãããŸã§ã«ãäžæ¯åŸã®ã¯ãŒã«ããŠã³ãçµéããŸããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã€ãã§ãã€ãã«çªãåºãããŸãããããŠãå£éå£«ãæ»æã®è·é¢ã«è¿ã¥ããšãã¯ãŒã«ããŠã³ãçµäºããŸãã ãã¥ãŒã©ã«ãããã¯ãŒã¯ãæåã«ãããããæ¬¡ã«ææã®äº€æãéå§ãããŸãã 85ãµã€ã¯ã«ã«ã¯æå¹æéããããŸãã-ãã¥ãŒã©ã«ãããã¯ãŒã¯ãã°ã©ãã£ãšãŒã¿ãŒã殺ããŸããã å£é士ã¯-18銬åããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯40銬åã§ããéãã¯58ãŠãããã§ãã
2ïŒèªç©ºæ©ãæ»æããŸãã åæåº§æšïŒãã¥ãŒã©ã«ãããã¯ãŒã¯5ãSturmovik -10ã æ»ææ©ã¯æ»æãç¶ãããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯éæ¢ãããã€ããæ¯ããŸãã æ»ææ©ããã€ãºã³ãŸãŒã³ã«å
¥ããšããã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã€ãºã³ã䜿çšããŸãã ãããŠãæ»ææ©ã®ã³ãŒããšä»ã®ãã¹ãŠã®ãããã®ã³ãŒãã«ãšã©ãŒãããããšã«æ°ä»ããŸããã ãã®ãšã©ãŒã®ããã圌ãã¯æ¯ã䜿çšã§ããŸããã
ããããç§ã¯AIãTowerãããã§äœãããããçè§£ããŠããŸãã ã¯ããé¢çœãããšã¯äœããããŸãã-圌ã¯ãã åœŒãšæŠã£ãŠããªãã ãã§ãã ã©ããããé²è¡ã²ãŒã ã¯éåžžã«åªããŠããããããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã®æŠç¥ã«å察ããããšã¯ãããåã«é¢äžããŠããã ãã§ã¯ãããŸããã ãããŠãã²ãŒã ã¯åŒãåãã§çµäºããŸãã
ããã§ã11ïŒ02ã«æ¯ã䜿çšã§ããããã«æŠç¥ãSturmovikãããShooterãããTowerãã宿ããããã¬ãŒãã³ã°çšã®ãã¥ãŒã©ã«ãããã¯ãŒã¯ãç«ã¡äžããŸããã å質ã¡ããªãã¯ã¯ããã«-107ã«äœäžããŸããã
11:04ã«æåã®æ¹åãè¡ãããŸãããã¡ããªãã¯ã¯-97.31ã«éããŸããã
ããã ãã§ãã ææªã®çµæã¯-100ãããæªãããã11ïŒ59ã«ãŒãããæ€çŽ¢ãåéããŸãã
ãã«ãã¹ã¿ãŒããšäž»èŠãªé²åã®åŸãã¡ããªãã¯ã¯-133ååŸã§ããã 12:06ã«ãã¡ããªãã¯ã¯ãã§ã«-105.4ã§ããã
ãããããã®åŸãã¡ããªãã¯ã¯äœãšããã£ãããšæé·ããŸããã äœãåé¡ãªã®ã調ã¹ãããšã«ããŸããã ãã¡ããã§ãïŒ ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ã-20ãã20ã®ééã§ããéããããšãåŠã³ãŸããããããŠãã»ãšãã©ã®æŠãã¯åŒãåãã«çµãããŸããã ããã€ãã®æŠéã§ã¯ãAIã¯äœããã®çç±ã§éåŽã§ããããã®æå¹æ§ã¯-53ïŒæµãç Žçã«ããïŒãã-108ïŒäžçšåºŠã®æåïŒã®ç¯å²ã§ããã
æŠå Žã®ãµã€ãºãå°ããããŸãã -10ãã+10ãŸã§ã®ã»ã°ã¡ã³ããšããŸãã ãããŠãç§ãã¡ã¯ã»ã³ã¿ãŒãä¿æã§ãã人ã«å ±é
¬ãäžããŸã-1ã€ã®ä¿æã«å¯ŸããŠ1ãã€ã³ãã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®äžå¿ãããã®ãã€ã³ãæ°ã¯ãæŠéããšã®ã¡ããªãã¯ã«è¿œå ãããæµã®äžå¿ãã€ã³ãã®æ°ãå·®ãåŒãããŸãã
q=-100-(input(3)-units(1).hp)+(input(4)-units(2).hp)+(center.me-center.enemy);
ãããŠã16ïŒ06ã«ãŒããããã¬ãŒãã³ã°ãéå§ããŸãã ãã«ãã¹ã¿ãŒããšäž»èŠãªé²åã®åŸãç§ã¯-126ã®å質ãååŸããŸãã
ç¿æ¥ã®9:44ã«ã-100.81ã®å質ãåŸãããŸãã ã€ãŸãããããã¯å¹³åããŠåã¡ãŸãããæã
è² ããŸãã ç§ãã¡ã¯ã圌ãããŸããŸãªè©Šéšã§ã©ãã ãå©çãåŸããã調ã¹ãŸãã
-45-98 -108-99-100-100 -76 -104-100-100 105 -99-96
3æã2åŒãã6åã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã倱ãããç¶æ³ãèŠãŠã¿ãŸãããã
ããã«ãã³ããŒ3ãæãè² ããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ãšæµã®åæåº§æšã¯-9ãš9ã§ãããã«ã¹-ãããã80ãæµã®æŠç¥-Sturmovikã
æåã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ããã€ãã«æã¡èŸŒã¿ãæ»ææ©ãäžæ¯è·é¢ã«è¿ã¥ããŸã§åŸ
æ©ããæŠéæ©ãäžæ¯ã亀æããŸãïŒãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯å
ã«æã€ãããæµã®5銬å
ã§ãããªã2ã§ã¯ãªã5ã§ãããããããŸããïŒããã¥ãŒã©ã«ãããã¯ãŒã¯ãèµ·åããŸãæµãåŸ
ã£ãŠããéã«ãã€ããæ¯ãã®ã¯ãã§ã«éåžžã®æ¹æ³ã§ãããã®çµæãæ»ææ©ã¯ã¯ãã¹ããŠããè¿è·é¢ã«å°éãããã¥ãŒã©ã«ãããã¯ãŒã¯ãæã¡ãŸãã ãã®ã·ã§ããã¯èŽåœçã§ããã åèšãSturmovikã¯5銬åããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯0ã§ããããã«ãSturmovikã¯äžå¿ãééããããã«3ãã€ã³ããåãåããŸããã
-104ãã€ã³ãã¯ã7åç®ã®æŠéã§ãããã¯ãŒã¯ãããã¯ã¢ãŠãããããšã瀺ããŸãã ãã¥ãŒã©ã«ãããã¯ãŒã¯ãšæµã®åº§æšã¯ãããã-6ãš9ã§ãäž¡æ¹ãšã400銬åã§ãæµã®æŠç¥ã¯Strelokã§ããã
ç¥çµå路網ããã€ããæ¯ããªãããå°æã¯æ»æãç¶ããŸãã ãã®çµæããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ã·ã§ããã®æé©ãªã¿ã€ãã³ã°ãéããæµã¯ã€ãã·ã¢ãããååããŸãã ããã«é·æéã®éææŠãç¶ããã·ã¥ãŒãã£ã³ã°ã²ãŒã ã¯ãã¥ãŒã©ã«ãããã¯ãŒã¯ããã1ã·ã§ããå€ãåŠçããããšãã§ããŸãã ã¯ãã¹ããŠããã®é·è·é¢ã·ã§ããã¯ããã4銬åãæã¡ãŸãã
-105ãã€ã³ãã¯ã9åç®ã®æŠéã§ãããã¯ãŒã¯ãããã¯ã¢ãŠããããã®ã§ãã ãã¥ãŒã©ã«ãããã¯ãŒã¯140 hpãæµ40ãæµæŠç¥-Sturmovikã®å Žåããã¥ãŒã©ã«ãããã¯ãŒã¯ãšæµã®åº§æšã¯ãããã-1ãš9ã§ããã ãã¥ãŒã©ã«ãããã¯ãŒã¯ã¯ãã€ãã§åŸ
æ©ããæ¯ã®äœ¿çšã«æé©ãªç¬éãéããŸãã æ»ææ©ã¯ãæ¯ãçºå°ããæåã®ãã®ã§ãã ãã®çµæã圌ã¯ãã¥ãŒã©ã«ãããã¯ãŒã¯ããã5ã€å€ãã®æå®³ãäžããŸããã
äžéçµè«ã
æåã«ããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯æ»æããŸããããé²åŸ¡åŽã«äœçœ®ããæ¬¡ã«ã次åã®æ¹æ³ãæåŸ
ããŸã;åŸ
æ©ãã¿ã³ãæŒã代ããã«ãããããã¿ã³ãæŒããŸãã
ãã¿ã¯ãŒãæŠç¥ã§ã¯ããã¥ãŒã©ã«ãããã¯ãŒã¯ãæ¢ã«ã·ã§ããè·é¢ã«ããå Žåã«ã®ã¿æŠããŸãã æŠç¥ãã°ã©ãã£ãšãŒã¿ãŒããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯åŒãè£ãããŸãã-45ãš-76ã¯ãŸãã«ãã®äžã«è©°ã蟌ãŸããŠããŸãã æŠç¥ãæ»ææ©ãããã³ãå°æãã¯ãæåã«æã¡ãæ¯ãŸãã¯æã¡æ°ã®ããããã§æå©ã«ãªããšããäºå®ã«ããããã¥ãŒã©ã«ãããã¯ãŒã¯ãæã¡è² ãããŸãã
ãŸãããã®ãããªAIã§ããé·ãéç ç©¶ãããŠããŸããã ãããŠæ®ã...å®éãããã¯åå¥ã®æææ±ºå®ãè¡ãAIã§ãããæ©èœããã®ã§ã¯ãªãæ©èœããŸãã
ããŒãµãŒã«ãŒãã¥ãŒã©ã«ãããã¯ãŒã¯
ç§ããã®AIãè»ããåž°ã£ãŠããã°ããã®å人ã«è©±ãããšãã圌ã¯ç§ã®åè³ªææšã«éåžžã«é©ããŠããŸããã 圌ã¯ãéåŽãæã£ãããšã¯æªã決æã ã£ããšèšããŸããã HPãç¯çŽãããããAIã«æµãžã®ãã¡ãŒãžãèæ
®ãããæ¹ãè¯ãã§ãããã
圌ãè¡ã«é£¢ããããŠãã ããïŒ
ã€ãŸããä¿®æ£ããŸãã
q=-100-(input(3)-units(1).hp)+(input(4)-units(2).hp);
ããã«ïŒ
q=-100-(input(3)-units(1).hp)+2*(input(4)-units(2).hp);
次ã«ããã®ã¡ããªãã¯ã¯ãæå®³ã®åäœãååŸããå Žåã«1眰éãç§ãã1åäœãåŠçããå Žåã«2ãå ±å¥šããŸãã
æåãããã¬ãŒãã³ã°ãéå§ããŸãã ããŒãµãŒã«ãŒãäœæããåã«ãããã»ããµããã匷åãªãã®ã«å€æŽãããã¥ãŒã©ã«ãããã¯ãŒã¯ã®ããé«éãªå®è£
ãäœæããããšãã§ããããããã¹ãŠã®ãã¬ãŒãã³ã°ã¯20åã§å®äºããŸããã20å-å質ã¡ããªãã¯ã¯-65 ... AIã¯æ¬åœã«ã©ãã»ã©ãªã¢ã«ã§ããïŒ
éããŒãµãŒã«ãŒã¡ããªãã¯ãè¿ã
q=-100-(input(3)-units(1).hp)+(input(4)-units(2).hp);
ãããŠæãããã ãæ
éãªãææšã¯-117ã§ã;å€ãã®æŠãã§ãAIã¯å€±ããããããå°ãªãHPãåããŸããã AIã¯è¡ã«é£¢ããŠããããšã倿-ç§ã¯èªåã®éЬåãå®å
šã«å¿ããŠããŸããã
ã¡ããªãã¯ã倿ŽããŸã
q=-100-(input(3)-units(1).hp)+1.7*(input(4)-units(2).hp);
ãããŠããã¬ãŒãã³ã°ãç¶ããŸãã
çŽ5ååŸãçµæã衚瀺ãããŸãïŒq = -75.75ã
åã
ã®ãã¹ãçµæïŒ
0 -91.2000 -76.3000 -49.300 -49.500 -29.5000 -87.200 -73.600 -64.00 -57.00 -82.0000
å床ãã¡ããªãã¯ããæ
éãã«å€æŽããçµæã確èªããŸãã
Q = -114.98ã 11ã®æŠéã®ãã¡ãAIã¯è² ããŸãã
AIã1ã€ã®æåãã€ãŸã11ã®æŠéã®1ã€ã-100æªæºã®ã¹ã³ã¢ã§çµäºããããã«ãæ»ææ§ä¿æ°ã®ãã®ãããªå€ãéžæããŸãã äžæ¹ã§ãAIãæ»æãšåãããã«åå©ãšæåãçè§£ã§ããããã«ãæ»æããAIãåçãç¶ããããã«ãããè¡ããããšæããŸãã çç©åŠã®èгç¹ãããç§ã¯çŸåšãAIã®é²åã®è»è·¡ãèšå®ããŠããŸãã
ãããã£ãŠã1.18ã®ã¢ã°ã¬ãã·ããã¹ãã¡ã¯ã¿ãŒã§ã¯ãAIã¯ããããæã
倱ãããããšãæ¢ã«çè§£ããŠããŸãããããã§ãã©ã®ãããã®é »åºŠããçè§£ããŠããŸããã
ãã¬ãŒãã³ã°ãç¶ç¶ããŸãã
30ååŸãq = -96ã«éããŸãã
ãæ
éãªãã¡ããªãã¯ãè¿ããq = -106.23ãååŸããŸã
AIãã©ã®ããã«ã§ç²åŸãããã€ã³ãã調ã¹ãŸãã
-44-94 -119 -99 -110 -75 -104 -96 -95 -93 -96
è² ãïŒ3ããã«ã åã£ãïŒ8æŠã åŒãåãïŒ0ãããã¯ã3æã2åŒãã6åãããåªããŠãããæ»ææ§ã®ãªããã¹ãã§å€æããŸããã
AIãæåŸãã3åç®ã®æŠãã§ã©ã®ããã«åã£ãããèŠãŠã¿ãŸããããæ»æããã«è² ããŸããã
ãã®æŠãã®æµã®ã¿ã€ãã¯ã¹ã¿ãŒã¢ããã¯ã§ãã æåã«ãæŠéæ©ã¯ãã¯ãã¹ããŠãããã³ã°ã·ã§ãããçºå°ããå¯èœæ§ãç¡èŠããŠãè¿ã¥ããŸãã ããããã圌ãã¯ã§ããã ãæ©ãäºãã«æ¯ããŸãïŒAIã¯ä»¥åã«ãããè¡ãããã®çµ±äžxnã®ããã«åã¡ãŸãïŒã ãã®åŸãAIã¯ã¯ãã¹ããŠãçºå°ãïŒé è·é¢ã§ããã«ãã£ãç§ããŸãïŒãæ»ææ©ã¯æ¥è¿æŠã«çªå
¥ããŸãã Sturmovikãçæã®è·é¢ïŒ5ã¹ãããïŒã«å°éãããŸã§ã«ãAIã¯ãã§ã«å
é»ãããåã³æãããŠããŸããã æ»ææ©ã¯çãæ®ããŸããã§ããã
AIãã©ã®ããã«å€±ãããèŠãŠã¿ãŸãããã æŠéçªå·3ãéå§ããŸããæµã¯åã³æ»ææ©ã§ãã
åååæ§ãæµã¯ææ¯ã·ã§ããã®è·é¢ã§åæããŸãããä»åã¯æ»ææ©ãæåã«æã¡ã1銬åïŒãšã©ãŒçªå·1ïŒã®å©ç¹ãåŸãããšãã§ããŸããã ãã®åŸãæŠéæ©ã¯åæãç¶ããéææŠã¯ã¯ãã¹ããŠã§å§ãŸããŸãã AIã¯æ¥ãã§ãæµãçã£ãå°æãŸãŒã³ã«æ¥ãåã«æåã®ç ²åŒŸãçºç ²ããŸããïŒãšã©ãŒçªå·2ïŒã 圌ã¯å°ãåã«ãã¡ãŒãžãäžããŸããããSturmovikã¯äžæ©åé²ãã4ã§ã¯ãªã10ã®ãã¡ãŒãžãäžããŸããããããªãéææŠã®éã«ãSturmovikã¯AIãéŠå°Ÿããæ®ºããŸããã
çµè«
ãã®å®éšãããæ¬¡ã®çµè«ãå°ãåºããŸãã
1ïŒèªåæçžŠã®äœæã«é©ããAIã®äœææ¹æ³ã¯ãæŠéããããã®äœæã«ãé©ããŠããŸãã
2ïŒå Žåã«ãã£ãŠã¯ãAIãç¹å®ã®ç®æšãéæããããã«ãããéæå¯èœãªç®æšãšåŒã°ããç®æšãéæãããç®æšã«åŸã
ã«çœ®ãæããå¿
èŠããããŸãã
3ïŒã¹ããã颿°ã®æé©åã¯ãã¹ã ãŒãºãããã¯ããã«å°é£ã§ãã
4ïŒ11ãã¥ãŒãã³ã®3å±€-ããã¯ã7ã€ã®ã»ã³ãµãŒãš6ã€ã®åºåãæã€ãããããå¶åŸ¡ããã®ã«ååã§ãã éåžžã33åã®ãã¥ãŒãã³ã§ã¯ãåæ§ã®æ¬¡å
ã®ã¿ã¹ã¯ã«ã¯äžååã§ãã
æ©èœã³ãŒã
1ã€ã®æŠéãã·ãã¥ã¬ãŒãããæ©èœïŒ function q = evaluateNN(input_,nn) units=[]; %input_: AI.x, enemy.x, AI.hp, enemy.hp, enemy.strategy units(1).x=input_(1); units(1).hp=input_(3); units(1).cooldown=0; units(1).poisoned=0; units(2).x=input_(2); units(2).hp=input_(4); units(2).cooldown=0; units(2).poisoned=0; me=1; enemy=2; center.me=0; center.enemy=0; for i=1:85 if(units(1).cooldown==0 || units(2).cooldown==0) cooldown=[units(1).cooldown;units(2).cooldown]; [ampl,turn]=min(cooldown); %choose if(turn==me) %me answArr=fastSim(nn,[units(me).x;units(me).hp;units(me).poisoned; units(enemy).x;units(enemy).hp; units(enemy).poisoned;units(enemy).cooldown]); [ampl, action] = max(answArr); else if(turn==enemy) %enemy action=3; if(input_(5)==0)%Human player units(1),units(2) 'Player2: 1: x++, 2: x--, 3: wait, 4: knife, 5: crossbow, 6: poison' action=input('Action number:') end; if(input_(5)==1)%gladiator if(abs(units(me).x-units(enemy).x)<=1) action=4; elseif(abs(units(me).x-units(enemy).x)<=5 && units(enemy).hp<=10) action=5; elseif(units(enemy).x>units(me).x) action=2; else action=1; end; end; if(input_(5)==2)%stormtrooper if(abs(units(me).x-units(enemy).x)<=1) action=4; elseif(abs(units(me).x-units(enemy).x)<=5) action=5; elseif(abs(units(me).x-units(enemy).x)<=8 && units(me).poisoned==0) action=6; elseif(units(enemy).x>units(me).x) action=2; else action=1; end; end; if(input_(5)==3)%archer if(abs(units(me).x-units(enemy).x)<=1) action=4; elseif(abs(units(me).x-units(enemy).x)<=8 && units(me).poisoned==0) action=6; elseif(abs(units(me).x-units(enemy).x)<=12) action=5; elseif(units(enemy).x>units(me).x) action=2; else action=1; end; end; if(input_(5)==4)%tower if(abs(units(me).x-units(enemy).x)<=1) action=4; elseif(abs(units(me).x-units(enemy).x)<=8 && units(me).poisoned==0) action=6; elseif(abs(units(me).x-units(enemy).x)<=12) action=5; else action=3; end; end; end; end; %actions %move if(action==1) if(turn==1) another=2; else another=1; end; if(units(turn).x+1~=units(another).x) units(turn).x=units(turn).x+1; end; units(turn).cooldown=units(turn).cooldown+2; end; if(action==2) if(turn==1) another=2; else another=1; end; if(units(turn).x-1~=units(another).x) units(turn).x=units(turn).x-1; end; units(turn).cooldown=units(turn).cooldown+2; end; if(action==3) %pause units(turn).cooldown=units(turn).cooldown+1; end; %knife if(action==4) if(turn==1) another=2; else another=1; end; if(abs(units(turn).x-units(another).x)<=1) units(another).hp=units(another).hp-20; end; units(turn).cooldown=units(turn).cooldown+4; end; %crossbow if(action==5) if(turn==1) another=2; else another=1; end; if(abs(units(turn).x-units(another).x)<=5) %meely units(another).hp=units(another).hp-10; elseif(abs(units(turn).x-units(another).x)<=12) %long-range units(another).hp=units(another).hp-4; end; units(turn).cooldown=units(turn).cooldown+10; end; %poison if(action==6) if(turn==1) another=2; else another=1; end; if(abs(units(turn).x-units(another).x)<=8) units(another).hp=units(another).hp-2; units(another).poisoned=1; end; units(turn).cooldown=units(turn).cooldown+10; end; else units(1).cooldown=units(1).cooldown-1; units(2).cooldown=units(2).cooldown-1; end; if(units(me).poisoned>0) units(me).hp=units(me).hp-1; end; if(units(enemy).poisoned>0) units(enemy).hp=units(enemy).hp-1; end; if(units(me).hp<=0) break; end; if(units(me).x==0) center.me=center.me+1; end; if(units(enemy).x==0) center.enemy=center.enemy+1; end; if(abs(units(me).x)>=10) units(me).hp=0; break; end; if(units(enemy).hp<=0) break; end; end; q=-100-(input_(3)-units(1).hp)+1.0*(input_(4)-units(2).hp); if(q>0) q=0; end; end
äžé£ã®æŠéãè¡ãæ©èœïŒ function q = testSeria(k) global nn sum_=0; countOfPoints=0; nnlocal=ktonn(nn,k); arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]; %% input=[[-3.,9.,80,80,1];[-2.,8.,10,10,2];[-4.,3.,60,60,4];[-4.,8.,20,20,3];[-2.,9.,15,15,2];[5.,-8.,100,100,4];[-5.,0.,50,50,1];[-5.,4.,80,80,2];[4.,7.,70,100,3];[7.,-6.,10,10,3];[-1.,9.,140,140,3]]; %input=[-3.,9.,80,80,0];%Player 2 is a human sz=size(input); for (i=1:sz(1)) val=evaluateNN(input(i,:),nnlocal); sum_=sum_+val; arr(i)=val; end; countOfPoints=sz(1); q=(min(arr)+sum_/countOfPoints)/2 - sum(abs(k))*0.001; end
ãã¥ãŒã©ã«ãããã¯ãŒã¯ãå®è¡ãã颿°ïŒ function arr = fastSim(nn,input) %fast simulation for fast network sz=size(nn.LW); sum=cell([1,sz(1)]); LW=nn.LW; b=nn.b; sum{1}=nn.IW{1}*input; arr=sum{1}; for i=1:sz(1)-1 sum{i+1}=tansig(LW{i+1,i}*(sum{i}+b{i})); end; arr=sum{sz(1)}; end
ãã¥ãŒã©ã«ãããã¯ãŒã¯ãæé©åããã«ã¯ãäžé£ã®æ°å€ããã¥ãŒã©ã«ãããã¯ãŒã¯ä¿æ°ã«å€æãã颿°ãå¿
èŠã§ãã function nn = ktonn(nn,k) %neuro net to array of koefficients ksize=size(k); if(ksize(2)==1) k=k'; end; bsz=size(nn.b); counter=1; for i=1:bsz(1)-1 sz=size(nn.b{i}); nn.b{i}=k(counter:counter+sz(1)-1)'; counter=counter+sz(1); end; lsz=size(nn.LW); for i1=1:(lsz(1)-1) x=i1+1; y=i1; szW=size(nn.LW{x,y}); nn.LW{x,y}=reshape(k(counter:counter+szW(1)*szW(2)-1),szW(1),szW(2)); counter=counter+szW(1)*szW(2); end; sz=size(nn.IW{1}); arr=k(counter:counter+sz(1)*sz(2)-1); arr=reshape(arr,sz(1),sz(2)); nn.IW{1}=arr; end
Main.mïŒ clc; global nn X=[[(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5)], [(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5)]]; Y=[[(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5)], [(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5);(rand()-0.5)]]; nnBase=newff(X,Y,[11,11,11],{'tansig' 'tansig' 'tansig'},'trainrp'); nn.b=nnBase.b; nn.IW=nnBase.IW; nn.LW=nnBase.LW; f=load('./conf.mat'); k=f.rtailor; q=testSeria(k)
ãããã¯ãŒã¯æ§æãã¡ã€ã« ã æ®å¿µãªããšã«ãç§ã¯ãã®ãã¡ã€ã«ãåã¡åã£ãAIã§å€±ããŸããããããã¯ããã»ã©æªãã¯ãããŸããã
åžæããå Žåã¯ãAIãšå¯ŸæŠã§ããŸãããã®å ŽåãTest Seriaã®è¡ã®ã³ã¡ã³ããè§£é€ããå¿
èŠããããŸãã
input = [-3.ã9.ã80.80.0];ïŒ
Player 2ã¯äººéã§ã