catgame 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ .DS_Store
2
+ *.gem
3
+ *.gemspec
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $APP_ROOT = File.dirname(__FILE__) + "/../"
4
+
5
+ require $APP_ROOT + "lib/autoload" # Anstatt require "../lib/autoload" mit dem __FILE__ legt man die Ausganslage definitv fest. egal von wo man auf die Datei zugreift. (ROOT-Verzichnis abosul angeben)
6
+
7
+ a = Catgame.new(Levels::FirstRoom)
8
+ a.play
@@ -0,0 +1,20 @@
1
+ module Helper
2
+ autoload :MarkupHelper, $APP_ROOT + 'lib/helper/markup_helper'
3
+ autoload :DeathHelper, $APP_ROOT + 'lib/helper/death_helper'
4
+ autoload :Assets, $APP_ROOT + 'lib/helper/assets.rb'
5
+ end
6
+
7
+ module Levels
8
+ autoload :FirstRoom, $APP_ROOT + 'lib/levels/first_room'
9
+ autoload :FeedingRoom, $APP_ROOT + 'lib/levels/feeding_room'
10
+ autoload :WashingRoom, $APP_ROOT + 'lib/levels/washing_room'
11
+ autoload :TrainingRoom, $APP_ROOT + 'lib/levels/training_room'
12
+ autoload :StylingRoom, $APP_ROOT + 'lib/levels/styling_room'
13
+ autoload :GuestRoom, $APP_ROOT + 'lib/levels/guest_room'
14
+ autoload :SleepingRoom, $APP_ROOT + 'lib/levels/sleeping_room'
15
+ autoload :HappyEnd, $APP_ROOT + 'lib/levels/happy_end'
16
+ autoload :Assets, $APP_ROOT + 'lib/levels/assets'
17
+ autoload :Death, $APP_ROOT + 'lib/levels/death'
18
+ end
19
+
20
+ autoload :Catgame, $APP_ROOT + 'lib/catgame.rb'
@@ -0,0 +1,15 @@
1
+ class Catgame
2
+
3
+ def initialize(start)
4
+ @start = start
5
+ end
6
+
7
+ def play
8
+ next_room = @start
9
+
10
+ while true
11
+ room = next_room.new
12
+ next_room = room.enter
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ class Catgame
2
+ VERSION = '0.0.4'
3
+ end
@@ -0,0 +1,192 @@
1
+ module Helper
2
+ module Assets
3
+ def self.cat
4
+ <<-CAT
5
+      /\\__/\\
6
+     /`    '\\
7
+   === 0  0 ===
8
+     \\  --  /
9
+    /        \\
10
+   /          \\
11
+  |            |
12
+   \\  ||  ||  /
13
+    \\_oo__oo_/#######o
14
+
15
+ CAT
16
+ end
17
+
18
+ def self.kuss
19
+ <<-KUSS
20
+ ## #####
21
+ ## #########+####
22
+ # ## # ## ##########+++++++x###
23
+ ## ## ########## ##### ##+++####+++###
24
+ ## ### #++++##### #++## ##++## ##+++####
25
+ ####### #########+++++++####++# #++### ##++### # #########
26
+ x##########X#++++######+++++++++## ##++## ##+++# ## -# ############# #
27
+ #####+++## #++++++######++++++x## ##+## ######### ###########x###+++++#####
28
+ ## ## ##+++###++++++## ##++++x## ##x### ######## # #######+++++#####++++++###
29
+ ##### ##++++++++++++X### ######## ##### ## ## ## ###++++++++### ##++++++++###
30
+ # #####++++++++++X## ### ### #### ## # #######+++++++#### ###+++++++++###
31
+ ################ # ## ### # ####+++++++++++### ####++++++++++####
32
+ ### #####+++++++++++++## ## +#++++++++++++###
33
+ ####### ## # #####+###X++++###### ### ##x####++++++++####
34
+ ###### ################ # ########+### ## ### ##### #++++++++++####
35
+ #### ##++++########## # ### ##### ### ## ##### ###++++++++++++####
36
+ ## ####++++# #### #### ## ### # ## #### ###++++++++++++++####
37
+ ## ###+++++++### # ############ ### #####++++++++++++++++###
38
+ # ##+++++++++### # ######## # #######+++++++++++++++++####
39
+ #+++++++#### # ### ###### # #############+x###### #
40
+ ####++++++### # # ### ## ####### ## #### ##### ##
41
+ ########### #### ### ####### ####### # # ############# #######
42
+ ### #### ##### # #### ## ################### ###### #+# ############
43
+ # # ###### ## ### # ## ###### ### ############ # ####### ##- ###
44
+ #### ##### ###### ## # ## # # #### # ### # ###### #####+#
45
+ ## #### ####### ##### ## # ### # -##
46
+ # # ## ##+### ###+######### #### # # # # ### ### ##
47
+ ## ## ##+### ###++++++#### ###### ## ## ####### ## ## #### ###### #
48
+ # ##### ###X+++++++### ###+####### ####### ## ### ## ############ #######
49
+ ####### ###+++++++++# =##+++++++#####++++# ## ################## ### ##
50
+ ### ######XX####++########++++++++++++++#### ### ## # # -## ##
51
+ ## ####### ## #++++### #+++++++++++++#### #### ### ## # ## #####
52
+ #### #### ##++++## ###+++++++++++x### ## # # ## # ## #
53
+ ##### ###################### +++##### ########### #
54
+ # ########## ## ### ###### # ### ##
55
+ ### ### #### ##X### # # #
56
+ KUSS
57
+ end
58
+
59
+ def self.guest
60
+ <<-BY_GUEST
61
+              *     ,MMM8&&&.            *
62
+                   MMMM88&&&&&    .
63
+                  MMMM88&&&&&&&
64
+      *           MMM88&&&&&&&&
65
+                  MMM88&&&&&&&&
66
+                  'MMM88&&&&&&'
67
+                    'MMM8&&&'      *    
68
+            /\\/|_      __/\\\\
69
+           /    -\\    /-   ~\\  .              '
70
+           \    = Y =T_ =   /
71
+            )==*(`     `) ~ \\
72
+           /     \\     /     \\
73
+           |     |     ) ~   (
74
+          /       \\   /     ~ \\
75
+          \\       /   \\~     ~/
76
+   _/\\_/\\_/\\__  _/_/\\_/\\__~__/_/\\_/\\_/\\_/\\_/\\_
77
+   |  |  |  | ) ) |  |  | ((  |  |  |  |  |  |
78
+   |  |  |  |( (  |  |  |  \\\\ |  |  |  |  |  |
79
+   |  |  |  | )_) |  |  |  |))|  |  |  |  |  |
80
+   |  |  |  |  |  |  |  |  (/ |  |  |  |  |  |
81
+   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
82
+ BY_GUEST
83
+ end
84
+
85
+ def self.sleeping
86
+ <<-SLEEPING
87
+         *                  *
88
+              __                *
89
+           ,db'    *     *
90
+          ,d8/       *        *    *
91
+          888
92
+          `db\       *     *
93
+            `o`_                    **
94
+       *               *   *    _      *
95
+             *                 / )
96
+          *    (\\__/) *       ( (  *
97
+        ,-.,-.,)    (.,-.,-.,-.) ).,-.,-.
98
+       | @|  ={      }= | @|  / / | @|o |
99
+      _j__j__j_)     `-------/ /__j__j__j_
100
+      ________(               /___________
101
+       |  | @| \\              || o|O | @|
102
+       |o |  |,'\\       ,   ,'"|  |  |  | 
103
+      vV\\|/vV|`-'\\  ,---\\   | \\Vv\\hjwVv\\//v
104
+                 _) )    `. \\ /
105
+                (__/       ) )
106
+                          (_/
107
+ SLEEPING
108
+ end
109
+
110
+ def self.styling
111
+ <<-STYLING
112
+    /\\     /\\
113
+   {  `---'  }
114
+   {  O   O  } 
115
+ ~~|~   V   ~|~~ 
116
+    \\  \\|/  /  
117
+     `-----'__
118
+     /     \\  `^\\_
119
+    {       }\\ |\\_\\_   _
120
+    |  \\_/  |/ /  \\_\\_( )
121
+     \\__/  /(_/     \\__/
122
+       (__/
123
+
124
+ STYLING
125
+ end
126
+
127
+ def self.training
128
+ <<-TRAINING
129
+                  ,.     ,.
130
+                 {^ \\-"-/ ^}
131
+                 "   """   "
132
+                { <O> _ <O> }
133
+                ==_ .:Y:. _==
134
+              .""  `--^--' "".
135
+             (,~-~."" "" ,~-~.)
136
+       ------(     )----(     )-----
137
+             ^-'-'-^    ^-'-'-^
138
+       _____________________________
139
+             |"""" /~.^.~\\ """"|
140
+           ,i-i-i(""(  i-i-i.
141
+          (o o o ))"")( o o o)
142
+              \\(_) /(""(  \\ (_)/
143
+               `--'  \\""\\  `--'
144
+                      )"")
145
+                     (""/
146
+ TRAINING
147
+ end
148
+
149
+ def self.washing
150
+ <<-WASHING
151
+           .-------.                       
152
+          /         `----.___               
153
+         J                   ` __    /|        
154
+        /|           /        |\\/`--' (    
155
+      .' \\     |     |    |      _   _ \\      
156
+   .-' .' \\    |     \\       _   `   `_ )    
157
+ -' .-'  | )   \\      `.  \\.' `.     _X/      
158
+ .-'  |    (   \\ `````` \\ \\  \\| `-._.-'     
159
+  |     |  |`.  \\  \\   | \\ \\  \\ \\  |  | |   
160
+     ||       `. `._`._   \\ \\_ \\ `_        
161
+  |       | |   `.__)__) | `._) `._)  |  
162
+
163
+ WASHING
164
+ end
165
+
166
+ def self.feeding
167
+ <<-EATING
168
+                )\\._.,--....,'``.      
169
+  .b--.        /;   _.. \\   _\\  (`._ ,.
170
+ `=,-,-'~~~   `----(,_..'--(,_..'`-.;.'
171
+ EATING
172
+ end
173
+
174
+ def self.deathpic
175
+ <<-DEATH
176
+            ___
177
+     ,_    '---'    _,
178
+     \\ `-._|\\_/|_.-' /
179
+      |   =)'T'(=   |
180
+       \\   /`"`\\   /
181
+     '._\\) (/_.'
182
+            | |
183
+           /\\ /\\
184
+           \\ T /
185
+           (/ \\)\\
186
+                ))
187
+               ((
188
+                \\)
189
+ DEATH
190
+ end
191
+ end
192
+ end
@@ -0,0 +1,8 @@
1
+ module Helper
2
+ module DeathHelper
3
+ def death
4
+ @death ||= Death.new
5
+ @death.death
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ module Helper
2
+ module MarkupHelper
3
+ def space
4
+ puts "\n------------------------------------------------------------------------------------\n\n"
5
+ end
6
+
7
+ def prompt
8
+ print "\n[ YOUR INPUT ]> "
9
+ end
10
+
11
+ def pause
12
+ sleep 2
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module Levels
2
+ class Death
3
+ include Helper::MarkupHelper
4
+
5
+ def initialize
6
+ @status = Helper::Assets.deathpic
7
+ end
8
+
9
+ def death
10
+ space
11
+ puts <<-PARAGRAPH
12
+ *** R.I.P Johnny ***
13
+
14
+ PARAGRAPH
15
+ puts @status
16
+ space
17
+ Process.exit(0)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,70 @@
1
+ module Levels
2
+ class FeedingRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "mouse"
7
+ BAD_CHOICE = "cat food"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.feeding
11
+ end
12
+
13
+ def enter
14
+ choice_explain
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ first_choice
21
+ return Levels::WashingRoom
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def choice_explain
32
+ puts <<-PARAGRAPH
33
+ Ok, It is morning and Johnny is hungry. He needs some food.
34
+ My grandmother gave you some special cat food.
35
+ But it seems that Johnny prefers to eat a mouse.
36
+ What do you do?
37
+ Do you give Johnny the special food from my Grandmother? Then type "#{BAD_CHOICE}".
38
+ Or do you let Johny hunt a wild mouse? Then type "#{GOOD_CHOICE}".
39
+ PARAGRAPH
40
+ end
41
+
42
+ def first_choice
43
+ space
44
+ puts <<-PARAGRAPH
45
+ Oh, nice decicion. Johnny loves to hunt mouses.
46
+
47
+ PARAGRAPH
48
+ puts @status
49
+ space
50
+ pause
51
+ end
52
+
53
+ def second_choice
54
+ space
55
+ puts <<-PARAGRAPH
56
+ Oh man, the food from my grandmother wasn't fresh anymore
57
+ That's maybe the reason why Johnny don't move anymore.
58
+ PARAGRAPH
59
+ death
60
+ end
61
+
62
+ def invalid_input
63
+ space
64
+ puts <<-PARAGRAPH
65
+ "#{GOOD_CHOICE}" or "#{BAD_CHOICE}" what is so difficult???
66
+ Try it again:
67
+ PARAGRAPH
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,63 @@
1
+ module Levels
2
+ class FirstRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "Hello lovely Johnny"
7
+
8
+ def initialize
9
+ @state = Helper::Assets.cat
10
+ end
11
+
12
+ def enter
13
+ explain_choices
14
+ loop do
15
+ prompt
16
+ action = gets.chomp
17
+ case action
18
+ when GOOD_CHOICE
19
+ first_choice
20
+ return Levels::FeedingRoom
21
+ else
22
+ invalid_input
23
+ end
24
+ end
25
+ end
26
+
27
+ private
28
+ def explain_choices
29
+ space
30
+ puts "**** WELCOME ****"
31
+ puts "Let me introduce you to the cat of my grandmother:"
32
+ space
33
+ puts @state
34
+ space
35
+ puts <<-PARAGRAPH
36
+ It is a "he" and it\'s name is "Johnny".
37
+ Johnny is the one and only for my grandmother. Today you are the nanny for Johnny.
38
+ The only thing you have to do is bringing Johnny healthy back to my grandmother.
39
+ If you are allergic against cats then press "Ctrl + C" to end.
40
+ If you are ready for a day with lovely Johnny type: "#{GOOD_CHOICE}".
41
+ PARAGRAPH
42
+ end
43
+
44
+ def first_choice
45
+ space
46
+ puts <<-PARAGRAPH
47
+ Well, i like your decicion.
48
+ let us go on.
49
+ PARAGRAPH
50
+ space
51
+ pause
52
+ end
53
+
54
+ def invalid_input
55
+ space
56
+ puts <<-PARAGRAPH
57
+ I dont understand you.
58
+ Try it again. Good luck!
59
+ PARAGRAPH
60
+ end
61
+ end
62
+ end
63
+
@@ -0,0 +1,74 @@
1
+ module Levels
2
+ class GuestRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "allow"
7
+ BAD_CHOICE = "forbid"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.guest
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ first_choice
21
+ return Levels::SleepingRoom
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ Well, you are pointly arrived by your Friend.
34
+ You go in and have a duff beer with your Friend.
35
+ Johnny sneaking around your feets and makes some noices
36
+ like: "MIIIIAAAAUUUUUW".
37
+ Johnny is bored and wants to go outside playing.
38
+ Do you allow Johnny to go outside? Then type "#{GOOD_CHOICE}".
39
+ Or do you want to have Johnny by your side beacause of the
40
+ dangers which are outside? Then type "#{BAD_CHOICE}".
41
+ PARAGRAPH
42
+ end
43
+
44
+ def first_choice
45
+ space
46
+ puts <<-PARAGRAPH
47
+ So you let Johnny go outside for playing.
48
+ After a while you would like to go home and
49
+ search Johnny outside. You found Johnny on a fence
50
+ with a nice cat-ladejh.
51
+
52
+ PARAGRAPH
53
+ puts @status
54
+ space
55
+ pause
56
+ end
57
+
58
+ def second_choice
59
+ space
60
+ puts <<-PARAGRAPH
61
+ Poor Johnny. He was so bored, that he can't breath anymore.
62
+ Johnny never plays outside again.
63
+ PARAGRAPH
64
+ death
65
+ end
66
+
67
+ def invalid_input
68
+ space
69
+ puts <<-PARAGRAPH
70
+ Johnny didn't understand you. Can you repeat your answer?
71
+ PARAGRAPH
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,75 @@
1
+ module Levels
2
+ class HappyEnd
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "bye lovely Johnny"
7
+ BAD_CHOICE = "flee"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.kuss
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ first_choice
21
+ Process.exit(0)
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ It's morning and you have to bring Johnny back home.
34
+ You had a lot of fun with Johnny and you're really sad to
35
+ give him back home.
36
+ Now you have the following Choices:
37
+ You can kidnap Johnny, leave the country and beginn a new live.
38
+ When this is what you want type "#{BAD_CHOICE}".
39
+ Or you can be a nice Peson and bring johnny back to my
40
+ grandmother.
41
+ When this is what you want type "#{GOOD_CHOICE}"
42
+ PARAGRAPH
43
+ end
44
+
45
+ def first_choice
46
+ space
47
+ puts <<-PARAGRAPH
48
+ My Grandmother is verry happy to see Johnny again.
49
+ She gives you a biiiig kiss:
50
+
51
+ PARAGRAPH
52
+ puts @status
53
+ puts "\nWell done!"
54
+ space
55
+ pause
56
+ end
57
+
58
+ def second_choice
59
+ space
60
+ puts <<-PARAGRAPH
61
+ You take with Johnny the next flight to Columbia.
62
+ Johnny's heartache was big because he still miss his girlfriend.
63
+ He's heart decided to don't beat anmymore.
64
+ PARAGRAPH
65
+ death
66
+ end
67
+ def invalid_input
68
+ space
69
+ puts <<-PARAGRAPH
70
+ I know it is a hard decision but you have to make
71
+ a choise between "flee" or "bye lovely Johnny".
72
+ PARAGRAPH
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,89 @@
1
+ module Levels
2
+ class SleepingRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "yes"
7
+ BAD_CHOICE = "no"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.sleeping
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ first_choice
21
+ return Levels::HappyEnd
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ After Johnny said good bye to his new girlfriend.
34
+ You and Johnny went home. It was late now.
35
+ Johnny's heart is broken because he misses his new girfriend.
36
+ Because of that Johnny would like to sleep outside.
37
+ Do you allow Johnny to sleep outside? Then type "#{GOOD_CHOICE}".
38
+ Do you don't allow Johnny to sleep outside? Then type "#{BAD_CHOICE}".
39
+ PARAGRAPH
40
+ end
41
+
42
+ def first_choice
43
+ space
44
+ puts <<-PARAGRAPH
45
+ Johnny is outside but he can't sleep.
46
+ He's starring at the moon and thinking about he's new
47
+ girlfriend.
48
+
49
+ PARAGRAPH
50
+ puts @status
51
+ puts <<-PARAGRAPH
52
+
53
+ He said to himself "I know she's too starring at te moon and misses me."
54
+ And with this mind he sleeps good this night.
55
+ PARAGRAPH
56
+ space
57
+ pause
58
+ end
59
+
60
+ def second_choice
61
+ space
62
+ puts <<-PARAGRAPH
63
+ This was the last night for Johnny.
64
+ He's heart hurt so much that Johnny decied
65
+ to never wake up again.
66
+ PARAGRAPH
67
+ death
68
+ end
69
+
70
+ def invalid_input
71
+ space
72
+ puts <<-PARAGRAPH
73
+
74
+ Please make a decision between
75
+ "yes" or "no".
76
+
77
+ If you choose "yes" please push on your keyboard:
78
+ "Y" then "E" then "S" and finally "ENTER"
79
+
80
+ If you choose "no" please push on your keyboard:
81
+ "N" then "O" (That's not a number!) and finally "ENTER"
82
+
83
+ If you're not able to make that. Please push on your keyboard:
84
+ "Ctrl" + "C"
85
+ After that go out and play in the sandpit. Have fun!
86
+ PARAGRAPH
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,73 @@
1
+ module Levels
2
+ class StylingRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "dry"
7
+ BAD_CHOICE = "wet"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.styling
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ first_choice
21
+ return Levels::GuestRoom
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ After the Training, Johnny doesn't look very nice.
34
+ You would like to visit some friends. And because of that
35
+ you have to pimp up Johnny for the visit.
36
+ You wash Johnny again.
37
+ Now it's two o'clock in the afternoon and you have to hurry up.
38
+ Johnny is still wet. So what do you gonna do?
39
+ Do you go out with Johnny while he is still wet? Then type "#{BAD_CHOICE}".
40
+ Or do you blow Johhny dry with the hairdryer? Then type "#{GOOD_CHOICE}".
41
+ PARAGRAPH
42
+ end
43
+
44
+ def first_choice
45
+ space
46
+ puts <<-PARAGRAPH
47
+ Well done, Johnny looks sooooouuuw sweeet <3 <3
48
+ Doesn't he?
49
+
50
+ PARAGRAPH
51
+ puts @status
52
+ space
53
+ pause
54
+ end
55
+
56
+ def second_choice
57
+ space
58
+ puts <<-PARAGRAPH
59
+ Oh, no ! It was too cold for Johnny outside.
60
+ He is frozen and never mets your Friend.
61
+ PARAGRAPH
62
+ death
63
+ end
64
+
65
+ def invalid_input
66
+ space
67
+ puts <<-PARAGRAPH
68
+ The fucking question was "dry" or "wet" so type "dry" or "wet" and nothing other !!!
69
+ Remember you have to hurry up !!!
70
+ PARAGRAPH
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,85 @@
1
+ module Levels
2
+ class TrainingRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = 5
7
+ BAD_CHOICE = 10
8
+
9
+ def initialize
10
+ @status = Helper::Assets.training
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp.to_i
18
+ case action
19
+ when 5
20
+ first_choice(1)
21
+ return Levels::StylingRoom
22
+ when 10
23
+ second_choice(1)
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ Johnny needs hard training to stay fit. So it's time to
34
+ do something.
35
+ You go with Johnny to a training hall, where other lovely cats
36
+ also do their training.
37
+ Now it's your turn to say Johnny how much he has to work.
38
+ Type "5" if you want Johnny to take a easy training.
39
+ Or Type "10" if you want Johnny to take a hard training.
40
+ PARAGRAPH
41
+ end
42
+
43
+ def first_choice(i)
44
+ numbers = []
45
+ while i <= 5
46
+ puts "Training ##{i}"
47
+ puts @status
48
+ sleep 1
49
+ numbers.push(i)
50
+ i = i + 1
51
+ end
52
+ space
53
+ puts "Well Done ! You can be proud about Johnny\n"
54
+ space
55
+ pause
56
+ end
57
+
58
+ def second_choice(i)
59
+ numbers = []
60
+ while i <= 10
61
+ puts "Training ##{i}"
62
+ sleep 1
63
+ puts @status
64
+ numbers.push(i)
65
+ i = i + 1
66
+ break if i == 6
67
+ end
68
+ training_interrupt(i)
69
+ end
70
+
71
+ def invalid_input
72
+ space
73
+ puts "Try to type 5 or 10. I believe in you, you get it!"
74
+ end
75
+
76
+ def training_interrupt(i)
77
+ space
78
+ puts <<-PARAGRAPH
79
+ Shit happens. That was too much for Johnny.
80
+ Johnny never made a ##{i} Training."
81
+ PARAGRAPH
82
+ death
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,76 @@
1
+ module Levels
2
+ class WashingRoom
3
+ include Helper::MarkupHelper
4
+ include Helper::DeathHelper
5
+
6
+ GOOD_CHOICE = "pullover"
7
+ BAD_CHOICE = "birdhouse"
8
+
9
+ def initialize
10
+ @status = Helper::Assets.washing
11
+ end
12
+
13
+ def enter
14
+ explain_choices
15
+ loop do
16
+ prompt
17
+ action = gets.chomp
18
+ case action
19
+ when GOOD_CHOICE
20
+ fist_choice
21
+ return Levels::TrainingRoom
22
+ when BAD_CHOICE
23
+ second_choice
24
+ else
25
+ invalid_input
26
+ end
27
+ end
28
+ end
29
+
30
+ private
31
+ def explain_choices
32
+ puts <<-PARAGRAPH
33
+ Well, after the hard hunting Johnny is very dirty now.
34
+ He needs a bath. So you go to the bathroom and fill the bath tube with
35
+ Water. Now you have to wait until the tube is full.
36
+ What do you do while you are waiting?
37
+ Do you build a birdhouse for the garden? Then type "#{BAD_CHOICE}".
38
+ Or do you knit up a lovely pullover for your friend? Then type "#{GOOD_CHOICE}".
39
+ PARAGRAPH
40
+ end
41
+
42
+ def fist_choice
43
+ space
44
+ puts <<-PARAGRAPH
45
+ Oh, Johnny loves wool. While you are knitting up the pullover,
46
+ Johnny plays with the wool.
47
+ And as soon as the bath tube was full you cleaned up Johhny.
48
+
49
+ He looks gorgeous, dosen't he?
50
+
51
+ PARAGRAPH
52
+ puts @status
53
+ space
54
+ pause
55
+ end
56
+
57
+ def second_choice
58
+ space
59
+ puts <<-PARAGRAPH
60
+ While you are building your birdhouse in the garden,
61
+ Johnny plays lonely in your flat.
62
+ After you came back from building the birhouse,
63
+ you find Johnny in the bath tube.
64
+ The tube was too full for Johnny.
65
+ PARAGRAPH
66
+ death
67
+ end
68
+
69
+ def invalid_input
70
+ space
71
+ puts <<-PARAGRAPH
72
+ Please make a decicion between "#{BAD_CHOICE}" and "#{BAD_CHOICE}".
73
+ PARAGRAPH
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,16 @@
1
+ require 'test/unit'
2
+
3
+ class MyUnitTests < Test::Unit::TestCase
4
+
5
+ def setup
6
+ puts "setup!"
7
+ end
8
+
9
+ def teardown
10
+ puts "teardown!"
11
+ end
12
+
13
+ def test_basic
14
+ puts "I RAN!"
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: catgame
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 4
10
+ version: 0.0.4
11
+ platform: ruby
12
+ authors:
13
+ - Franca Rast
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-09-02 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: "Play a game with a lovely cat in the terminal. "
23
+ email:
24
+ - franca.rast@screenconcept.ch
25
+ executables:
26
+ - catgame
27
+ extensions: []
28
+
29
+ extra_rdoc_files: []
30
+
31
+ files:
32
+ - .gitignore
33
+ - bin/catgame
34
+ - lib/autoload.rb
35
+ - lib/catgame.rb
36
+ - lib/catgame/version.rb
37
+ - lib/helper/assets.rb
38
+ - lib/helper/death_helper.rb
39
+ - lib/helper/markup_helper.rb
40
+ - lib/levels/death.rb
41
+ - lib/levels/feeding_room.rb
42
+ - lib/levels/first_room.rb
43
+ - lib/levels/guest_room.rb
44
+ - lib/levels/happy_end.rb
45
+ - lib/levels/sleeping_room.rb
46
+ - lib/levels/styling_room.rb
47
+ - lib/levels/training_room.rb
48
+ - lib/levels/washing_room.rb
49
+ - test/test_catgame.rb
50
+ has_rdoc: true
51
+ homepage: https://github.com/ryabrody
52
+ licenses: []
53
+
54
+ post_install_message:
55
+ rdoc_options: []
56
+
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ requirements: []
78
+
79
+ rubyforge_project: catgame
80
+ rubygems_version: 1.3.7
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Fancy game for Cat-Fans
84
+ test_files:
85
+ - test/test_catgame.rb