Slide 22
Slide 22 text
Distributing AI Choices
• Queue method
• Keep actions in a list
• Ensures that all
actions are
performed at least
once for the set
• Good for puzzle game
block distribution
ATTACK = 0;
DEFEND = 1;
SPECIAL = 2;
List listChoices = new List();
if (listChoices.Count <= 0) {
addChoices(listChoices);
}
iChoice = listChoices[0]
listChoices.RemoveAt(0);
if (iChoice == ATTACK) {
doAttack();
} else if (iChoice == DEFEND) {
doDefend();
} else if (iChoice == SPECIAL) {
doSpecial();
}
void addChoices(List listChoices) {
int i;
iAttackDist = 5
iDefendDist = 3
iSpecialDist = 2
for (i = 0; < iAttackDist; i++) {
listChoices.InsertAt(ATTACK,
Random.Range(0, listChoices.Count));
}
for (i = 0; < iDefendDist; i++) {
listChoices.InsertAt(DEFEND,
Random.Range(0, listChoices.Count));
}
for (i = 0; < iSpecialDist; i++) {
listChoices.InsertAt(SPECIAL,
Random.Range(0, listChoices.Count));
}
}