From e77b9d8dc25446747a441371e62b19bd1c0c6aa3 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 09:56:34 -0700 Subject: [PATCH 01/11] Create classes for each character and begin intialize method and gameplay methods in PlanetExpress class --- lib/bender.rb | 8 ++++++++ lib/fry.rb | 0 lib/game.rb | 11 +++++++++++ lib/hermes.rb | 8 ++++++++ lib/leela.rb | 8 ++++++++ lib/zoidberg.rb | 8 ++++++++ planetexpress.rb | 9 +++++++++ 7 files changed, 52 insertions(+) create mode 100644 lib/bender.rb create mode 100644 lib/fry.rb create mode 100644 lib/game.rb create mode 100644 lib/hermes.rb create mode 100644 lib/leela.rb create mode 100644 lib/zoidberg.rb create mode 100644 planetexpress.rb diff --git a/lib/bender.rb b/lib/bender.rb new file mode 100644 index 0000000..34cab89 --- /dev/null +++ b/lib/bender.rb @@ -0,0 +1,8 @@ +class Bender + + attr_accessor :name, :thirst + + def initialize + @name = "Bender" + @horde = 50 + end diff --git a/lib/fry.rb b/lib/fry.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/game.rb b/lib/game.rb new file mode 100644 index 0000000..73f6053 --- /dev/null +++ b/lib/game.rb @@ -0,0 +1,11 @@ +module PlanetExpress + class Game + attr_accessor: :bender, :fry, :hermes, :leela, :zoidberg + + def initialize + @bender = Bender.new + @fry = Fry.new + @hermes = Hermes.new + @leela = Leela.new + @zoidberg = Zoidberg.new + end diff --git a/lib/hermes.rb b/lib/hermes.rb new file mode 100644 index 0000000..92165ee --- /dev/null +++ b/lib/hermes.rb @@ -0,0 +1,8 @@ +class Hermes + + attr_accessor :name, :receipts + + def initialize + @name = "Hermes" + @receipts = 50 + end diff --git a/lib/leela.rb b/lib/leela.rb new file mode 100644 index 0000000..9e1a2f2 --- /dev/null +++ b/lib/leela.rb @@ -0,0 +1,8 @@ +class Leela + + attr_accessor :name, :work + + def initialize + @name = "Leela" + @work = 50 + end diff --git a/lib/zoidberg.rb b/lib/zoidberg.rb new file mode 100644 index 0000000..42a7bc3 --- /dev/null +++ b/lib/zoidberg.rb @@ -0,0 +1,8 @@ +class Zoidberg + + attr_accessor :name, :hunger + + def initialize + @name = "Zoidberg" + @hunger = 50 + end diff --git a/planetexpress.rb b/planetexpress.rb new file mode 100644 index 0000000..d71ca4c --- /dev/null +++ b/planetexpress.rb @@ -0,0 +1,9 @@ +require ".lib/bender" +require ".lib/fry" +require ".lib/game" +require ".lib/hermes" +require ".lib/leela" +require ".lib/zoidberg" + +game = PlanetExpress::Game.new +game.play_game From 4586660173796aa191748704ddb1e4dd3baf9cd4 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 10:58:01 -0700 Subject: [PATCH 02/11] Delete duplicate fry and game files --- lib/fry.rb | 8 ++++++++ lib/game.rb | 14 +++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/fry.rb b/lib/fry.rb index e69de29..a84eeba 100644 --- a/lib/fry.rb +++ b/lib/fry.rb @@ -0,0 +1,8 @@ +class Fry + + attr_accessor :name, :thirst + + def initialize + @name = "Fry" + @thirst = 50 + end diff --git a/lib/game.rb b/lib/game.rb index 73f6053..82013d4 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -1,6 +1,6 @@ module PlanetExpress class Game - attr_accessor: :bender, :fry, :hermes, :leela, :zoidberg + attr_accessor :bender, :fry, :hermes, :leela, :zoidberg def initialize @bender = Bender.new @@ -8,4 +8,16 @@ def initialize @hermes = Hermes.new @leela = Leela.new @zoidberg = Zoidberg.new + @stable = true end + + def score + + end + + def check + if @fry.thirst > 95 || @leela.work > 95 || @bender.horde < 5 || @zoidberg.hunger > 95 || @hermes.receipts < 5 + @stable = false + end + end +end From 0b5b4fcd014ad93a218a64b406bae56341eeecb1 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 11:40:09 -0700 Subject: [PATCH 03/11] Add missing ends to character classes and fix file paths in planet express.rb so the files are successfully required --- lib/bender.rb | 1 + lib/fry.rb | 1 + lib/game.rb | 28 ++++++++++++++++++++++------ lib/hermes.rb | 1 + lib/leela.rb | 1 + lib/zoidberg.rb | 1 + planetexpress.rb | 12 ++++++------ 7 files changed, 33 insertions(+), 12 deletions(-) diff --git a/lib/bender.rb b/lib/bender.rb index 34cab89..cde1323 100644 --- a/lib/bender.rb +++ b/lib/bender.rb @@ -6,3 +6,4 @@ def initialize @name = "Bender" @horde = 50 end +end diff --git a/lib/fry.rb b/lib/fry.rb index a84eeba..c8306e3 100644 --- a/lib/fry.rb +++ b/lib/fry.rb @@ -6,3 +6,4 @@ def initialize @name = "Fry" @thirst = 50 end +end diff --git a/lib/game.rb b/lib/game.rb index 82013d4..2c3291d 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -3,21 +3,37 @@ class Game attr_accessor :bender, :fry, :hermes, :leela, :zoidberg def initialize - @bender = Bender.new - @fry = Fry.new - @hermes = Hermes.new - @leela = Leela.new - @zoidberg = Zoidberg.new + @bender = Game::Bender.new(self) + @fry = Game::Fry.new(self) + @hermes = Game::Hermes.new(self) + @leela = Game::Leela.new(self) + @zoidberg = Game::Zoidberg.new(self) @stable = true end - def score + def play_game + + end + def score + puts @fry.thirst + puts @leela.work + puts @bender.horde + puts @zoidberg.hunger + puts @hermes.receipts + total_score = @fry.thirst + @leela.work + @bender.horde + @zoidberg.hunger + @hermes.receipts + puts "This is your total score: " + total_score end def check if @fry.thirst > 95 || @leela.work > 95 || @bender.horde < 5 || @zoidberg.hunger > 95 || @hermes.receipts < 5 + + end + + if @fry.thirst > 99 || @leela.work > 99 || @bender.horde < 1 || @zoidberg.hunger > 99 || @hermes.receipts < 1 @stable = false + end end + end end diff --git a/lib/hermes.rb b/lib/hermes.rb index 92165ee..1c7565f 100644 --- a/lib/hermes.rb +++ b/lib/hermes.rb @@ -6,3 +6,4 @@ def initialize @name = "Hermes" @receipts = 50 end +end diff --git a/lib/leela.rb b/lib/leela.rb index 9e1a2f2..1e2a29a 100644 --- a/lib/leela.rb +++ b/lib/leela.rb @@ -6,3 +6,4 @@ def initialize @name = "Leela" @work = 50 end +end diff --git a/lib/zoidberg.rb b/lib/zoidberg.rb index 42a7bc3..6170c86 100644 --- a/lib/zoidberg.rb +++ b/lib/zoidberg.rb @@ -6,3 +6,4 @@ def initialize @name = "Zoidberg" @hunger = 50 end +end diff --git a/planetexpress.rb b/planetexpress.rb index d71ca4c..507ef6d 100644 --- a/planetexpress.rb +++ b/planetexpress.rb @@ -1,9 +1,9 @@ -require ".lib/bender" -require ".lib/fry" -require ".lib/game" -require ".lib/hermes" -require ".lib/leela" -require ".lib/zoidberg" +require_relative "./lib/bender" +require_relative "./lib/fry" +require_relative "./lib/game" +require_relative "./lib/hermes" +require_relative "./lib/leela" +require_relative "./lib/zoidberg" game = PlanetExpress::Game.new game.play_game From 26316ecdbd8adea8456ddd286b4009350a77ed93 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 12:01:46 -0700 Subject: [PATCH 04/11] Add modules to files to connect them with each other --- lib/bender.rb | 13 +++++++------ lib/fry.rb | 12 +++++++----- lib/game.rb | 2 +- lib/hermes.rb | 12 +++++++----- lib/leela.rb | 12 +++++++----- lib/zoidberg.rb | 12 +++++++----- 6 files changed, 36 insertions(+), 27 deletions(-) diff --git a/lib/bender.rb b/lib/bender.rb index cde1323..7e4d56e 100644 --- a/lib/bender.rb +++ b/lib/bender.rb @@ -1,9 +1,10 @@ -class Bender +module PlanetExpress + class Bender - attr_accessor :name, :thirst - - def initialize - @name = "Bender" - @horde = 50 + def initialize(game) + @name = "Bender" + @horde = 50 + @game = game + end end end diff --git a/lib/fry.rb b/lib/fry.rb index c8306e3..a323fb9 100644 --- a/lib/fry.rb +++ b/lib/fry.rb @@ -1,9 +1,11 @@ -class Fry +module PlanetExpress + class Fry - attr_accessor :name, :thirst + attr_accessor :name, :thirst - def initialize - @name = "Fry" - @thirst = 50 + def initialize + @name = "Fry" + @thirst = 50 + end end end diff --git a/lib/game.rb b/lib/game.rb index 2c3291d..d61306b 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -3,7 +3,7 @@ class Game attr_accessor :bender, :fry, :hermes, :leela, :zoidberg def initialize - @bender = Game::Bender.new(self) + @bender = Game::Bender.new @fry = Game::Fry.new(self) @hermes = Game::Hermes.new(self) @leela = Game::Leela.new(self) diff --git a/lib/hermes.rb b/lib/hermes.rb index 1c7565f..746ac30 100644 --- a/lib/hermes.rb +++ b/lib/hermes.rb @@ -1,9 +1,11 @@ -class Hermes +module PlanetExpress + class Hermes - attr_accessor :name, :receipts + attr_accessor :name, :receipts - def initialize - @name = "Hermes" - @receipts = 50 + def initialize + @name = "Hermes" + @receipts = 50 + end end end diff --git a/lib/leela.rb b/lib/leela.rb index 1e2a29a..b468991 100644 --- a/lib/leela.rb +++ b/lib/leela.rb @@ -1,9 +1,11 @@ -class Leela +module PlanetExpress + class Leela - attr_accessor :name, :work + attr_accessor :name, :work - def initialize - @name = "Leela" - @work = 50 + def initialize + @name = "Leela" + @work = 50 + end end end diff --git a/lib/zoidberg.rb b/lib/zoidberg.rb index 6170c86..5b80b32 100644 --- a/lib/zoidberg.rb +++ b/lib/zoidberg.rb @@ -1,9 +1,11 @@ -class Zoidberg +module PlanetExpress + class Zoidberg - attr_accessor :name, :hunger + attr_accessor :name, :hunger - def initialize - @name = "Zoidberg" - @hunger = 50 + def initialize + @name = "Zoidberg" + @hunger = 50 + end end end From 66efc7d6ee041f04d12146e7f89e3999a4947a81 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 12:12:06 -0700 Subject: [PATCH 05/11] Fix initialize method in game.rb. Objects are being created. Add game parameter to initialize method for bender fry leela hermes and zoidberg --- lib/bender.rb | 2 +- lib/fry.rb | 3 ++- lib/game.rb | 10 +++++----- lib/hermes.rb | 3 ++- lib/leela.rb | 3 ++- lib/zoidberg.rb | 3 ++- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/bender.rb b/lib/bender.rb index 7e4d56e..1307429 100644 --- a/lib/bender.rb +++ b/lib/bender.rb @@ -1,6 +1,6 @@ module PlanetExpress class Bender - + attr_accessor :name, :horde def initialize(game) @name = "Bender" @horde = 50 diff --git a/lib/fry.rb b/lib/fry.rb index a323fb9..4498158 100644 --- a/lib/fry.rb +++ b/lib/fry.rb @@ -3,9 +3,10 @@ class Fry attr_accessor :name, :thirst - def initialize + def initialize(game) @name = "Fry" @thirst = 50 + @game = game end end end diff --git a/lib/game.rb b/lib/game.rb index d61306b..9ea24ec 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -3,11 +3,11 @@ class Game attr_accessor :bender, :fry, :hermes, :leela, :zoidberg def initialize - @bender = Game::Bender.new - @fry = Game::Fry.new(self) - @hermes = Game::Hermes.new(self) - @leela = Game::Leela.new(self) - @zoidberg = Game::Zoidberg.new(self) + @bender = PlanetExpress::Bender.new(self) + @fry = PlanetExpress::Fry.new(self) + @hermes = PlanetExpress::Hermes.new(self) + @leela = PlanetExpress::Leela.new(self) + @zoidberg = PlanetExpress::Zoidberg.new(self) @stable = true end diff --git a/lib/hermes.rb b/lib/hermes.rb index 746ac30..27afbbc 100644 --- a/lib/hermes.rb +++ b/lib/hermes.rb @@ -3,9 +3,10 @@ class Hermes attr_accessor :name, :receipts - def initialize + def initialize(game) @name = "Hermes" @receipts = 50 + @game = game end end end diff --git a/lib/leela.rb b/lib/leela.rb index b468991..0ff3d42 100644 --- a/lib/leela.rb +++ b/lib/leela.rb @@ -3,9 +3,10 @@ class Leela attr_accessor :name, :work - def initialize + def initialize(game) @name = "Leela" @work = 50 + @game = game end end end diff --git a/lib/zoidberg.rb b/lib/zoidberg.rb index 5b80b32..5c9ab06 100644 --- a/lib/zoidberg.rb +++ b/lib/zoidberg.rb @@ -3,9 +3,10 @@ class Zoidberg attr_accessor :name, :hunger - def initialize + def initialize(game) @name = "Zoidberg" @hunger = 50 + @game = game end end end From 566b3adf35e8e5d8d3d8686552057e8669724069 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 15:22:56 -0700 Subject: [PATCH 06/11] Add more methods for gameplay --- lib/game.rb | 64 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/lib/game.rb b/lib/game.rb index 9ea24ec..d612211 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -1,3 +1,4 @@ +require 'pry' module PlanetExpress class Game attr_accessor :bender, :fry, :hermes, :leela, :zoidberg @@ -12,17 +13,66 @@ def initialize end def play_game + loop do + @bender = PlanetExpress::Bender.new(self) + @fry = PlanetExpress::Fry.new(self) + @hermes = PlanetExpress::Hermes.new(self) + @leela = PlanetExpress::Leela.new(self) + @zoidberg = PlanetExpress::Zoidberg.new(self) + @stable = true + do_play_game + puts "Do you want to play again? (y/n)" + break unless gets.chomp == "y" + end + end + + def do_play_game + puts "You are the new captain of the Planet Express." + puts "Its crew: Bender, Fry, Hermes, Leela, and Zoidberg are at your command." + puts "Your direction is crucial to their survival." + puts "If Bender's horde isn't big enough, Fry is too thirsty, Hermes has too few receipts, Leela has too much work, or Zoidberg is too hungry, the mission will be over." + score + puts "Enter 1 to let Bender steal 7 things to add to his horde." + puts "Enter 2 to give Fry a can of Slurm to reduce his thirst by 10." + puts "Enter 3 to give Hermes 9 receipts to keep track of Planet Express expenses." + puts "Enter 4 to give 3 unfulfilled work orders to Leela." + puts "Enter 5 to give Zoidberg a fish to eat to reduce his hunger by 12." + puts "What is your choice?" + make_choice + + + + + end + + def make_choice + i = gets.chomp + if i == "1" + elsif i == "2" + elsif i == "3" + elsif i == "4" + elsif i == "5" + else + puts "Please enter a valid selection:" + make_choice + end end def score - puts @fry.thirst - puts @leela.work - puts @bender.horde - puts @zoidberg.hunger - puts @hermes.receipts - total_score = @fry.thirst + @leela.work + @bender.horde + @zoidberg.hunger + @hermes.receipts - puts "This is your total score: " + total_score + b = @bender.horde + f = @fry.thirst + h = @hermes.receipts + l = @leela.work + z = @zoidberg.hunger + puts "Crew Status:" + puts "Bender has #{b} items in his horde." + puts "Fry has #{f} units of thirst." + puts "Hermes has #{h} receipts to enter." + puts "Leela has #{l} unfulfilled work orders." + puts "Zoidberg has #{z} units of hunger." + total_score = b + f + h + l + z + puts "This is your total score: #{total_score}" end def check From dabe5010c0de29d44697f26dcac3a6769b0739d3 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Mon, 4 Apr 2016 16:49:28 -0700 Subject: [PATCH 07/11] Add more logic. Try to separate out concerns but I'm caught in an infinite loop. --- lib/game.rb | 93 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 66 insertions(+), 27 deletions(-) diff --git a/lib/game.rb b/lib/game.rb index d612211..b672ae0 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -27,35 +27,27 @@ def play_game end def do_play_game - puts "You are the new captain of the Planet Express." - puts "Its crew: Bender, Fry, Hermes, Leela, and Zoidberg are at your command." - puts "Your direction is crucial to their survival." - puts "If Bender's horde isn't big enough, Fry is too thirsty, Hermes has too few receipts, Leela has too much work, or Zoidberg is too hungry, the mission will be over." - score - puts "Enter 1 to let Bender steal 7 things to add to his horde." - puts "Enter 2 to give Fry a can of Slurm to reduce his thirst by 10." - puts "Enter 3 to give Hermes 9 receipts to keep track of Planet Express expenses." - puts "Enter 4 to give 3 unfulfilled work orders to Leela." - puts "Enter 5 to give Zoidberg a fish to eat to reduce his hunger by 12." - puts "What is your choice?" - make_choice - - - - - + check + while @stable == true + prompt + end end def make_choice - i = gets.chomp - if i == "1" - elsif i == "2" - elsif i == "3" - elsif i == "4" - elsif i == "5" - else - puts "Please enter a valid selection:" - make_choice + i = nil + while i != "1" || input != "2" || input != "3" || input != "4" || input != "5" + i = gets.chomp + if i == "1" + steal + elsif i == "2" + drink + elsif i == "3" + account + elsif i == "4" + deliver + elsif i == "5" + hunger + end end end @@ -75,12 +67,59 @@ def score puts "This is your total score: #{total_score}" end + def drink + @fry.thirst -= 10 + @leela.work += 3 + make_choice + end + + def deliver + @leela.work -= 3 + @hermes.receipts += 3 + make_choice + end + + def steal + @bender.horde += 7 + @leela.work += 7 + make_choice + end + + def hunger + @zoidberg.hunger -= 12 + @leela.work = 5 + make_choice + end + + def account + @hermes.receipts -= 9 + @bender.horde -= 9 + make_choice + end + + def prompt + puts "You are the new captain of the Planet Express." + puts "Its crew: Bender, Fry, Hermes, Leela, and Zoidberg are at your command." + puts "Your direction is crucial to their survival." + puts "If Bender's horde isn't big enough, Fry is too thirsty, Hermes has too few receipts, Leela has too much work, or Zoidberg is too hungry, the mission will be over." + puts "Enter 1 to let Bender steal 7 things to add to his horde." + puts "Enter 2 to give Fry a can of Slurm to reduce his thirst by 10." + puts "Enter 3 to give Hermes 9 receipts to keep track of Planet Express expenses." + puts "Enter 4 to give 3 unfulfilled work orders to Leela." + puts "Enter 5 to give Zoidberg a fish to eat to reduce his hunger by 12." + score + puts "What is your choice?" + make_choice + end + def check if @fry.thirst > 95 || @leela.work > 95 || @bender.horde < 5 || @zoidberg.hunger > 95 || @hermes.receipts < 5 - + puts "Your crew is close to failure" + make_choice end if @fry.thirst > 99 || @leela.work > 99 || @bender.horde < 1 || @zoidberg.hunger > 99 || @hermes.receipts < 1 + puts "Your crew is done for" @stable = false end end From a7fe15c9197227d27f15aba05e5c807c0ec28fa1 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Wed, 6 Apr 2016 13:57:46 -0700 Subject: [PATCH 08/11] Working on troubleshooting character action methods and navigating through the game --- lib/game.rb | 56 +++++++++++++++++++++++++++++++++++++++++++----- planetexpress.rb | 12 +++++------ 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/lib/game.rb b/lib/game.rb index b672ae0..b6b6d3a 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -1,7 +1,6 @@ require 'pry' module PlanetExpress class Game - attr_accessor :bender, :fry, :hermes, :leela, :zoidberg def initialize @bender = PlanetExpress::Bender.new(self) @@ -34,8 +33,8 @@ def do_play_game end def make_choice - i = nil - while i != "1" || input != "2" || input != "3" || input != "4" || input != "5" + check + while @stable == true i = gets.chomp if i == "1" steal @@ -48,6 +47,7 @@ def make_choice elsif i == "5" hunger end + prompt end end @@ -70,30 +70,76 @@ def score def drink @fry.thirst -= 10 @leela.work += 3 + + if @fry.thirst < 0 + @fry.thirst = 0 + end + + if @leela.work > 100 + @leela.work = 100 + end + + check make_choice end def deliver @leela.work -= 3 @hermes.receipts += 3 + + if @leela.work < 0 + @leela.work = 0 + end + + if @hermes.receipts > 100 + @hermes.receipts = 100 + end + check make_choice end def steal @bender.horde += 7 @leela.work += 7 + + if @leela.work > 100 + @leela.work = 100 + end + + if @bender.horde > 100 + @bender.horde = 100 + end + check make_choice end def hunger @zoidberg.hunger -= 12 @leela.work = 5 + + if @zoidberg.hunger < 0 + @zoidberg.hunger = 0 + end + + if @leela.work > 100 + @leela.work = 100 + end + check make_choice end def account @hermes.receipts -= 9 @bender.horde -= 9 + + if @hermes.receipts < 0 + @hermes.receipts = 0 + end + + if @bender.horde < 0 + @bender.horde == 0 + end + check make_choice end @@ -113,12 +159,12 @@ def prompt end def check - if @fry.thirst > 95 || @leela.work > 95 || @bender.horde < 5 || @zoidberg.hunger > 95 || @hermes.receipts < 5 + if @fry.thirst > 90 || @leela.work > 90 || @bender.horde < 10 || @zoidberg.hunger > 90 || @hermes.receipts < 10 puts "Your crew is close to failure" make_choice end - if @fry.thirst > 99 || @leela.work > 99 || @bender.horde < 1 || @zoidberg.hunger > 99 || @hermes.receipts < 1 + if @fry.thirst == 100 || @leela.work == 100 || @bender.horde == 0 || @zoidberg.hunger == 10 || @hermes.receipts == 0 puts "Your crew is done for" @stable = false end diff --git a/planetexpress.rb b/planetexpress.rb index 507ef6d..2a13dbd 100644 --- a/planetexpress.rb +++ b/planetexpress.rb @@ -1,9 +1,9 @@ -require_relative "./lib/bender" -require_relative "./lib/fry" -require_relative "./lib/game" -require_relative "./lib/hermes" -require_relative "./lib/leela" -require_relative "./lib/zoidberg" +require "./lib/bender" +require "./lib/fry" +require "./lib/game" +require "./lib/hermes" +require "./lib/leela" +require "./lib/zoidberg" game = PlanetExpress::Game.new game.play_game From a973ecd70aac1d92f3f18cad8fd87073acaa0380 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Wed, 6 Apr 2016 13:58:56 -0700 Subject: [PATCH 09/11] Removed pry line from file --- lib/game.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/game.rb b/lib/game.rb index b6b6d3a..2cc636b 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -1,4 +1,3 @@ -require 'pry' module PlanetExpress class Game From a510c3ac3d69bf83d48264a7db2e4f60be07cfbb Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Wed, 6 Apr 2016 14:54:09 -0700 Subject: [PATCH 10/11] Fix double enter problem but the game is still buggy. --- lib/game.rb | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/game.rb b/lib/game.rb index 2cc636b..c3bfbd5 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -34,16 +34,16 @@ def do_play_game def make_choice check while @stable == true - i = gets.chomp - if i == "1" + i = gets.chomp.to_i + if i == 1 steal - elsif i == "2" + elsif i == 2 drink - elsif i == "3" + elsif i == 3 account - elsif i == "4" + elsif i == 4 deliver - elsif i == "5" + elsif i == 5 hunger end prompt @@ -79,7 +79,7 @@ def drink end check - make_choice + prompt end def deliver @@ -94,7 +94,7 @@ def deliver @hermes.receipts = 100 end check - make_choice + prompt end def steal @@ -109,7 +109,7 @@ def steal @bender.horde = 100 end check - make_choice + prompt end def hunger @@ -124,7 +124,7 @@ def hunger @leela.work = 100 end check - make_choice + prompt end def account @@ -139,7 +139,7 @@ def account @bender.horde == 0 end check - make_choice + prompt end def prompt @@ -147,11 +147,11 @@ def prompt puts "Its crew: Bender, Fry, Hermes, Leela, and Zoidberg are at your command." puts "Your direction is crucial to their survival." puts "If Bender's horde isn't big enough, Fry is too thirsty, Hermes has too few receipts, Leela has too much work, or Zoidberg is too hungry, the mission will be over." - puts "Enter 1 to let Bender steal 7 things to add to his horde." - puts "Enter 2 to give Fry a can of Slurm to reduce his thirst by 10." - puts "Enter 3 to give Hermes 9 receipts to keep track of Planet Express expenses." - puts "Enter 4 to give 3 unfulfilled work orders to Leela." - puts "Enter 5 to give Zoidberg a fish to eat to reduce his hunger by 12." + puts "Enter 1 to let Bender steal 7 things to add to his horde and create 7 more work orders for Leela." + puts "Enter 2 to give Fry a can of Slurm to reduce his thirst by 10 and create 3 more work orders for Leela." + puts "Enter 3 to give Hermes 9 receipts to keep track of Planet Express expenses and reduce Bender's horde by 9 items." + puts "Enter 4 to have Leela complete 3 work orders." + puts "Enter 5 to give Zoidberg a fish to eat to reduce his hunger by 12 and give Leela 5 more work orders." score puts "What is your choice?" make_choice @@ -160,12 +160,15 @@ def prompt def check if @fry.thirst > 90 || @leela.work > 90 || @bender.horde < 10 || @zoidberg.hunger > 90 || @hermes.receipts < 10 puts "Your crew is close to failure" + prompt make_choice end if @fry.thirst == 100 || @leela.work == 100 || @bender.horde == 0 || @zoidberg.hunger == 10 || @hermes.receipts == 0 puts "Your crew is done for" @stable = false + prompt + make_choice end end From be9814fa7963beb5e29d657701720e38e731b1d5 Mon Sep 17 00:00:00 2001 From: Amy Hunter Date: Fri, 8 Apr 2016 09:45:09 -0700 Subject: [PATCH 11/11] Attempt to fix game logic in Ruby version. Trying to figure out how to create objects in Python. --- lib/game.rb | 142 ++++++++++++++++++++++++++-------------------- planetexpress.py | 0 pylib/bender.py | 0 pylib/fry.py | 0 pylib/hermes.py | 0 pylib/leela.py | 0 pylib/zoidberg.py | 0 7 files changed, 79 insertions(+), 63 deletions(-) create mode 100644 planetexpress.py create mode 100644 pylib/bender.py create mode 100644 pylib/fry.py create mode 100644 pylib/hermes.py create mode 100644 pylib/leela.py create mode 100644 pylib/zoidberg.py diff --git a/lib/game.rb b/lib/game.rb index c3bfbd5..8560194 100644 --- a/lib/game.rb +++ b/lib/game.rb @@ -25,118 +25,139 @@ def play_game end def do_play_game - check - while @stable == true + while @stable prompt end end def make_choice - check - while @stable == true - i = gets.chomp.to_i - if i == 1 - steal - elsif i == 2 - drink - elsif i == 3 - account - elsif i == 4 - deliver - elsif i == 5 - hunger - end + choice = gets.chomp.to_i + if choice == 1 + steal + elsif choice == 2 + drink + elsif choice == 3 + account + elsif choice == 4 + deliver + elsif choice == 5 + hunger + else + puts "Please make a valid selection" prompt end end def score - b = @bender.horde - f = @fry.thirst - h = @hermes.receipts - l = @leela.work - z = @zoidberg.hunger + bender_horde = @bender.horde + fry_thirst = @fry.thirst + hermes_receipts = @hermes.receipts + leela_work = @leela.work + zoidberg_hunger = @zoidberg.hunger puts "Crew Status:" - puts "Bender has #{b} items in his horde." - puts "Fry has #{f} units of thirst." - puts "Hermes has #{h} receipts to enter." - puts "Leela has #{l} unfulfilled work orders." - puts "Zoidberg has #{z} units of hunger." - total_score = b + f + h + l + z - puts "This is your total score: #{total_score}" + # puts "Bender has #{bender_horde} items in his horde." + # puts "Fry has #{fry_thirst} units of thirst." + # puts "Hermes has #{hermes_receipts} receipts to enter." + # puts "Leela has #{leela_work} unfulfilled work orders." + # puts "Zoidberg has #{zoidberg_hunger} units of hunger." + + total_score = bender_horde + fry_thirst + hermes_receipts + leela_work + zoidberg_hunger + + puts "Horde score for Bender (you want this to be high): #{bender_horde}" + puts "Thirst score for Fry (you want this to be low): #{fry_thirst}" + puts "Receipts score for Hermes (you want this to be high): #{hermes_receipts}" + puts "Work Order score for Leela (you want this to be low): #{leela_work}" + puts "Hunger score for Zoidberg (you want this to be low): #{zoidberg_hunger}" + puts "Total score: #{total_score}" end def drink - @fry.thirst -= 10 - @leela.work += 3 - - if @fry.thirst < 0 + check + if @fry.thirst <= 0 + check @fry.thirst = 0 + else + @fry.thirst -= 10 end - if @leela.work > 100 - @leela.work = 100 + if @leela.work <= 99 + check + @leela.work += 3 + elsif @leela.work >= 100 + @leela.work = 100 end - check + prompt end def deliver - @leela.work -= 3 - @hermes.receipts += 3 - - if @leela.work < 0 + check + if @leela.work <= 0 @leela.work = 0 + else + @leela.work -= 3 end - if @hermes.receipts > 100 + if @hermes.receipts >= 100 @hermes.receipts = 100 + else + @hermes.receipts += 3 end check prompt end def steal - @bender.horde += 7 - @leela.work += 7 - - if @leela.work > 100 + if @leela.work >= 100 @leela.work = 100 + else + @leela.work += 7 end - if @bender.horde > 100 + if @bender.horde >= 100 @bender.horde = 100 + else + @bender.horde += 7 end check prompt end def hunger - @zoidberg.hunger -= 12 - @leela.work = 5 - - if @zoidberg.hunger < 0 + check + if @zoidberg.hunger <= 0 @zoidberg.hunger = 0 + else + @zoidberg.hunger -= 12 end - if @leela.work > 100 + if @leela.work <= 99 + check + @leela.work += 5 + elsif @leela.work >= 100 @leela.work = 100 end - check + prompt end def account - @hermes.receipts -= 9 - @bender.horde -= 9 - + check if @hermes.receipts < 0 + check @hermes.receipts = 0 + else + @hermes.receipts -= 9 end - if @bender.horde < 0 - @bender.horde == 0 + if @bender.horde <= 0 + check + @bender.horde -= 9 + elsif @bender.horde < 0 + @bender.horde = 0 + else + end check prompt @@ -158,17 +179,12 @@ def prompt end def check - if @fry.thirst > 90 || @leela.work > 90 || @bender.horde < 10 || @zoidberg.hunger > 90 || @hermes.receipts < 10 + if ((@fry.thirst > 90 && @fry.thirst < 99) || (@leela.work > 90 && @leela.work < 99) || (@bender.horde < 10 && @bender.horde > 0) || (@zoidberg.hunger > 90 && @zoidberg.hunger < 99) || (@hermes.receipts < 10 && @hermes.receipts > 0)) puts "Your crew is close to failure" prompt - make_choice - end - - if @fry.thirst == 100 || @leela.work == 100 || @bender.horde == 0 || @zoidberg.hunger == 10 || @hermes.receipts == 0 + elsif @fry.thirst == 100 || @leela.work == 100 || @bender.horde == 0 || @zoidberg.hunger == 10 || @hermes.receipts == 0 puts "Your crew is done for" @stable = false - prompt - make_choice end end diff --git a/planetexpress.py b/planetexpress.py new file mode 100644 index 0000000..e69de29 diff --git a/pylib/bender.py b/pylib/bender.py new file mode 100644 index 0000000..e69de29 diff --git a/pylib/fry.py b/pylib/fry.py new file mode 100644 index 0000000..e69de29 diff --git a/pylib/hermes.py b/pylib/hermes.py new file mode 100644 index 0000000..e69de29 diff --git a/pylib/leela.py b/pylib/leela.py new file mode 100644 index 0000000..e69de29 diff --git a/pylib/zoidberg.py b/pylib/zoidberg.py new file mode 100644 index 0000000..e69de29