From: Kenneth Love <kenneth.love@skgadv.com>
Date: May 2, 2007 1:17:38 PM CDT
To: <submission@rubyquiz.com>
Subject: Please Forward: Ruby Quiz SubmissionThanks for this (relatively) simple Quiz. This is one of the first things
I've every written in just plain Ruby (usually use Rails or Camping).#GET THE NUMBER FROM THE USER#
puts "Please enter the card number:"
@card_number = gets.strip#FIND CARD TYPE#
case @card_number.to_s.length
when 15
if @card_number[0,2] == "34" || @card_number[0,2] == "37"
@card_type = "American Express"
else
@card_type = "Unknown"
end
when 13
if @card_number[0,1] == "4"
@card_type = "Visa"
else
@card_type = "Unknown"
end
when 16
if @card_number[0,4] == "6011"
@card_type = "Discover"
elsif @card_number[0,1] == "4"
@card_type = "Visa"
elsif
(51..55).each do |n|
if @card_number[0,2] == n.to_s
@card_type="MasterCard"
end
end
else
@card_type = "Unknown"
end
else
@card_type = "Unknown"
end#PUT THE NUMBERS INTO AN ARRAY#
@doubles = Array.new
0.step(@card_number.length.to_i,1) {|i| @doubles << @card_number[i,1]}#IF THE ARRAY IS EVEN, START WITH THE FIRST NUMBER, OTHERWISE START WITH THE
SECOND#
#DOUBLE THE APPROPRIATE NUMBERS#
if (@doubles.length-1) % 2 == 0
0.step(@doubles.length-1, 2) { |i| @doubles[i]=@doubles[i].to_i*2}
else
1.step(@doubles.length-1, 2) { |i| @doubles[i]=@doubles[i].to_i*2}
end#ADD THE NUMBERS TOGETHER#
@count = 0
@doubles.each { |i| @count = @count + i.to_i }#DIVIDE BY 10 TO SEE IF THE NUMBER IS VALID, PRINT OUT VALID/INVALID AND THE
CARD TYPE#
if @count % 10 == 0 then puts "Valid #{@card_type}" else puts "Invalid
#{@card_type}" end--
Kenneth Love | Interactive Developer | SK+G8912 Spanish Ridge Avenue
Las Vegas, Nevada 89148
T 702-478-4210
skgadv.com
···
Begin forwarded message: