Start a new Kumite
AllAgda (Beta)BF (Beta)CCFML (Beta)ClojureCOBOL (Beta)CoffeeScriptCommonLisp (Beta)CoqC++CrystalC#D (Beta)DartElixirElm (Beta)Erlang (Beta)Factor (Beta)Forth (Beta)Fortran (Beta)F#GoGroovyHaskellHaxe (Beta)Idris (Beta)JavaJavaScriptJulia (Beta)Kotlinλ Calculus (Beta)LeanLuaNASMNim (Beta)Objective-C (Beta)OCaml (Beta)Pascal (Beta)Perl (Beta)PHPPowerShell (Beta)Prolog (Beta)PureScript (Beta)PythonR (Beta)RacketRaku (Beta)Reason (Beta)RISC-V (Beta)RubyRustScalaShellSolidity (Beta)SQLSwiftTypeScriptVB (Beta)
Show only mine

Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.

You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.

A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.

Ad
Ad
Code
Diff
  • import java.util.List;
    import java.util.ArrayList;
    
    class Mastermind{
      static String evaluate(String secret, String guess) {
        String[] secretColors = parseColors(secret);
        String[] guessColors = parseColors(guess);
        
        int correct = countCorrect(secretColors, guessColors);  
        int misplaced = countMisplaced(secretColors, guessColors);
        
        return "[" + correct + "," + misplaced + "]";
      }
      
      private static String[] parseColors(String colors) {
            return colors.replace("[", "").replace("]", "").split(",");
      }
      
      private static int countCorrect(String[] secretColors, String[] guessColors) {
        int correct = 0;
            for(int i = 0; i < secretColors.length; i++) {
              if (secretColors[i].equals(guessColors[i])) {
                correct++;
            }    
        }
            return correct;
      }
      
      private static int countMisplaced(String[] secretColors, String[] guessColors) {
        int misplaced = 0;
        List<String> secretsLeftovers = new ArrayList<>();
        List<String> guessLeftovers = new ArrayList<>();
        
            for(int i = 0; i < secretColors.length; i++) {
              if (secretColors[i].equals(guessColors[i])) {
                  continue;
            } else {
                secretsLeftovers.add(secretColors[i]);
                guessLeftovers.add(guessColors[i]);
              }    
          }
          for (String color : secretsLeftovers) {
            if (guessLeftovers.contains(color)) {
              misplaced++;
            }
          }
            return misplaced;
        }
      }
    
    • import java.util.List;
    • import java.util.ArrayList;
    • class Mastermind{
    • static String evaluate(String secret, String guess) {
    • secret = secret.replace("[", "").replace("]", "");
    • guess = guess.replace("[", "").replace("]", "");
    • List<String> secretColors = List.of(secret.split(",")); //["red", "green"]
    • List<String> guessColors = List.of(guess.split(","));
    • String[] secretColors = parseColors(secret);
    • String[] guessColors = parseColors(guess);
    • int correct = countCorrect(secretColors, guessColors);
    • int misplaced = countMisplaced(secretColors, guessColors);
    • return "[" + correct + "," + misplaced + "]";
    • }
    • private static String[] parseColors(String colors) {
    • return colors.replace("[", "").replace("]", "").split(",");
    • }
    • private static int countCorrect(String[] secretColors, String[] guessColors) {
    • int correct = 0;
    • for(int i = 0; i < secretColors.size(); i++) {
    • if (secretColors.get(i).equals(guessColors.get(i))) {
    • correct++;
    • }
    • for(int i = 0; i < secretColors.length; i++) {
    • if (secretColors[i].equals(guessColors[i])) {
    • correct++;
    • }
    • }
    • return correct;
    • }
    • private static int countMisplaced(String[] secretColors, String[] guessColors) {
    • int misplaced = 0;
    • List<String> secretsLeftovers = new ArrayList<>();
    • List<String> guessLeftovers = new ArrayList<>();
    • return "[" + correct + ",0]";
    • for(int i = 0; i < secretColors.length; i++) {
    • if (secretColors[i].equals(guessColors[i])) {
    • continue;
    • } else {
    • secretsLeftovers.add(secretColors[i]);
    • guessLeftovers.add(guessColors[i]);
    • }
    • }
    • for (String color : secretsLeftovers) {
    • if (guessLeftovers.contains(color)) {
    • misplaced++;
    • }
    • }
    • return misplaced;
    • }
    • }
    • }
Code
Diff
  • import static java.util.stream.IntStream.rangeClosed;
    import java.util.List;
    
    interface FizzBuzz {
      static List<String> evaluate(int input) {
        return rangeClosed(1, input).mapToObj(FizzBuzz::determineFizzbuzz).toList();
      }
      
      private static String determineFizzbuzz(int n) {
        switch (n%15){
            case 0:
              return "FizzBuzz";
            case 5,10:
              return "Buzz";
            case 3,6,9,12:
              return "Fizz";
            default:
              return Integer.toString(n);
        }
      }
    }
    • import static java.util.stream.IntStream.rangeClosed;
    • import java.util.List;
    • interface FizzBuzz {
    • static List<String> evaluate(int input) {
    • return rangeClosed(1, input).mapToObj(FizzBuzz::determineFizzbuzz).toList();
    • }
    • private static String determineFizzbuzz(int n) {
    • if (n % 15 == 0) return "FizzBuzz";
    • if (n % 3 == 0) return "Fizz";
    • if (n % 5 == 0) return "Buzz";
    • return Integer.toString(n);
    • switch (n%15){
    • case 0:
    • return "FizzBuzz";
    • case 5,10:
    • return "Buzz";
    • case 3,6,9,12:
    • return "Fizz";
    • default:
    • return Integer.toString(n);
    • }
    • }
    • }
Code
Diff
  • import java.util.HashMap;
    import java.util.Map;
    
    class ReservationSystem {
      private static final int MAX_CAPACITY = 12;
      private final Map<String, Integer> availabilityByDate = new HashMap<>();
      private final Map<String, Integer> reservations = new HashMap<>();
    
      public boolean request(String date, String name, String phone, int size) {
        int available = availabilityByDate.getOrDefault(date, MAX_CAPACITY);
        if (size < 1 || available < size) {
          return false;
        }
        reservations.put(date+name+phone, size);
        availabilityByDate.put(date, available - size);
        return true;
      }
    
      public void cancel(String date, String name, String phone) {
        var size = reservations.remove(date+ name+phone);
        if (size != null) {
          availabilityByDate.computeIfPresent(date, (d, c) -> c + size);
        }
      }
    }
    • import java.util.HashMap;
    • import java.util.Map;
    • class ReservationSystem {
    • private static final int MAX_CAPACITY = 12;
    • private final Map<String, Integer> availabilityByDate = new HashMap<>();
    • private final Map<Reservation, Integer> reservations = new HashMap<>();
    • private final Map<String, Integer> reservations = new HashMap<>();
    • public boolean request(String date, String name, String phone, int size) {
    • int available = availabilityByDate.getOrDefault(date, MAX_CAPACITY);
    • if (size < 1 || available < size) {
    • return false;
    • }
    • reservations.put(new Reservation(date, name, phone), size);
    • reservations.put(date+name+phone, size);
    • availabilityByDate.put(date, available - size);
    • return true;
    • }
    • public void cancel(String date, String name, String phone) {
    • var size = reservations.remove(new Reservation(date, name, phone));
    • var size = reservations.remove(date+ name+phone);
    • if (size != null) {
    • availabilityByDate.computeIfPresent(date, (d, c) -> c + size);
    • }
    • }
    • private record Reservation(String date, String name, String phone) {}
    • }