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.
def max_number(n): d = 0 # Get number of digits while n // (10 ** d): d += 1 # Get digit of n with length d at index i def digit(n, d, i): return int((n // (10 ** (d - i - 1)))) % 10 # Swap digits of n in place def swap(n, d, i, j): di = digit(n, d, i) dj = digit(n, d, j) n -= di * (10 ** (d - i - 1)) n -= dj * (10 ** (d - j - 1)) n += di * (10 ** (d - j - 1)) n += dj * (10 ** (d - i - 1)) return n x = None # Bubble sort an integer in place while x != n: x = n for i in range(d): di = digit(n, d, i) for j in range(d - 1, i, -1): dj = digit(n, d, j) # Swap condition if you'd prefer smallest int if di < dj: n = swap(n, d, i, j) break if x != n: break return nimport java.util.Arrays;- def max_number(n):
- d = 0
- # Get number of digits
- while n // (10 ** d):
- d += 1
- # Get digit of n with length d at index i
- def digit(n, d, i):
- return int((n // (10 ** (d - i - 1)))) % 10
- # Swap digits of n in place
- def swap(n, d, i, j):
- di = digit(n, d, i)
- dj = digit(n, d, j)
- n -= di * (10 ** (d - i - 1))
- n -= dj * (10 ** (d - j - 1))
- n += di * (10 ** (d - j - 1))
- n += dj * (10 ** (d - i - 1))
- return n
public class MaxNumber {public static long print(long number) {return number}}- x = None
- # Bubble sort an integer in place
- while x != n:
- x = n
- for i in range(d):
- di = digit(n, d, i)
- for j in range(d - 1, i, -1):
- dj = digit(n, d, j)
- # Swap condition if you'd prefer smallest int
- if di < dj:
- n = swap(n, d, i, j)
- break
- if x != n:
- break
- return n
import codewars_test as test from solution import max_number @test.describe("max_number") def _(): @test.it("Basic tests") def test_case(): test.assert_equals(max_number(4), 4) test.assert_equals(max_number(12), 21) test.assert_equals(max_number(101), 110) test.assert_equals(max_number(1234), 4321) test.assert_equals(max_number(400000005000007000), 754000000000000000) test.assert_equals(max_number(307778062924466824), 988777666444322200)import static org.junit.Assert.assertEquals;import org.junit.Test;import java.util.Random;- import codewars_test as test
- from solution import max_number
public class MaxNumberTest {@Testpublic void testFour() {assertEquals(4, MaxNumber.print(4));}@Testpublic void testTwelve() {assertEquals(21, MaxNumber.print(12));}@Testpublic void testOneHundred() {assertEquals(110, MaxNumber.print(101));}@Testpublic void testHuge1() {assertEquals(754000000000000000L, MaxNumber.print(400000005000007000L));}@Testpublic void testHuge2() {assertEquals(988777666444322200L, MaxNumber.print(307778062924466824L));}}- @test.describe("max_number")
- def _():
- @test.it("Basic tests")
- def test_case():
- test.assert_equals(max_number(4), 4)
- test.assert_equals(max_number(12), 21)
- test.assert_equals(max_number(101), 110)
- test.assert_equals(max_number(1234), 4321)
- test.assert_equals(max_number(400000005000007000), 754000000000000000)
- test.assert_equals(max_number(307778062924466824), 988777666444322200)
def multiply_and_add_one(a, b): if a > b: return multiply_and_add_one(b, a) elif b != 0: return a + multiply_and_add_one(a, b - 1) elif b == 0: return 1 else: return 0- def multiply_and_add_one(a, b):
return (a * b) + 1- if a > b:
- return multiply_and_add_one(b, a)
- elif b != 0:
- return a + multiply_and_add_one(a, b - 1)
- elif b == 0:
- return 1
- else:
- return 0
импортозамещение = (бренд) => { брэнды = { МакДоналдс: "Вкусно и точка", Тинькофф: "Т-Банк", ЛеруаМерлен: "ЛеманаПро", YouTube: "Rutube", Доллар: "Рубль" } return бренд in брэнды?брэнды[бренд]:"брэнд не распознан" }импортозамещение = (брэнд) => {- импортозамещение = (бренд) => {
- брэнды = {
- МакДоналдс: "Вкусно и точка",
- Тинькофф: "Т-Банк",
- ЛеруаМерлен: "ЛеманаПро",
- YouTube: "Rutube",
- Доллар: "Рубль"
- }
- return бренд in брэнды?брэнды[бренд]:"брэнд не распознан"
- }
function getEvent(array $digits) : array { $generator = function ($digits) { foreach ($digits as $digit) { if (($digit % 2) === 0) { yield $digit; } } }; return iterator_to_array($generator($digits)); }- function getEvent(array $digits) : array
- {
return [];- $generator = function ($digits) {
- foreach ($digits as $digit) {
- if (($digit % 2) === 0) {
- yield $digit;
- }
- }
- };
- return iterator_to_array($generator($digits));
- }
def Complicated_Greetings(name): h=["H","e","l","l","o"] c="," w=["W","o","r","l","d"] e="!" k="".join(h) if name=="": k+=c k+=" " k+="".join(w) k+=e*2 else: k+=" " k+=name return k- def Complicated_Greetings(name):
- h=["H","e","l","l","o"]
- c=","
- w=["W","o","r","l","d"]
- e="!"
k=""for i in h:k+=i- k="".join(h)
- if name=="":
- k+=c
- k+=" "
for i in w:k+=ik=k+e+e- k+="".join(w)
- k+=e*2
- else:
- k+=" "
- k+=name
- return k
function rgbToHsv(rgb) { let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255; const v = Math.max(r, g, b); const min = Math.min(r, g, b); const delta = v - min; const s = v === 0 ? 0 : delta / v; let h = 0; if (delta !== 0) { if (v === r) { h = (g - b) / delta + (g < b ? 6 : 0); } else if (v === g) { h = (b - r) / delta + 2; } else { h = (r - g) / delta + 4; } h /= 6; h *= 360; } return [Math.round(h), Math.round(s * 100), Math.round(v * 100)]; }- function rgbToHsv(rgb) {
let r = rgb[0], g = rgb[1], b = rgb[2];const v = Math.max(r, g, b) / 255;if (v == 0) return Array.of(0, 0, 0);r /= v;g /= v;b /= v;const s = 1 - Math.min(r, g, b) / 255;if (s == 0) return Array.of(0, 0, v * 100);r = 255 - (255 - r) / s;g = 255 - (255 - g) / s;b = 255 - (255 - b) / s;const peak = Math.max(r, g, b);- let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255;
- const v = Math.max(r, g, b);
- const min = Math.min(r, g, b);
- const delta = v - min;
- const s = v === 0 ? 0 : delta / v;
- let h = 0;
if (r == peak) h = g < b ? 360 - b * 60 / 255 : g * 60 / 255;else if (g == peak) h = r > b ? 120 - r * 60 / 255 : 120 + b * 60 / 255;else h = r > g ? 240 + r * 60 / 255 : 240 - g * 60 / 255;return Array.of(Math.round(h), Math.round(s * 100), Math.round(v * 100));- if (delta !== 0) {
- if (v === r) {
- h = (g - b) / delta + (g < b ? 6 : 0);
- } else if (v === g) {
- h = (b - r) / delta + 2;
- } else {
- h = (r - g) / delta + 4;
- }
- h /= 6;
- h *= 360;
- }
- return [Math.round(h), Math.round(s * 100), Math.round(v * 100)];
- }
fn riddle(word: &str) -> usize { word.trim_matches(|c: char| !c.is_ascii_alphabetic()).len() }def riddle(word):return len(word) - 1- fn riddle(word: &str) -> usize {
- word.trim_matches(|c: char| !c.is_ascii_alphabetic()).len()
- }
#[test] fn test() { assert_eq!(riddle("Two?"), 3); assert_eq!(riddle("Ten?"), 3); assert_eq!(riddle("Three?"), 5); assert_eq!(riddle("Four..."), 4); assert_eq!(riddle("¡Twelve!"), 6); assert_eq!(riddle("Four..."), 4); }test.assert_equals(riddle("Two?"), 3)test.assert_equals(riddle("Ten?"), 3)test.assert_equals(riddle("Three?"), 5)- #[test]
- fn test() {
- assert_eq!(riddle("Two?"), 3);
- assert_eq!(riddle("Ten?"), 3);
- assert_eq!(riddle("Three?"), 5);
- assert_eq!(riddle("Four..."), 4);
- assert_eq!(riddle("¡Twelve!"), 6);
- assert_eq!(riddle("Four..."), 4);
- }
Best not to use eval and best to keep "const" out of func.
wins = { "Rock": "Paper", "Paper": "Scissors", "Scissors": "Rock" } def dumbRockPaperScissors(player1, player2): if player1 == wins[player2]: return "Player 1 wins" elif player2 == wins[player1]: return "Player 2 wins" else: return "Draw"- wins = {
- "Rock": "Paper",
- "Paper": "Scissors",
- "Scissors": "Rock"
- }
- def dumbRockPaperScissors(player1, player2):
Rock = {"Paper"}Paper = {"Scissors"}Scissors = {"Rock"}if player1 in eval(player2):- if player1 == wins[player2]:
- return "Player 1 wins"
elif player2 in eval(player1):- elif player2 == wins[player1]:
- return "Player 2 wins"
- else:
- return "Draw"