Skip to content

Completed Ruby Judo challenges #113

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions 1_power.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
def power(base, exponent)
answer = base

if exponent == 0 # 0 exponent
answer = 1
else
(exponent.abs - 1).times { answer *= base }
end

puts exponent < 0 ? (1.0/answer) : (answer)
end

power(3, 0)
power(3, 1)
power(3, -3)
14 changes: 14 additions & 0 deletions 2_factorial.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
def factorial (number)
answer = 1
i = 1

while i <= 5 do
answer *= i

i += 1
end

puts answer
end

factorial(5)
11 changes: 11 additions & 0 deletions 3_uniques.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
def uniques(array)
unique_array = []

array.each do |item|
unique_array << item unless unique_array.include? item
end

puts unique_array
end

uniques([1, 5, "frog", 2, 1, 3, "frog"])
18 changes: 18 additions & 0 deletions 4_combinations.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def combinations(first, second)
combo_array = []
current_word = ""

first.each do |first_val|
second.each do |second_val|
current_word += first_val
current_word += second_val

combo_array << current_word
current_word = ""
end
end

return combo_array
end

puts combinations(["on", "in"], ["to", "rope"])
10 changes: 10 additions & 0 deletions 5_primes.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
def is_prime?(number)
return false if number <= 1 # 1 and below are not primes

Math.sqrt(number).to_i.downto(2).each { |factor| return false if number % factor == 0 } # has a factor, is not prime

true # prime number
end

puts is_prime?(7)
puts is_prime?(14)
14 changes: 14 additions & 0 deletions 6_rectancle_overlap.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# assumes that coordinates given are for the bottom left and top right of each rectangle

# assumes the first set of coordinates is for the lower/left most rectangle

def overlap(first, second)
if (first[1][0] > second[0][0]) && (first[1][1] > second[0][1])
return "rectangles overlap"
else
return "rectangles don't overlap"
end
end

puts overlap( [ [0,0],[3,3] ], [ [1,1],[4,5] ] )
puts overlap( [ [0,0],[1,4] ], [ [1,1],[3,2] ] )
37 changes: 37 additions & 0 deletions counting_game.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
current_number = 1
direction = true
player = 1

while current_number <= 100 do

puts "Player #{player} says: #{current_number}"

if current_number % 7 == 0
direction = !direction
elsif current_number % 11 == 0
if direction
player += 1
else
if player == 1
player = 10
else
player -= 1
end
end
end

if !(1...10).include? player
player = 1
else
if direction
player += 1
else
if player == 1
player = 10
else
player -= 1
end
end
end
current_number += 1
end