AI 규칙 (ver 0.1)
Last Edited: 2018-02-06 0342
모델 조건
- https://git.kucatdog.net/true-history-committee/civiii-model-proto/commit/2e1e46ca40184ae424c8d39937daf1f40b2d7861
- 퀘스트 없음, 궁극기 없음
- 오직 생산, 배치, 전투, 정복승리만 있음
Basic Algorithm:
- Gather all possible tasks by Task do-ers
- Score all tasks by table
- Sort all tasks by score
- Do highest scoring task a) If multiple tasks have same score, choose randomly
- Back to 1) and repeat until no more positive-scoring tasks remain
- Skip Turn for any units with remaining AP but no positive-scoring task
- End Turn
Possible Task Types
- Attack Enemy Unit/City
- Move Fighting Unit to Spot
- Move Pioneer to Spot
- Build Fighting Unit
- Build Pioneer
- Deploy Unit to a City
- Create City
Priority Score Table
Task Type | Context | Score |
---|---|---|
Attack Enemy Unit/City | Unit lives after attack | 100 |
Unit dies after attack | -50 | |
Enemy Unit lives after attack | 25 | |
Enemy Unit dies after attack | 50 | |
Enemy City lives after attack | 50 | |
Enemy City dies after attack | 75 | |
Move Fighting Unit to Spot | Unit dies if attacked after moving to spot | -150 |
Unit can attack enemy after moving to spot | 50 | |
Unit can be attacked after moving to spot | -50 | |
Unit has low HP(<1/3) and is further from enemy after moving to spot | 50 | |
Unit has non-low HP and is closer to enemy after moving to spot | 50 | |
Unit is closer to City after moving to spot | 25 | |
Move Pioneer to Spot | Unit is further from enemy after moving to spot | 20 |
Unit is closer to enemy after moving to spot | 10 | |
Unit is further from city after moving to spot | 10 | |
Unit is closer to enemy after moving to spot | 20 | |
Build Fighting Unit | 1.5 × (Enemy Fighting Unit Number + Enemy City Number) < Fighting Unit Number | -50 |
Fighting Unit Number < 1.5 × (Enemy Fighting Unit Number + Enemy City Number) | 50 | |
Labor Capacity is full | -100 | |
Build Pioneer | City Number < 1.5 × Enemy City Number | 50 |
1.5 × Enemy City Number < City Number | -50 | |
Labor Capacity is full | -100 | |
Deploy Unit to a City | Unit is Fighting Unit | 128 - Distance to enemy from City |
Unit is Pioneer | Distance to enemy from City + 20 | |
Create City | City Number + Pioneer Number < 1.5 × Enemy City Number | 50 |
1.5 × Enemy City Number < City Number + Pioneer Number | 30 |
Task do-ers
- Fighting Unit - Attack, Move
- Pioneer - Move, Create City
- Build Que - Build
- Deploy Que - Deploy