Thank you very much Matthew, i was wrong from the beginning :)

So here it is :

--8<--

class Testing

   def initialize
     # Start with setting your name
     # Case 1 : name is empty => "Let's play Guest!"
     # Case 2 : name is a real name => "Let's play your_name"
     # Case 3 : name is 'quit' => "Goodbye Guest." & exit game

     @name = 'Guest'
     your_name
   end

   def your_name
     # Get your name
     puts "(Type 'quit' to exit)"
     print 'Please your name? '
     try_a_name = gets.chomp.capitalize

     @name = try_a_name unless try_a_name == 'Quit' || try_a_name.empty?
     byebye if try_a_name == 'Quit'

     play
   end

   def byebye
     puts "\nGoodbye #{@name}.\n\n"

     exit
   end

   def play
     puts "Let's play #{@name}!"
   end

end

Testing.new

-->8---

/Nathan


Le 2016-11-24 16:00, Matthew Kerwin a crit :

> On 24 November 2016 at 21:50, Nathan Guilty <ruby / e-solutions.re> 
> wrote:
> 
>> This doesn't work :
>> 
>> 1/ Set the name
>> Case 1 : If the name is empty so, i need to have "Let's play Guest!"
>> Case 2 : If the name is quit, i need to have "Goodbye Guest."
>> Case 3 : A real player name, i need to have "Let's play #{@name}"
>> 
>> :)
> 
> My brief sketch of an algorithm would be:
> 
> 1. initialise the name to "Guest"
> 
> 2. read a word from the user (into a local variable, not @name)
> 
> 2.a) if it's "Quit", go to end
> 
> 2.b) otherwise if it's not empty, assign it to @name
> 
> 3. play
> 
> --
> 
> Matthew Kerwin
> http://matthew.kerwin.net.au/

Unsubscribe: <mailto:ruby-talk-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>