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
Mathematics
Algorithms
Logic
Numbers
Fundamentals

You must create a Dice generator.

Dice have 6 sides. Player throws up a cube and look at the result.

Code must have output like this:
function(random){...}

Cube(); // 1
Cube(); // 5
Cube(); // 3
...

You should use Math.floor to get a integer numbers.

function Cube(){
  let random = Math.floor(Math.random()*6+1);
  if(random===1)return 1
  else if(random===2)return 2
  else if(random===3)return 3
  else if(random===4)return 4
  else if(random===5)return 5
  else if(random===6)return 6
}

Need to do 2d affine transformations, or rotate stuff in 3d for your toy canvas library? look no further, the solution is here! Or at least it will be if you help improve this thing by forking it.

var mat3 = (function(){

    function Mat3(a){
      if(!a) return mat3.identity();
      this.a = [];
      for(var i = 0; i < 9; i++) this.a[i] = a[i] || 0;
    };

    Mat3.prototype.add = function(mat){
      return mat3([
        this.a[0] + mat.a[0], this.a[1] + mat.a[1], this.arr[2] + mat.a[2],
        this.a[3] + mat.a[3], this.a[4] + mat.a[4], this.arr[5] + mat.a[5],
        this.a[6] + mat.a[6], this.a[7] + mat.a[7], this.arr[8] + mat.a[8]
      ]); 
    };
    
    Mat3.prototype.applyToCanvasContext = function(ctx){
      ctx.transform(this.a[0], this.a[3], this.a[1], this.a[4], this.a[2], this.a[5]);
    };
    
    Mat3.prototype.equals = function(mat){
      return this.a[0] === mat.a[0] && this.a[1] === mat.a[1] && this.a[2] === mat.a[2]
          && this.a[3] === mat.a[3] && this.a[4] === mat.a[4] && this.a[5] === mat.a[5]
          && this.a[6] === mat.a[6] && this.a[7] === mat.a[7] && this.a[8] === mat.a[8];
    };
    
    Mat3.prototype.toString = function(){
      return '[' + this.a.join(',') + ']';
    };
    
    // Matrix-Vector multiplication
    Mat3.prototype.transform3d = function(v){
      return [
        v[0] * this.a[0] + v[1] * this.a[1] + v[2] * this.a[2],
        v[0] * this.a[3] + v[1] * this.a[4] + v[2] * this.a[5],
        v[0] * this.a[6] + v[1] * this.a[7] + v[2] * this.a[8]
      ];
    };
    
    // 2d affine transformation
    Mat3.prototype.transform2d = function(v){
      var v2 = this.transform3d([v[0],v[1],1]);
      return [v2[0],v2[1]];
    };
    
    Mat3.prototype.inverse = function(){
      var f = this.a[0] * (this.a[4]*this.a[8] - this.a[5]*this.a[7])
            + this.a[1] * (this.a[5]*this.a[6] - this.a[3]*this.a[8])
            + this.a[2] * (this.a[3]*this.a[7] - this.a[4]*this.a[6]);
    
      return mat3([
        this.a[4]*this.a[8] - this.a[5]*this.a[7],
        this.a[2]*this.a[7] - this.a[1]*this.a[8],
        this.a[1]*this.a[5] - this.a[2]*this.a[4],
        
        this.a[5]*this.a[6] - this.a[3]*this.a[8],
        this.a[0]*this.a[8] - this.a[2]*this.a[6],
        this.a[2]*this.a[3] - this.a[0]*this.a[5],
        
        this.a[3]*this.a[7] - this.a[4]*this.a[6],
        this.a[1]*this.a[6] - this.a[0]*this.a[7],
        this.a[0]*this.a[4] - this.a[1]*this.a[3]
      ]).multiplyScalar(1/f);
    };
    
    Mat3.prototype.multiply = function(mat){
      return mat3([
        this.a[0] * mat.a[0] + this.a[1] * mat.a[3] + this.a[2] * mat.a[6],
        this.a[0] * mat.a[1] + this.a[1] * mat.a[4] + this.a[2] * mat.a[7],
        this.a[0] * mat.a[2] + this.a[1] * mat.a[5] + this.a[2] * mat.a[8],
    
        this.a[3] * mat.a[0] + this.a[4] * mat.a[3] + this.a[5] * mat.a[6],
        this.a[3] * mat.a[1] + this.a[4] * mat.a[4] + this.a[5] * mat.a[7],
        this.a[3] * mat.a[2] + this.a[4] * mat.a[5] + this.a[5] * mat.a[8],
    
        this.a[6] * mat.a[0] + this.a[7] * mat.a[3] + this.a[8] * mat.a[6],
        this.a[6] * mat.a[1] + this.a[7] * mat.a[4] + this.a[8] * mat.a[7],
        this.a[6] * mat.a[2] + this.a[7] * mat.a[5] + this.a[8] * mat.a[8]
      ]);
    };
    
    Mat3.prototype.multiplyScalar = function(s){
      return mat3([
        this.a[0] * s, this.a[1] * s, this.arr[2] * s,
        this.a[3] * s, this.a[4] * s, this.arr[5] * s,
        this.a[6] * s, this.a[7] * s, this.arr[8] * s
      ]);
    };
    
    Mat3.prototype.transpose = function(){
      return mat3([
        this.a[0], this.a[3], this.a[6],
        this.a[1], this.a[4], this.a[7],
        this.a[2], this.a[5], this.a[8]
      ]);
    };

    function mat3(a){
      return new Mat3(a);
    };
    
    mat3.identity = function(){
      return mat3([1,0,0,0,1,0,0,0,1]);
    };
    
    // 2d rotation
    mat3.rotate = function(phi){
      var s = Math.sin(phi), c = Math.cos(phi);
      return mat3([c,s,0,-s,c,0,0,0,1]);
    };
    
    // 3d rotations
    mat3.rotate.z = mat3.rotate;
    
    mat3.rotate.y = function(phi){
      var s = Math.sin(phi), c = Math.cos(phi);
      return mat3([c,0,s,0,1,0,-s,0,c]);
    };
    
    mat3.rotate.x = function(phi){
      var s = Math.sin(phi), c = Math.cos(phi);
      return mat3([1,0,0,0,c,-s,0,s,c]);
    };
    
    mat3.scale = function(x, y, z){
      return mat3([x,0,0,0,y,0,0,0,z||1]);
    };
    
    mat3.translate = function(x, y){
      return mat3([1,0,x,0,1,y,0,0,1]);
    };
    
    mat3.Mat3 = Mat3;

    return mat3;

})();
require "sqlite3"
db = SQLite3::Database.new ":memory:"

