Skip to content

Instantly share code, notes, and snippets.

@jeantil
Created February 24, 2011 18:01
Show Gist options
  • Save jeantil/842569 to your computer and use it in GitHub Desktop.
Save jeantil/842569 to your computer and use it in GitHub Desktop.
softeam dojo 6
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Mastermind {
public int[] solve(String[] guess, String[] secret) {
int bonBienplace = 0;
int bonMalplace = 0;
Set<String> setSecret = new HashSet<String>(Arrays.asList(secret));
for (int i = 0; i < secret.length; i++) {
String currentGuess = guess[i];
String currentSecret = secret[i];
boolean isContains = setSecret.contains(currentGuess);
Set<String> remind = new HashSet<String>();
if (isContains && !remind.contains(currentGuess)) {
bonMalplace++;
remind.add(currentGuess);
}
if (currentGuess.equals(currentSecret)) {
bonBienplace++;
}
}
return new int[] { bonBienplace, bonMalplace - bonBienplace };
}
}
import junit.framework.TestCase;
public class TestMastermind extends TestCase {
public void testtoutfaux() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "B", "C", "D", "E" };
String[] secret = new String[] { "A", "A", "A", "A" };
assertEquals(0, m.solve(guess, secret)[0]);
assertEquals(0, m.solve(guess, secret)[1]);
}
public void testunbonbienplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "A", "C", "D", "E" };
String[] secret = new String[] { "A", "A", "A", "A" };
assertEquals(1, m.solve(guess, secret)[0]);
assertEquals(0, m.solve(guess, secret)[1]);
}
public void testunAutrebonbienplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "B", "A", "D", "E" };
String[] secret = new String[] { "A", "A", "A", "A" };
assertEquals(1, m.solve(guess, secret)[0]);
assertEquals(0, m.solve(guess, secret)[1]);
}
public void testdeuxbonbienplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "A", "A", "D", "E" };
String[] secret = new String[] { "A", "A", "A", "A" };
assertEquals(2, m.solve(guess, secret)[0]);
assertEquals(0, m.solve(guess, secret)[1]);
}
public void testDeuxBbonbienplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "B", "B", "D", "E" };
String[] secret = new String[] { "B", "B", "A", "A" };
assertEquals(2, m.solve(guess, secret)[0]);
assertEquals(0, m.solve(guess, secret)[1]);
}
public void testunMbonmalplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "D", "M", "D", "D" };
String[] secret = new String[] { "A", "A", "M", "A" };
assertEquals(0, m.solve(guess, secret)[0]);
assertEquals(1, m.solve(guess, secret)[1]);
}
public void testunBbonmalplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "D", "B", "D", "D" };
String[] secret = new String[] { "A", "A", "B", "A" };
assertEquals(0, m.solve(guess, secret)[0]);
assertEquals(1, m.solve(guess, secret)[1]);
}
public void testunDbonmalplace() {
Mastermind m = new Mastermind();
String[] guess = new String[] { "B", "D", "D", "B" };
String[] secret = new String[] { "A", "A", "A", "D" };
assertEquals(0, m.solve(guess, secret)[0]);
assertEquals(1, m.solve(guess, secret)[1]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment