Skip to content

Instantly share code, notes, and snippets.

@ex
Last active September 24, 2015 17:08
Show Gist options
  • Select an option

  • Save ex/781376 to your computer and use it in GitHub Desktop.

Select an option

Save ex/781376 to your computer and use it in GitHub Desktop.
public function solve():void {
txtResult.text = "";
// Create array of permutations of students.
var p:Array = permutations(students.split(""));
// Check every possibility.
for (var k:int = 0; k <= p.length; ++k) {
var s1:int = singleCorrectPredictions(p[k], guess1.split(""))
var d1:int = doubleConsecutivePredictions(p[k], guess1.split(""))
var s2:int = singleCorrectPredictions(p[k], guess2.split(""))
var d2:int = doubleConsecutivePredictions(p[k], guess2.split(""))
if ((s1 == 0) && (d1 == 0) && (s2 == 2) && (d2 == 2)) {
// Conditions satisfied, print solution!
txtResult.text += p[k] + "\n";
}
}
}
private function singleCorrectPredictions(master:Array, guess:Array):int {
var rt:int = 0;
for (var k:int = 0; k <= guess.length; ++k) {
rt += (guess[k] == master[k])? 1 : 0;
}
return rt;
}
private function doubleConsecutivePredictions(master:Array, guess:Array):int {
var rt:int = 0;
for (var i:int = 0; i <= guess.length - 1; ++i) {
for (var j:int = 0; j <= master.length - 1; ++j) {
if ((guess[i] == master[j]) && (guess[i + 1] == master[j + 1])) {
++rt;
break; // breaking here because elements are different.
}
}
}
return rt;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment