你已经学会了 if 语句、函式、还有数组。现在你要练习扭转一下思维了。把下面的代码写下来,看你是否能弄懂它实现的是什么功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
def prompt<span class="o">()</span> print <span class="s2">"> "</span> end def gold_room<span class="o">()</span> puts <span class="s2">"This room is full of gold. How much do you take?"</span> prompt<span class="p">;</span> <span class="nv">next_move</span> <span class="o">=</span> gets.chomp <span class="k">if</span> next_move.include? <span class="s2">"0"</span> or next_move.include? <span class="s2">"1"</span> <span class="nv">how_much</span> <span class="o">=</span> next_move.to_i<span class="o">()</span> <span class="k">else</span> dead<span class="o">(</span><span class="s2">"Man, learn to type a number."</span><span class="o">)</span> end <span class="k">if</span> how_much < 50 puts <span class="s2">"Nice, you're not greedy, you win!"</span> Process.exit<span class="o">(</span>0<span class="o">)</span> <span class="k">else</span> dead<span class="o">(</span><span class="s2">"You greedy bastard!"</span><span class="o">)</span> end end def bear_room<span class="o">()</span> puts <span class="s2">"There is a bear here."</span> puts <span class="s2">"The bear has a bunch of honey."</span> puts <span class="s2">"The fat bear is in front of another door."</span> puts <span class="s2">"How are you going to move the bear?"</span> <span class="nv">bear_moved</span> <span class="o">=</span> <span class="nb">false</span> <span class="nb"> </span><span class="k">while</span> <span class="nb">true</span> <span class="nb"> </span>prompt<span class="p">;</span> <span class="nv">next_move</span> <span class="o">=</span> gets.chomp <span class="k">if</span> <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"take honey"</span> dead<span class="o">(</span><span class="s2">"The bear looks at you then slaps your face off."</span><span class="o">)</span> elsif <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"taunt bear"</span> and not bear_moved puts <span class="s2">"The bear has moved from the door. You can go through it now."</span> <span class="nv">bear_moved</span> <span class="o">=</span> <span class="nb">true</span> <span class="nb"> </span>elsif <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"taunt bear"</span> and bear_moved dead<span class="o">(</span><span class="s2">"The bear gets pissed off and chews your leg off."</span><span class="o">)</span> elsif <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"open door"</span> and bear_moved gold_room<span class="o">()</span> <span class="k">else</span> puts <span class="s2">"I got no idea what that means."</span> end end end def cthulu_room<span class="o">()</span> puts <span class="s2">"Here you see the great evil Cthulu."</span> puts <span class="s2">"He, it, whatever stares at you and you go insane."</span> puts <span class="s2">"Do you flee for your life or eat your head?"</span> prompt<span class="p">;</span> <span class="nv">next_move</span> <span class="o">=</span> gets.chomp <span class="k">if</span> next_move.include? <span class="s2">"flee"</span> start<span class="o">()</span> elsif next_move.include? <span class="s2">"head"</span> dead<span class="o">(</span><span class="s2">"Well that was tasty!"</span><span class="o">)</span> <span class="k">else</span> cthulu_room<span class="o">()</span> end end def dead<span class="o">(</span>why<span class="o">)</span> puts <span class="s2">"#{why} Good job!"</span> Process.exit<span class="o">(</span>0<span class="o">)</span> end def start<span class="o">()</span> puts <span class="s2">"You are in a dark room."</span> puts <span class="s2">"There is a door to your right and left."</span> puts <span class="s2">"Which one do you take?"</span> prompt<span class="p">;</span> <span class="nv">next_move</span> <span class="o">=</span> gets.chomp <span class="k">if</span> <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"left"</span> bear_room<span class="o">()</span> elsif <span class="nv">next_move</span> <span class="o">==</span> <span class="s2">"right"</span> cthulu_room<span class="o">()</span> <span class="k">else</span> dead<span class="o">(</span><span class="s2">"You stumble around the room until you starve."</span><span class="o">)</span> end end start<span class="o">()</span> |