Skip to content

Instantly share code, notes, and snippets.

@ThanosFisherman
Last active August 8, 2019 12:58
Show Gist options
  • Save ThanosFisherman/09b901852a324b1cdb4482587d2443d9 to your computer and use it in GitHub Desktop.
Save ThanosFisherman/09b901852a324b1cdb4482587d2443d9 to your computer and use it in GitHub Desktop.
From Coursera course "Kotlin for Java developers" week 2 - Mastermind game solution
package mastermind
data class Evaluation(val rightPosition: Int, val wrongPosition: Int)
fun evaluateGuess(secret: String, guess: String): Evaluation {
var rightPos = 0
var wrongPos = 0
if (secret == guess) {
return Evaluation(4, 0)
}
val secretList = secret.toMutableList()
val guessList = guess.toMutableList()
var iterator = guessList.listIterator()
while (iterator.hasNext()) {
val i = iterator.nextIndex()
if (iterator.next() == secretList[i]) {
rightPos++
secretList.removeAt(i)
iterator.remove()
}
}
iterator = guessList.listIterator()
while (iterator.hasNext()) {
val nextChar = iterator.next()
if (nextChar in secretList) {
wrongPos++
secretList.removeAt(secretList.indexOf(nextChar))
iterator.remove()
}
}
return Evaluation(rightPos, wrongPos)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment