gary_studio_game 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bdc996100b6be28fc4dafac592ae3e1781d1d0cd
4
+ data.tar.gz: 553c8b3842031800ea797bf37cdbb87a4e882b8e
5
+ SHA512:
6
+ metadata.gz: 2d4da0569ce5c3fcb936316ed7ea50154339aba9b439e90f585db2e4adc0f484626e616e0ccbb82138794d1887a1d638c8f8fe68866fca109b4a031374daf4aa
7
+ data.tar.gz: a22ded46af32ab4e2f6860d16c86377ef644c8c7237bca023dd59e382021e47fc496b23e73baa441cbc54cb48f52a47659960ada989a36d5684f3281b0cafc5a
data/LICENSE ADDED
File without changes
data/README ADDED
File without changes
@@ -0,0 +1,3 @@
1
+ Alvin,100
2
+ Simon,60
3
+ Theo,125
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/studio_game/player'
4
+ require_relative '../lib/studio_game/clumsy_player'
5
+ require_relative '../lib/studio_game/berserk_player'
6
+ require_relative '../lib/studio_game/game'
7
+ require_relative '../lib/studio_game/die'
8
+
9
+
10
+ #
11
+ #player1 = Player.new("moe")
12
+ #player2 = Player.new("Larry",60)
13
+ #player3 = Player.new("Curly",125)
14
+ #player4 = Player.new("gary",200)
15
+
16
+ #player4 = ClumsyPlayer.new("klutz",105,5)
17
+ #berserker = BerserkPlayer.new("berserker",50)
18
+ knuckleheads = StudioGame::Game.new("Knuckleheads")
19
+
20
+ default_player_file = File.join(File.dirname(__FILE__), 'players.csv')
21
+ knuckleheads.load_players(ARGV.shift ||default_player_file)
22
+ #knuckleheads.add_player(player4)
23
+ #knuckleheads.add_player(berserker)
24
+ #knuckleheads.add_player(player1)
25
+ #knuckleheads.add_player(player2)
26
+ #knuckleheads.add_player(player3)
27
+ #knuckleheads.add_player(player4)
28
+
29
+
30
+ loop do
31
+
32
+ puts "\nHow many game rounds? ('quit' to exit)"
33
+ answer = gets.chomp.downcase
34
+
35
+ case answer
36
+ when /^\d+$/
37
+ knuckleheads.play(answer.to_i)
38
+ when "quit","exit"
39
+ knuckleheads.print_stats
40
+ break
41
+ else
42
+ puts "\nPlease enter a number or 'quit'"
43
+ end
44
+ end
45
+
46
+ knuckleheads.save_high_scores("high_score.txt")
47
+ #knuckleheads.play(10) do
48
+ # knuckleheads.total_points >= 2000
49
+ #end
50
+ #knuckleheads.print_stats
51
+
52
+ # player4 = Player.new("Gary")
53
+ # player5 = Player.new("Greg",25)
54
+ # yesmen = Game.new("Yesmen")
55
+ # yesmen.add_player(player2)
56
+ # yesmen.add_player(player4)
57
+ # yesmen.add_player(player5)
58
+ # yesmen.play
59
+
60
+ =begin
61
+
62
+ rescue Exception => e
63
+
64
+ end
65
+
66
+
67
+ player1.name = "Lawrence"
68
+
69
+
70
+ # puts player1.health.to_s + "=#{player1.name}"
71
+ # puts player2.health.to_s + "=#{player2.name}"
72
+ # puts player3.health.to_s + "=#{player3.name}"
73
+
74
+ players = [player1, player2, player3]
75
+
76
+
77
+ players.pop
78
+
79
+ player4 = Player.new("Shemp",90)
80
+ players << player4
81
+
82
+
83
+ puts "There are #{players.size} players in the game:"
84
+ players.each do |name|
85
+ puts name
86
+ end
87
+
88
+ =end
@@ -0,0 +1,7 @@
1
+ module StudioGame
2
+ module Auditable
3
+ def audit
4
+ puts "Rolled a #{self.number} (#{self.class})"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,38 @@
1
+ require_relative 'player'
2
+
3
+ module StudioGame
4
+ class BerserkPlayer < Player
5
+
6
+ def initialize(name,health=100)
7
+ super(name,health)
8
+ @w00t_count = 0
9
+ end
10
+
11
+ def berserk?
12
+ @w00t_count > 5
13
+ end
14
+
15
+ def w00t
16
+ super
17
+ @w00t_count += 1
18
+ puts "#{@name} is berserk!"if berserk?
19
+ end
20
+
21
+ def blam
22
+ if berserk?
23
+ w00t
24
+ else
25
+ super
26
+ end
27
+
28
+ end
29
+
30
+ end
31
+
32
+ if __FILE__ == $0
33
+ berserker = BerserkPlayer.new("berserker", 50)
34
+ 6.times { berserker.w00t }
35
+ 2.times { berserker.blam }
36
+ puts berserker.health
37
+ end
38
+ end
@@ -0,0 +1,39 @@
1
+ require_relative 'player'
2
+
3
+ module StudioGame
4
+ class ClumsyPlayer < Player
5
+ attr_reader :boost_factor
6
+
7
+ def initialize(name,health=100,boost_factor=1)
8
+ super(name,health)
9
+ @boost_factor = boost_factor
10
+ end
11
+
12
+ def found_treasure(treasure)
13
+ damaged_treasure = Treasure.new(treasure.name, treasure.points / 2.0)
14
+ super(damaged_treasure)
15
+ end
16
+
17
+ def woot
18
+ @boost_factor.times {super}
19
+ end
20
+
21
+ end
22
+ end
23
+
24
+ if __FILE__ == $0
25
+ clumsy = ClumsyPlayer.new("klutz", 105, 3)
26
+
27
+ hammer = Treasure.new(:hammer, 50)
28
+ clumsy.found_treasure(hammer)
29
+ clumsy.found_treasure(hammer)
30
+ clumsy.found_treasure(hammer)
31
+
32
+ crowbar = Treasure.new(:crowbar, 400)
33
+ clumsy.found_treasure(crowbar)
34
+
35
+ clumsy.each_found_treasure do |treasure|
36
+ puts "#{treasure.points} total #{treasure.name} points"
37
+ end
38
+ puts "#{clumsy.points} grand total points"
39
+ end
@@ -0,0 +1,18 @@
1
+ require_relative 'auditable'
2
+
3
+ module StudioGame
4
+ class Die
5
+ include Auditable
6
+ attr_reader :number
7
+
8
+ def initialize
9
+ roll
10
+ end
11
+
12
+ def roll
13
+ @number = rand(1..6)
14
+ audit
15
+ @number
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,122 @@
1
+ require_relative 'player'
2
+ require_relative 'game_turn'
3
+ require_relative 'treasure_trove'
4
+
5
+ module StudioGame
6
+ class Game
7
+
8
+ attr_reader :title
9
+
10
+ def initialize(title)
11
+ @title = title
12
+ @players = []
13
+ end
14
+
15
+ def load_players(filename)
16
+ File.readlines(filename).each do |line|
17
+ #puts line
18
+
19
+ add_player(Player.from_csv(line))
20
+ end
21
+ end
22
+
23
+ def save_high_scores(filename="high_scores.txt")
24
+ File.open(filename, "w") do |file|
25
+ file.puts "#{@title} High Scores:"
26
+ @players.sort.each do |player|
27
+ file.puts high_score_entry(player)
28
+ end
29
+ end
30
+ end
31
+
32
+ def high_score_entry(player)
33
+ format_string = "#{player.name}".ljust(25,".") + "#{player.health}"
34
+ format_string
35
+ end
36
+
37
+ def add_player(player)
38
+ @players << player
39
+ end
40
+
41
+
42
+ def play(rounds)
43
+
44
+ #puts "There are #{@players.size} players in #{@title}:"
45
+ # @players.each do |name|
46
+ # puts name
47
+ # end
48
+
49
+ 1.upto(rounds) do |round|
50
+ if block_given?
51
+ if yield
52
+ break
53
+ end
54
+ end
55
+
56
+ puts "\nRound No. #{round}"
57
+ @players.each do |player|
58
+ GameTurn.take_turn(player)
59
+ puts player
60
+ end
61
+ end
62
+
63
+ treasures = TreasureTrove::TREASURES
64
+ puts "\nThere are #{treasures.size} treasures to be found"
65
+ treasures.each do |treasure|
66
+ puts "A #{treasure.name} is worth #{treasure.points} points"
67
+ end
68
+ #if number_rolled >= 5
69
+ # player.w00t
70
+ # elsif number_rolled <3
71
+ # player.blam
72
+ # else
73
+ # puts "#{player.name} is skipped"
74
+ # end
75
+ #
76
+ end
77
+
78
+ def print_stats
79
+ puts "\nKnuckleheads Statistics:"
80
+ strong_players, wimpy_players = @players.partition {|player| player.strong?}
81
+
82
+ puts "\n#{strong_players.length} strong players:"
83
+ strong_players.each do |player|
84
+ print_name_and_health(player)
85
+ end
86
+
87
+ puts "\n#{wimpy_players.length} wimpy players:"
88
+ wimpy_players.each do |player|
89
+ print_name_and_health(player)
90
+ end
91
+
92
+ puts "\nKnuckleheads High Scores:"
93
+ @players.sort.each do |player|
94
+ puts high_score_entry(player)
95
+ end
96
+
97
+ @players.sort.each do |player|
98
+ puts "\n#{player.name}'s point totals:"
99
+ player.each_found_treasure do |treasure|
100
+ puts "#{treasure.name} = #{treasure.points}"
101
+ end
102
+ puts "#{player.points} grand total points"
103
+ end
104
+
105
+ puts "Total treasure points found: #{total_points}"
106
+
107
+ end
108
+
109
+ def print_name_and_health(player)
110
+ puts "#{player.name} (#{player.health})"
111
+ end
112
+
113
+ def total_points
114
+ @players.reduce(0) {|sum,player| sum + player.points}
115
+ end
116
+ end
117
+ end
118
+
119
+ if __FILE__ == $0
120
+ test_game = Game.new("Testing the Game")
121
+ puts test_game.title
122
+ end
@@ -0,0 +1,24 @@
1
+ require_relative 'player'
2
+ require_relative 'die'
3
+ require_relative 'loaded_die'
4
+ require_relative 'treasure_trove'
5
+
6
+ module StudioGame
7
+ module GameTurn
8
+ def self.take_turn(player)
9
+ die = Die.new
10
+
11
+ case die.roll
12
+ when 5..6
13
+ player.w00t
14
+ when 3..4
15
+ puts "#{player.name} was skipped"
16
+ when 1..2
17
+ player.blam
18
+ end
19
+
20
+ treasure = TreasureTrove.random
21
+ player.found_treasure(treasure)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ require_relative 'auditable'
2
+
3
+ module StudioGame
4
+ class LoadedDie
5
+ include Auditable
6
+
7
+ attr_reader :number
8
+
9
+ def roll
10
+ numbers = [1,1,2,5,6,6]
11
+ @number = numbers.sample
12
+ audit
13
+ @number
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,34 @@
1
+ module StudioGame
2
+ module Playable
3
+
4
+
5
+ def blam
6
+ self.health -= 10
7
+ puts "#{name} got blammed!"
8
+ end
9
+
10
+ def w00t
11
+ self.health += 15
12
+ puts "#{name} got w00ted!"
13
+ end
14
+
15
+ def strong?
16
+ health > 100
17
+
18
+ #@health > 100 ? true : false
19
+
20
+ #if @health <= 100
21
+ # false
22
+ # else
23
+ # true
24
+ # end
25
+
26
+ #case @health
27
+ # when 1..100
28
+ # false
29
+ # when > 100
30
+ # true
31
+ # end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,66 @@
1
+ require_relative 'treasure_trove'
2
+ require_relative 'playable'
3
+
4
+ module StudioGame
5
+ class Player
6
+ include Playable
7
+
8
+ def initialize(name,health=100)
9
+ @name = name.capitalize
10
+ @health = health
11
+ @found_treasures = Hash.new(0)
12
+ end
13
+
14
+ attr_accessor:health
15
+ attr_accessor :name
16
+
17
+ def to_s
18
+ "I'm #{@name} with health = #{@health}, points = #{points}, and score = #{score}."
19
+ #{ }"I'm #{@name} with a health of #{@health} and a score of #{score}"
20
+ end
21
+
22
+
23
+
24
+ def score
25
+ @health + points
26
+ end
27
+
28
+ def points
29
+ @found_treasures.values.reduce(0,:+)
30
+ end
31
+
32
+
33
+
34
+ def <=>(other_player)
35
+ other_player.score <=> score
36
+ end
37
+
38
+ def found_treasure(treasure)
39
+ @found_treasures[treasure.name] += treasure.points
40
+ puts "#{@name} found a #{treasure.name} worth #{treasure.points} points"
41
+ puts "#{@name}'s treasures: #{@found_treasures}"
42
+ end
43
+
44
+ def each_found_treasure
45
+ @found_treasures.each do |name,points|
46
+ yield Treasure.new(name,points)
47
+ end
48
+ end
49
+
50
+ def self.from_csv(csv_string)
51
+ name,health = csv_string.split(",")
52
+ Player.new(name,Integer(health))
53
+ end
54
+ end
55
+ end
56
+
57
+
58
+ if __FILE__ == $0
59
+ player = Player.new("moe")
60
+ puts player.name
61
+ puts player.health
62
+ player.w00t
63
+ puts player.health
64
+ player.blam
65
+ puts player.health
66
+ end
@@ -0,0 +1,20 @@
1
+ Treasure = Struct.new(:name,:points)
2
+
3
+ module StudioGame
4
+ module TreasureTrove
5
+
6
+ TREASURES = [
7
+ Treasure.new(:pie,5),
8
+ Treasure.new(:bottle,25),
9
+ Treasure.new(:hammer,50),
10
+ Treasure.new(:skillet,100),
11
+ Treasure.new(:broomstick,200),
12
+ Treasure.new(:crowbar,400)
13
+ ]
14
+
15
+ def self.random
16
+ TREASURES.sample
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,37 @@
1
+ require 'studio_game/berserk_player'
2
+
3
+ module StudioGame
4
+ describe BerserkPlayer do
5
+
6
+ before do
7
+ @initial_health = 50
8
+ @player = BerserkPlayer.new("berserker", @initial_health)
9
+ end
10
+
11
+ it "does not go berserk when w00ted up to 5 times" do
12
+ 1.upto(5) { @player.w00t }
13
+
14
+ @player.berserk?.should be_false
15
+
16
+ # or if using Rspec 3.0:
17
+ # @player.berserk?.should be_falsey
18
+ end
19
+
20
+ it "goes berserk when w00ted more than 5 times" do
21
+ 1.upto(6) { @player.w00t }
22
+
23
+ @player.berserk?.should be_true
24
+
25
+ # or if using Rspec 3.0:
26
+ # @player.berserk?.should be_truthy
27
+ end
28
+
29
+ it "gets w00ted instead of blammed when it's gone berserk" do
30
+ 1.upto(6) { @player.w00t }
31
+ 1.upto(2) { @player.blam }
32
+
33
+ @player.health.should == @initial_health + (8 * 15)
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ require 'studio_game/clumsy_player'
2
+
3
+ module StudioGame
4
+ describe ClumsyPlayer do
5
+ before do
6
+ @player = ClumsyPlayer.new("klutz")
7
+ end
8
+
9
+ it "only gets half the point value for each treasure" do
10
+ @player.points.should == 0
11
+
12
+ hammer = Treasure.new(:hammer, 50)
13
+ @player.found_treasure(hammer)
14
+ @player.found_treasure(hammer)
15
+ @player.found_treasure(hammer)
16
+
17
+ @player.points.should == 75
18
+
19
+ crowbar = Treasure.new(:crowbar, 400)
20
+ @player.found_treasure(crowbar)
21
+
22
+ @player.points.should == 275
23
+
24
+ yielded = []
25
+ @player.each_found_treasure do |treasure|
26
+ yielded << treasure
27
+ end
28
+
29
+ yielded.should == [Treasure.new(:hammer, 75), Treasure.new(:crowbar, 200)]
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,70 @@
1
+ require 'studio_game/game'
2
+
3
+ module StudioGame
4
+ describe Game do
5
+
6
+ before do
7
+ @game = Game.new("Knuckleheads")
8
+
9
+ @initial_health = 100
10
+ @player = Player.new("moe", @initial_health)
11
+
12
+ @game.add_player(@player)
13
+ end
14
+
15
+ it "w00ts the player if a high number is rolled" do
16
+ Die.any_instance.stub(:roll).and_return(5)
17
+
18
+ @game.play(2)
19
+
20
+ @player.health.should == @initial_health + (15 * 2)
21
+ end
22
+
23
+ it "skips the player if a medium number is rolled" do
24
+ Die.any_instance.stub(:roll).and_return(3)
25
+
26
+ @game.play(2)
27
+
28
+ @player.health.should == @initial_health
29
+ end
30
+
31
+ it "blams the player if a low number is rolled" do
32
+ Die.any_instance.stub(:roll).and_return(1)
33
+
34
+ @game.play(2)
35
+
36
+ @player.health.should == @initial_health - (10 * 2)
37
+ end
38
+
39
+ it "assigns a treasure for points during a player's turn" do
40
+ game = Game.new("Knuckleheads")
41
+ player = Player.new("moe")
42
+
43
+ game.add_player(player)
44
+
45
+ game.play(1)
46
+
47
+ player.points.should_not be_zero
48
+
49
+ # or use alternate expectation syntax:
50
+ # expect(player.points).not_to be_zero
51
+ end
52
+
53
+ it "computes total points as the sum of all player points" do
54
+ game = Game.new("Knuckleheads")
55
+
56
+ player1 = Player.new("moe")
57
+ player2 = Player.new("larry")
58
+
59
+ game.add_player(player1)
60
+ game.add_player(player2)
61
+
62
+ player1.found_treasure(Treasure.new(:hammer, 50))
63
+ player1.found_treasure(Treasure.new(:hammer, 50))
64
+ player2.found_treasure(Treasure.new(:crowbar, 400))
65
+
66
+ game.total_points.should == 500
67
+ end
68
+
69
+ end
70
+ end
@@ -0,0 +1,121 @@
1
+ require 'studio_game/player'
2
+
3
+ module StudioGame
4
+ describe Player do
5
+ before do
6
+ $stdout = StringIO.new
7
+ @initial_health = 150
8
+ @player = Player.new("larry",@initial_health)
9
+ end
10
+
11
+ it "yields a player object" do
12
+ player = Player.from_csv("gary,30")
13
+ player.name.should == "Gary"
14
+ player.health.should == 30
15
+ end
16
+
17
+ it "has a capitalized name" do
18
+ @player.name.should == "Larry"
19
+ end
20
+
21
+ it "has an initial health" do
22
+ @player.health.should == 150
23
+ end
24
+
25
+ it "has a string representation" do
26
+ @player.found_treasure(Treasure.new(:hammer, 50))
27
+ @player.found_treasure(Treasure.new(:hammer, 50))
28
+
29
+ @player.to_s.should == "I'm Larry with health = 150, points = 100, and score = 250."
30
+ end
31
+
32
+ it "computes a score as the sum of its health and points" do
33
+ @player.found_treasure(Treasure.new(:hammer, 50))
34
+ @player.found_treasure(Treasure.new(:hammer, 50))
35
+
36
+ @player.score.should == 250
37
+ end
38
+
39
+ it "increases health by 15 when w00ted" do
40
+ @player.w00t
41
+ @player.health.should == 165
42
+ end
43
+
44
+ it "decreases health by 10 when blammed" do
45
+ @player.blam
46
+ @player.health.should == 140
47
+ end
48
+
49
+ it "computes points as the sum of all treasure points" do
50
+ @player.points.should == 0
51
+
52
+ @player.found_treasure(Treasure.new(:hammer, 50))
53
+
54
+ @player.points.should == 50
55
+
56
+ @player.found_treasure(Treasure.new(:crowbar, 400))
57
+
58
+ @player.points.should == 450
59
+
60
+ @player.found_treasure(Treasure.new(:hammer, 50))
61
+
62
+ @player.points.should == 500
63
+ end
64
+
65
+ it "yields each found treasure and its total points" do
66
+ @player.found_treasure(Treasure.new(:skillet, 100))
67
+ @player.found_treasure(Treasure.new(:skillet, 100))
68
+ @player.found_treasure(Treasure.new(:hammer, 50))
69
+ @player.found_treasure(Treasure.new(:bottle, 5))
70
+ @player.found_treasure(Treasure.new(:bottle, 5))
71
+ @player.found_treasure(Treasure.new(:bottle, 5))
72
+ @player.found_treasure(Treasure.new(:bottle, 5))
73
+ @player.found_treasure(Treasure.new(:bottle, 5))
74
+
75
+ yielded = []
76
+ @player.each_found_treasure do |treasure|
77
+ yielded << treasure
78
+ end
79
+
80
+ yielded.should == [
81
+ Treasure.new(:skillet, 200),
82
+ Treasure.new(:hammer, 50),
83
+ Treasure.new(:bottle, 25)
84
+ ]
85
+ end
86
+
87
+ context "with a health greater than 100" do
88
+ before do
89
+ @player = Player.new("larry",150)
90
+ end
91
+
92
+ it "is strong" do
93
+ @player.should be_strong
94
+ end
95
+ end
96
+
97
+ context "with a health less than or equal to 100" do
98
+ before do
99
+ @player = Player.new("larry",100)
100
+ end
101
+
102
+ it "is is wimpy" do
103
+ @player.should_not be_strong
104
+ end
105
+ end
106
+
107
+ context "in a collection of players" do
108
+ before do
109
+ @player1 = Player.new("moe", 100)
110
+ @player2 = Player.new("larry", 200)
111
+ @player3 = Player.new("curly", 300)
112
+
113
+ @players = [@player1, @player2, @player3]
114
+ end
115
+
116
+ it "is sorted by decreasing score" do
117
+ @players.sort.should == [@player3, @player2, @player1]
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,60 @@
1
+ require 'studio_game/treasure_trove'
2
+
3
+ module StudioGame
4
+ describe Treasure do
5
+
6
+ before do
7
+ @treasure = Treasure.new(:hammer, 50)
8
+ end
9
+
10
+ it "has a name attribute" do
11
+ @treasure.name.should == :hammer
12
+ end
13
+
14
+ it "has a points attribute" do
15
+ @treasure.points.should == 50
16
+ end
17
+
18
+ end
19
+
20
+ describe TreasureTrove do
21
+
22
+ it "has six treasures" do
23
+ TreasureTrove::TREASURES.size.should == 6
24
+ end
25
+
26
+ it "has a pie worth 5 points" do
27
+ TreasureTrove::TREASURES[0].should == Treasure.new(:pie, 5)
28
+ end
29
+
30
+ it "has a bottle worth 25 points" do
31
+ TreasureTrove::TREASURES[1].should == Treasure.new(:bottle, 25)
32
+ end
33
+
34
+ it "has a hammer worth 50 points" do
35
+ TreasureTrove::TREASURES[2].should == Treasure.new(:hammer, 50)
36
+ end
37
+
38
+ it "has a skillet worth 100 points" do
39
+ TreasureTrove::TREASURES[3].should == Treasure.new(:skillet, 100)
40
+ end
41
+
42
+ it "has a broomstick worth 200 points" do
43
+ TreasureTrove::TREASURES[4].should == Treasure.new(:broomstick, 200)
44
+ end
45
+
46
+ it "has a crowbar worth 400 points" do
47
+ TreasureTrove::TREASURES[5].should == Treasure.new(:crowbar, 400)
48
+ end
49
+
50
+ it "returns a random treasure" do
51
+ treasure = TreasureTrove.random
52
+
53
+ TreasureTrove::TREASURES.should include(treasure)
54
+
55
+ # or use alternate expectation syntax:
56
+ # expect(TreasureTrove::TREASURES).to include(treasure)
57
+ end
58
+
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gary_studio_game
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Gary Ravago
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: ''
28
+ email: gary.ravago@gmail.com
29
+ executables:
30
+ - studio_game
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - bin/players.csv
35
+ - bin/studio_game
36
+ - lib/studio_game/auditable.rb
37
+ - lib/studio_game/berserk_player.rb
38
+ - lib/studio_game/clumsy_player.rb
39
+ - lib/studio_game/die.rb
40
+ - lib/studio_game/game.rb
41
+ - lib/studio_game/game_turn.rb
42
+ - lib/studio_game/loaded_die.rb
43
+ - lib/studio_game/playable.rb
44
+ - lib/studio_game/player.rb
45
+ - lib/studio_game/treasure_trove.rb
46
+ - spec/studio_game/berserk_player_spec.rb
47
+ - spec/studio_game/clumsy_player_spec.rb
48
+ - spec/studio_game/game_spec.rb
49
+ - spec/studio_game/player_spec.rb
50
+ - spec/studio_game/treasure_trove_spec.rb
51
+ - LICENSE
52
+ - README
53
+ homepage: http://wordpress.squawkasian.com
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '1.9'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.0.14
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: Gary's Studio Game Gem
77
+ test_files:
78
+ - spec/studio_game/berserk_player_spec.rb
79
+ - spec/studio_game/clumsy_player_spec.rb
80
+ - spec/studio_game/game_spec.rb
81
+ - spec/studio_game/player_spec.rb
82
+ - spec/studio_game/treasure_trove_spec.rb