I spent probably way too long on this. Here’s my code. I imagine there would be an easier way to do this instead of having three separate bits of code for capitalised, lower case and all caps substitutions…
def daffyduckifier
print "Write what you want to be Daffy Duckified here… "
user_input = gets.chomp
#removes “sh”. This prevents it from being affected by the program. We put it back in after substitutions have been made.
user_input.gsub!(/sh/, “XXXTHINGYXXX”)
user_input.gsub!(/Sh/, “YYYTHINGYYYY”)
user_input.gsub!(/SH/, “ZZZTHINGYZZZ”)
#begin substitutions…
if user_input.downcase.include? “s”
#lowercase substitutions
user_input.gsub!(/muscle/, “muthle”)
user_input.gsub!(/psych/, “thych”)
user_input.gsub!(/psionic/, “thionic”)
user_input.gsub!(/soccer/, “XXXthocXXXer”) #prevents “soccer” being turned into “thocther”
user_input.gsub!(/sce/, “the”)
user_input.gsub!(/sci/, “thi”)
user_input.gsub!(/scy/, “thy”)
user_input.gsub!(/ce/, “the”)
user_input.gsub!(/XXXthocXXXer/, “thoccer”)
user_input.gsub!(/ci/, “thi”)
user_input.gsub!(/cy/, “thy”)
user_input.gsub!(/s/, “th”)
#capitalised substitutions
user_input.gsub!(/Muscle/, “Muthle”)
user_input.gsub!(/Psych/, “Thych”)
user_input.gsub!(/Psionic/, “Thionic”)
user_input.gsub!(/Soccer/, “XXXThocXXXer”) #prevents “soccer” being turned into “thocther”
user_input.gsub!(/Sce/, “The”)
user_input.gsub!(/Sci/, “Thi”)
user_input.gsub!(/Scy/, “Thy”)
user_input.gsub!(/Ce/, “The”)
user_input.gsub!(/XXXThocXXXer/, “Thoccer”)
user_input.gsub!(/Ci/, “Thi”)
user_input.gsub!(/Cy/, “Thy”)
user_input.gsub!(/S/, “Th”)
#uppercase substitutions
user_input.gsub!(/MUSCLE/, “MUTHLE”)
user_input.gsub!(/PSYCH/, “THYCH”)
user_input.gsub!(/PSIONIC/, “THIONIC”)
user_input.gsub!(/SOCCER/, “XXXTHOCXXXER”) #prevents “soccer” being turned into “thocther”
user_input.gsub!(/SCE/, “THE”)
user_input.gsub!(/SCI/, “THI”)
user_input.gsub!(/SCY/, “THY”)
user_input.gsub!(/CE/, “THE”)
user_input.gsub!(/XXXTHOCXXXER/, “THOCCER”)
user_input.gsub!(/CI/, “THI”)
user_input.gsub!(/CY/, “THY”)
#puts “sh” back
user_input.gsub!(/XXXTHINGYXXX/, “sh”)
user_input.gsub!(/YYYTHINGYYYY/, “Sh”)
user_input.gsub!(/ZZZTHINGYZZZ/, “SH”)
puts “Your result…”
puts user_input
try_again
elsif user_input == “”
puts “You have to write something!”
daffyduckifier
else
#puts “sh” back
user_input.gsub!(/XXXTHINGYXXX/, “sh”)
user_input.gsub!(/YYYTHINGYYYY/, “Sh”)
user_input.gsub!(/ZZZTHINGYZZZ/, “SH”)
puts "You said… "
puts user_input
print "…but nothing needed to be changed. "
try_again
end
def try_again
puts “Try again y/n?”
yn_input = gets.chomp
yn_input.downcase!
if yn_input == “y”
daffyduckifier
elsif yn_input ==“n”
puts “OK!”
else puts “I didn’t understand that…”
try_again
end
end
end
puts “Welcome to the Daffy Duckifier!”
daffyduckifier