Skip to content

Instantly share code, notes, and snippets.

@nishantrpai
Created January 19, 2022 15:34
Show Gist options
  • Select an option

  • Save nishantrpai/a87171638dd7c39aeeb56dd681417edd to your computer and use it in GitHub Desktop.

Select an option

Save nishantrpai/a87171638dd7c39aeeb56dd681417edd to your computer and use it in GitHub Desktop.

Github Copilot Interaction

What is happening below?

  1. Installed Copilot on VS Code
  2. Wrote the function name for e.g., function add() {
  3. Copilot suggests code, I simply press Tab :O
function add() {
    var a = 1;
    var b = 2;
    return a + b;
}

function median(arr) {
    var middle = Math.floor(arr.length / 2);
    if (arr.length % 2) {
        return arr[middle];
    } else {
        return (arr[middle - 1] + arr[middle]) / 2.0;
    }
}

function mergeSort(arr) {
    if (arr.length < 2) {
        return arr;
    }
    var middle = Math.floor(arr.length / 2);
    var left = arr.slice(0, middle);
    var right = arr.slice(middle);
    return merge(mergeSort(left), mergeSort(right));
}

function merge(left, right) {
    var result = [];
    while (left.length && right.length) {
        if (left[0] <= right[0]) {
            result.push(left.shift());
        } else {
            result.push(right.shift());
        }
    }
    while (left.length) {
        result.push(left.shift());
    }
    while (right.length) {
        result.push(right.shift());
    }
    return result;
}

function quickSort(arr) {
    if (arr.length < 2) {
        return arr;
    }
    var pivot = arr[0];
    var left = [];
    var right = [];
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] <= pivot) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat(pivot, quickSort(right));
}

function bubbleSort(arr) {
    var swapped;
    do {
        swapped = false;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > arr[i + 1]) {
                var tmp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = tmp;
                swapped = true;
            }
        }
    } while (swapped);
    return arr;
}

function selectionSort(arr) {
    var min;
    for (var i = 0; i < arr.length; i++) {
        min = i;
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[j] < arr[min]) {
                min = j;
            }
        }
        if (min != i) {
            var tmp = arr[i];
            arr[i] = arr[min];
            arr[min] = tmp;
        }
    }
}

function attackOnTitan() {
    var titan = {
        health: 1000,
        attack: 100,
        counterAttack: 100,
        isAlive: true
    };
    var player = {
        health: 1000,
        attack: 100,
        counterAttack: 100,
        isAlive: true
    };
    var playerTurn = true;
    var attack = function () {
        if (playerTurn) {
            titan.health -= player.attack;
            if (titan.health <= 0) {
                titan.health = 0;
                titan.isAlive = false;
            }
            playerTurn = false;
        } else {
            player.health -= titan.counterAttack;
            if (player.health <= 0) {
                player.health = 0;
                player.isAlive = false;
            }
            playerTurn = true;
        }
        console.log("Titan: " + titan.health);
        console.log("Player: " + player.health);
    };
    var attackButton = document.getElementById("attack");
    attackButton.addEventListener("click", attack);
    var attackButton = document.getElementById("attack");
    attackButton.addEventListener("click", attack);
    var attackButton = document.getElementById("attack");
    attackButton.addEventListener("click", attack);
}

function neuralnetwork(data) {
    var inputs = data.inputs;
    var outputs = data.outputs;
    var weights = data.weights;
    var biases = data.biases;
    var learningRate = data.learningRate;
    var activation = data.activation;
    var activationDerivative = data.activationDerivative;
    var forward = function (inputs) {
        var outputs = [];
        for (var i = 0; i < inputs.length; i++) {
            var sum = 0;
            for (var j = 0; j < weights[i].length; j++) {
                sum += inputs[j] * weights[i][j];
            }
            sum += biases[i];
            outputs.push(activation(sum));
        }
        return outputs;
    };
    var backward = function (outputs, expectedOutputs) {
        var errors = [];
        for (var i = 0; i < outputs.length; i++) {
            errors[i] = outputs[i] - expectedOutputs[i];
        }
        var weightErrors = [];
        for (var i = 0; i < weights.length; i++) {
            weightErrors[i] = [];
            for (var j = 0; j < weights[i].length; j++) {
                weightErrors[i][j] = 0;
            }
        }
        for (var i = 0; i < errors.length; i++) {
            for (var j = 0; j < weights[i].length; j++) {
                weightErrors[i][j] = errors[i] * activationDerivative(outputs[i]) * inputs[j];
            }
        }
        var biasErrors = [];
        for (var i = 0; i < errors.length; i++) {
            biasErrors[i] = errors[i] * activationDerivative(outputs[i]);
        }
        return {
            weightErrors: weightErrors,
            biasErrors: biasErrors
        };
    };
    var update = function (weightErrors, biasErrors) {
        for (var i = 0; i < weights.length; i++) {
            for (var j = 0; j < weights[i].length; j++) {
                weights[i][j] -= learningRate * weightErrors[i][j];
            }
        }
        for (var i = 0; i < biases.length; i++) {
            biases[i] -= learningRate * biasErrors[i];
        }
    };
    var train = function (inputs, expectedOutputs) {
        var outputs = forward(inputs);
        var errors = backward(outputs, expectedOutputs);
        update(errors.weightErrors, errors.biasErrors);
    }
    return {
        forward: forward,
        train: train   
    };

}

function recordAudio() {
    var audio = document.getElementById("audio");
    var recordButton = document.getElementById("record");
    var stopButton = document.getElementById("stop");
    var audioChunks = [];
    var recorder = new MediaRecorder(audio);
    recordButton.addEventListener("click", function () {
        audioChunks = [];
        recorder.start();
    });
    stopButton.addEventListener("click", function () {
        recorder.stop();
        audio.src = URL.createObjectURL(new Blob(audioChunks, {
            type: "audio/mpeg-3"
        }));
    });
    recorder.addEventListener("dataavailable", function (event) {
        audioChunks.push(event.data);
    });
}```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment