Skip to content

Instantly share code, notes, and snippets.

TIGERS = {1 => 'Morgan, Kiera, John', 2 => 'Dave, Bruno, Max',
3 => 'David, Nick, Lionel', 4 => 'Elmer, Juke, Robert',
5 => 'Tom, Tyler, Gary', 6 => 'Sunny, Daniel, Nathan',
7 => 'Doug, Rao, Nishant'}
class Console
def initialize
@gophers = {}
puts "Welcome to GroupMatcher(tm)!"
puts "When you've finished all groups, type 'Match!'"
@elreimundo
elreimundo / hundred_pairs.rb
Last active January 1, 2016 06:39
A program to determine all pairs of integers in a given array of integers that add to 100. The algorithm is destructive on the original array. This particular algorithm runs in N lg N time and constant space if the sorting algorithm is efficient; after the sort, only one additional pass through the array is required.
def hundred_pairs(array, target = 100)
array.sort!
results = []
min, max = array.shift, array.pop
while min && max
while min + max > target
max = array.pop
end
while min && max && min + max < target
min = array.shift
@elreimundo
elreimundo / cipher.rb
Last active August 29, 2015 13:56
A solution to a Caesar cipher challenge in which only letters are offset and in which spaces are a handful of special characters; the original challenge featured only lowercase letters and an offset of four, but this is intended to scale easily.
def north_korean_cipher message, offset = 4
unexaggerate message.chars.map{|char| decode char, offset}.join('')
end
def unexaggerate message
message.gsub(/\d+/) { |num| num.to_i / 100 }
end
def decode char, offset
case
@elreimundo
elreimundo / picker.css
Created March 2, 2014 21:01
A website to help demonstrate object-oriented design, created as part of a workshop I led for students at Dev Bootcamp
body {
background-image: url('http://pcmreviews.com/news/wp-content/uploads/2012/01/Red-carpet.jpg');
background-size: cover;
background-repeat: no-repeat;
background-position: center;
color: white;
font-family: 'Parisienne', cursive;
}
.header{
// we're starting this function with an IIFE http://benalman.com/news/2010/11/immediately-invoked-function-expression/
// it's important to start this with a semicolon because otherwise any previously loaded JavaScript might try and invoke
// its last line using the anonymous function that we define here as its argument, and then invoke the resulting return value
// on line 63. That would be silly, yo. So we explicitly end the previous thought with a semicolon.
;(function () {
// CLOSURES
function captureWhatNumberIsRightNow (number) {
return function () {
@elreimundo
elreimundo / eightball.js
Created August 11, 2014 17:29
EightBall - intro to JS from an object-oriented perspective
// we're starting this function with an IIFE http://benalman.com/news/2010/11/immediately-invoked-function-expression/
// it's important to start this with a semicolon because otherwise any previously loaded JavaScript might try and invoke
// its last line using the anonymous function that we define here as its argument, and then invoke the resulting return value
// on line 63. That would be silly, yo. So we explicitly end the previous thought with a semicolon.
;(function () {
// we define an array of all of the possible predictions that our eight ball can make.
// unlike in Ruby, the use of all caps is purely conventional; JavaScript has no opinions about
// what capitalized variables mean.
var PREDICTIONS = [