rows = db.execute <<-SQL
  create table numbers (
    name varchar(30),
    val int
  );
SQL

{
  "one" => 1,
  "two" => 2,
}.each do |pair|
  db.execute "insert into numbers values ( ?, ? )", pair
end

p db.execute( "select * from numbers" ).to_a

Some thread of random rusty stuffsz

// Code is in the preload

Write a program to find if given array contains duplicate elements or all elements are unique.
Your function should output true if there are duplicates, false if all elements are unique.

Example:

Input:
1 4 3 2 6 4

Output:
true

Input:
1 4 3 2 6 5

Output:
false

import java.util.*;

class Solution {
  /**
   *  Checks if given array contains duplicate elements.
   *  Complexity: O(N)
   *  @author     Jayesh Chandrapal
   
   *  @param nums integer array of elements
   *  @return     true if duplicate elements are found, false otherwise
   */
  public static boolean hasDuplicates(int[] nums) {
    Set<Integer> set = new HashSet<Integer>();
    
    for(int i = 0, len = nums.length; i < len; i++) {
      if(set.contains(nums[i])) {
        return true;
      } else {
        set.add(nums[i]);
      }
    }
    
    return false;
  }
}

Given array of integer elements, find the index of peak element in O(Log N) time complexity.

A peak element is an element that is greater than its neighbors. Given an input array where num[i] != num[i + 1], find a peak element and return its index. Array may contain multiple peaks, in that case return index of any peak.

Example:

Input:
1 2 3 1

Output:
2

because peak element is 3 and it is at index 2.

import java.util.*;;

class Solution {
  public static int peakIndex(int[] nums) {
    int left = 0;
    int right = nums.length - 1;
    int peak = -1;
    
    while(left <= right) {
      if(left == right) {
        peak = left;
        break;
      }
      
      int mid = (left + right) / 2;
      
      if(nums[mid] < nums[mid + 1]) {
        left = mid + 1;
      } else {
        right = mid;
      }
    }
    
    return peak;
  }
}
wichuFailed Tests

Rot13

let abc = ['a'; 'b'; 'c'; 'd'; 'e'; 'f'; 'g'; 'h'; 'i'; 'j'; 'k'; 'l'; 'm'; 'n'; 'o'; 'p'; 'q'; 'r'; 's'; 't'; 'u'; 'v'; 'w'; 'x'; 'y'; 'z']
        
let rot13 s = s |> String.map(fun c -> match abc |> List.tryFindIndex(fun x -> x = c) with | Some(i) -> abc.[(i + 13) % 26] | None -> c)

printfn "%s" (rot13 "hello world")
printfn "%s" (rot13 "uryyb jbeyq")
let countChars (s : string) = 
    s.ToCharArray()
    |> List.ofArray
    |> List.groupBy(fun x -> x)
    |> List.map(fun (c, l) -> (c, l.Length))
    |> Map.ofSeq

printfn "%A" ("abacdacb" |> countChars)
Ruby on Rails
Frameworks

A basic example of how to setup an active record challenge.

Note: Make sure to check out the preloaded section for how to configure the database.

ActiveRecord::Schema.define do
    create_table :albums do |table|
        table.column :title, :string
        table.column :performer, :string
    end

    create_table :tracks do |table|
        table.column :album_id, :integer
        table.column :track_number, :integer
        table.column :title, :string
    end
end

class Album < ActiveRecord::Base
    has_many :tracks
end

class Track < ActiveRecord::Base
    belongs_to :album
end
IO

A basic proof of how you can create content that writes to the file system.

# you can write to your codewarrior home folder
`echo "example text" > /home/codewarrior/example.txt`