Skip to content

Instantly share code, notes, and snippets.

@paulodutra
Created April 30, 2023 15:43
Show Gist options
  • Save paulodutra/e824843deed950e52b80a22bec4c8a2e to your computer and use it in GitHub Desktop.
Save paulodutra/e824843deed950e52b80a22bec4c8a2e to your computer and use it in GitHub Desktop.
challenge
function firstAttack() {
if [monsterA.speed == monsterB.speed] then
if[monsterA.attack > monsterB.attack] then
monsterAttack = monsterA
monsterDefense = monsterB
else
monsterAttack = monsterB
monsterDefense = monsterA
fi
else if [monsterA.speed > monsterB.speed] then
monsterAttack = monsterA
monsterDefense = monsterB
else
monsterAttack = monsterB
monsterDefense = monsterA
fi
}
function nextAttack(monsterAttack, monsterDefense) {
if [monsterAttack == monsterA] then
monsterAttack = monsterB
monsterDefense = monsterA
else
monsterAttack = monsterA
monsterDefense = monsterB
}
}
//calculatingDamage
function calculateDamage(monsterAttack, monsterDefense) {
if [monsterAttack.attack <= monsterDefense.defense] then
damage = 1
else
damage = (attack - defense)// this number isn't negative
fi
}
//subtractDamageFromHP
function subtractDamageFromHp(monsterAttack, monsterDefense, damage) {
monsterDefense.hp - damage
}
function hasWinnerRound(monsterDefense) {
if [monsterDefense.hp <= 0] then
true
else
false
fi
}
function main() {
winner = null
roundNumber = 0
currentAttack = null
currentDefense = null
battle = null;
while [winner == null] do
if [roundNumber == 0] then
battle = firstAttack()
currentAttack = battle.monsterAttack
currentDefense = battle.monsterDefense
else
battle = nextAttack()
currentAttack = battle.monsterAttack
currentDefense = battle.monsterDefense
fi
damage = calculateDamage(currentAttack,currentDefense)
subtractDamageFromHp(currentAttack,currentDefense, damageRound)
if [hasWinnerRound(currentDefense)] then
winner = currentAttack
break
fi
roundNumber++
done
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment