msp_ruby_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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35f214bef014a52c26fb2e13e865a4f91a3c7341
4
+ data.tar.gz: 2f4942a0ebd12907368a9366527133bd5ef9908c
5
+ SHA512:
6
+ metadata.gz: c46d1f863514f2802dd884da1d5fb48680a62823991cb0e662ae1a215c5a5ff1c855b1db9158c2db05ef9dc5b855952fdd94ae3cc04b7bbb4ee872e2c3156a19
7
+ data.tar.gz: 988936024c7a1bd5df2572f78e86f348c43c2606818feb7f12b0dea7f73c5e4aef386d065d1902a16458bf19b09b881bba6e60b50df28cf1d03d23d90ed06cf4
data/LICENSE ADDED
File without changes
data/README ADDED
File without changes
data/bin/players.csv ADDED
@@ -0,0 +1,3 @@
1
+ Alvin,100
2
+ Simon,60
3
+ Theo,125
data/bin/studio_game ADDED
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../lib/studio_game/game'
3
+ require_relative '../lib/studio_game/clumsy_player'
4
+ require_relative '../lib/studio_game/berserk_player'
5
+
6
+
7
+ klutz = StudioGame::ClumsyPlayer.new("Klutz", 105)
8
+ berserker = StudioGame::BerserkPlayer.new("berserker", 50)
9
+
10
+ knuckleheads = StudioGame::Game.new("Knuckleheads")
11
+
12
+ default_player_file = File.join(File.dirname(__FILE__), 'players.csv')
13
+ knuckleheads.load_players(ARGV.shift || default_player_file)
14
+
15
+ knuckleheads.add_player(klutz)
16
+ knuckleheads.add_player(berserker)
17
+
18
+ loop do
19
+ puts "\nHow many game rounds? ('quit' to exit)"
20
+ answer = gets.chomp.downcase
21
+ case answer
22
+ when /^\d+$/
23
+ knuckleheads.play(answer.to_i)
24
+ when 'quit', 'exit'
25
+ knuckleheads.print_stats
26
+ break
27
+ else
28
+ puts "Please enter a number or 'quit'"
29
+ end
30
+ end
31
+
32
+ knuckleheads.save_high_scores
33
+
@@ -0,0 +1,9 @@
1
+ module StudioGame
2
+
3
+ module Auditable
4
+
5
+ def audit
6
+ puts "Rolled a #{self.number} (#{self.class})"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,39 @@
1
+ require_relative 'player'
2
+
3
+ module StudioGame
4
+
5
+ class BerserkPlayer < Player
6
+
7
+ def initialize (name, health = 100)
8
+ super(name, health)
9
+ @w00t_count = 0
10
+
11
+ end
12
+
13
+ def berserk?
14
+ @w00t_count > 5
15
+
16
+ end
17
+
18
+ def w00t
19
+ super
20
+ @w00t_count += 1
21
+ puts "#{@name} is berserk!" if berserk?
22
+ end
23
+
24
+ def blam
25
+ if berserk?
26
+ w00t
27
+ else
28
+ super
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ if __FILE__ == $0
35
+ berserker = BerserkPlayer.new("berserker", 50)
36
+ 6.times { berserker.w00t }
37
+ 2.times { berserker.blam }
38
+ puts berserker.health
39
+ end
@@ -0,0 +1,40 @@
1
+ require_relative 'player'
2
+
3
+ module StudioGame
4
+
5
+ class ClumsyPlayer < Player
6
+ attr_reader :boost_factor
7
+
8
+ def initialize(name, health = 0, boost_factor = 1)
9
+ super(name, health)
10
+ @boost_factor = boost_factor
11
+ end
12
+
13
+ def w00t
14
+ @boost_factor.times {super}
15
+ end
16
+
17
+ def found_treasure(treasure)
18
+ damged_treasure = Treasure.new(treasure.name, treasure.points / 2)
19
+ super(damged_treasure)
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+ if __FILE__ == $0
26
+ clumsy = ClumsyPlayer.new("klutz")
27
+
28
+ hammer = Treasure.new(:hammer, 50)
29
+ clumsy.found_treasure(hammer)
30
+ clumsy.found_treasure(hammer)
31
+ clumsy.found_treasure(hammer)
32
+
33
+ crowbar = Treasure.new(:crowbar, 400)
34
+ clumsy.found_treasure(crowbar)
35
+
36
+ clumsy.each_found_treasure do |treasure|
37
+ puts "#{treasure.points} total #{treasure.name} points"
38
+ end
39
+ puts "#{clumsy.points} grand total points"
40
+ end
@@ -0,0 +1,28 @@
1
+ require_relative 'auditable'
2
+
3
+ module StudioGame
4
+
5
+ class Die
6
+ include Auditable
7
+
8
+ attr_reader :number
9
+
10
+ def initialize
11
+ roll
12
+ end
13
+
14
+ def roll
15
+ @number = rand(1..6)
16
+ audit
17
+ @number
18
+
19
+ end
20
+ end
21
+ end
22
+
23
+ if __FILE__ == $0
24
+ die = StudioGame::Die.new
25
+ puts die.roll
26
+ puts die.roll
27
+ puts die.roll
28
+ end
@@ -0,0 +1,108 @@
1
+ require_relative 'player'
2
+ require_relative 'die'
3
+ require_relative 'game_turn'
4
+ require_relative 'treasure_trove'
5
+
6
+ module StudioGame
7
+
8
+ class Game
9
+
10
+ attr_reader :title
11
+
12
+ def initialize(title)
13
+ @title = title
14
+ @players = []
15
+ end
16
+
17
+ def load_players(from_file)
18
+ File.readlines(from_file).each do |line|
19
+ add_player(Player.from_csv(line))
20
+ end
21
+ end
22
+
23
+
24
+ def add_player(player)
25
+ @players.push(player)
26
+ end
27
+
28
+ def print_stats()
29
+ strong_players, wimpy_players = @players.partition {|player| player.strong?}
30
+
31
+ puts "\n#{@title} Statistics:"
32
+ puts "\n#{strong_players.size} strong players:"
33
+ strong_players.each do |player|
34
+ print_name_and_health(player)
35
+ end
36
+
37
+ puts "\n#{wimpy_players.size} wimpy players:"
38
+ wimpy_players.each do |player|
39
+ print_name_and_health(player)
40
+ end
41
+
42
+ puts "\n#{@title} High Scores:"
43
+ @players.sort.each do |player|
44
+ high_score_entry(player)
45
+ end
46
+
47
+ @players.sort.each do |player|
48
+ puts "\n#{player.name}'s point totals:"
49
+ player.each_found_treasure do |treasure|
50
+ puts "#{treasure.points} total #{treasure.name} points"
51
+ end
52
+ puts "#{player.points} grand total points"
53
+ end
54
+
55
+ puts "\n#{total_points} total points from treasures found"
56
+
57
+ end
58
+
59
+ def save_high_scores(to_file = "high_scores.txt")
60
+ File.open(to_file, "w") do |file|
61
+ file.puts "#{@title} High Scores:"
62
+ @players.sort.each do |player|
63
+ high_score_entry(player)
64
+ end
65
+ end
66
+ end
67
+
68
+ def high_score_entry(player)
69
+ formatted_name = player.name.ljust(20, '.')
70
+ "#{formatted_name} #{player.score}"
71
+ end
72
+
73
+ def total_points
74
+ @players.reduce(0) {|sum, player| sum + player.points}
75
+ end
76
+
77
+
78
+ def print_name_and_health(player)
79
+ puts "#{player.name} (#{player.health})"
80
+ end
81
+
82
+ def play(rounds)
83
+ puts "There are #{@players.size} players in #{@title}:"
84
+ @players.each do |player|
85
+ puts player
86
+ end
87
+
88
+ treasures = TreasureTrove::TREASURES
89
+ puts "\nThere are #{treasures.size} treasures to be found:"
90
+
91
+ treasures.each do |treasure|
92
+ puts "A #{treasure.name} is worth #{treasure.points} points"
93
+ end
94
+
95
+ 1.upto(rounds) do |round|
96
+ if block_given?
97
+ break if yield
98
+ end
99
+ puts "\nRound #{round}:"
100
+ @players.each do |player|
101
+ GameTurn.take_turn(player)
102
+ puts player
103
+ end
104
+ end
105
+
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,30 @@
1
+ require_relative 'player'
2
+ require_relative 'die'
3
+ require_relative 'treasure_trove'
4
+ require_relative 'loaded_die'
5
+
6
+ module StudioGame
7
+
8
+ module GameTurn
9
+ def self.take_turn(player)
10
+ die = Die.new
11
+ case die.roll
12
+ when 5..6
13
+ player.w00t
14
+ when 1..2
15
+ player.blam
16
+ else
17
+ puts "#{player.name} was skipped."
18
+ end
19
+
20
+ treasure = TreasureTrove.random
21
+ player.found_treasure(treasure)
22
+ end
23
+
24
+ end
25
+ end
26
+
27
+ if __FILE__ == $0
28
+ player = StudioGame::Player.new("curly", 125)
29
+ StudioGame::GameTurn.take_turn(player)
30
+ end
@@ -0,0 +1,24 @@
1
+ require_relative 'auditable'
2
+
3
+ module StudioGame
4
+
5
+ class LoadedDie
6
+ include Auditable
7
+
8
+ attr_reader :number
9
+
10
+ def roll
11
+ numbers = [1, 1, 2, 5, 6, 6]
12
+ @numbers = numbers.sample
13
+ audit
14
+ @numbers
15
+ end
16
+ end
17
+ end
18
+
19
+ if __FILE__ == $0
20
+ die = StudioGame::LoadedDie.new
21
+ puts die.roll
22
+ puts die.roll
23
+ puts die.roll
24
+ end
@@ -0,0 +1,22 @@
1
+ module StudioGame
2
+
3
+ module Playable
4
+
5
+ def blam()
6
+ self.health -= 10
7
+ puts "#{name} got blammed!"
8
+
9
+ end
10
+
11
+ def w00t()
12
+ self.health += 15
13
+ puts "#{name} got w00ted!"
14
+
15
+ end
16
+
17
+ def strong?
18
+ health > 100
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,63 @@
1
+ require_relative 'treasure_trove'
2
+ require_relative 'playable'
3
+
4
+ module StudioGame
5
+
6
+ class Player
7
+ include Playable
8
+
9
+ attr_accessor :health
10
+ attr_accessor :name
11
+
12
+ def initialize(name, health = 100)
13
+ @name = name.capitalize
14
+ @health = health
15
+ @found_treasures = Hash.new(0)
16
+ end
17
+
18
+ def self.from_csv(string)
19
+ name, health = string.split(',')
20
+ player = Player.new(name, Integer(health))
21
+ end
22
+
23
+ def found_treasure(treasure)
24
+ @found_treasures[treasure.name] += treasure.points
25
+ puts "#{@name} found a #{treasure.name} worth #{treasure.points} points."
26
+ puts "#{@name}'s treasures: #{@found_treasures}"
27
+
28
+ end
29
+
30
+ def points
31
+ @found_treasures.values.reduce(0, :+)
32
+ end
33
+
34
+ def each_found_treasure
35
+ @found_treasures.each do |name, points|
36
+ yield Treasure.new(name, points)
37
+ end
38
+ end
39
+
40
+ def to_s()
41
+ "I'm #{@name} with a health of #{@health} and a score of #{score}."
42
+ end
43
+
44
+ def score()
45
+ @health + points
46
+ end
47
+
48
+ def <=>(other)
49
+ other.score <=> score
50
+ end
51
+
52
+ end
53
+ end
54
+
55
+ if __FILE__ == $0
56
+ player = Player.new("moe")
57
+ puts player.name
58
+ puts player.health
59
+ player.w00t
60
+ puts player.health
61
+ player.blam
62
+ puts player.health
63
+ end
@@ -0,0 +1,10 @@
1
+ module StudioGame
2
+ RSpec.configure do |config|
3
+ config.expect_with :rspec do |c|
4
+ c.syntax = [:should, :expect]
5
+ end
6
+ config.mock_with :rspec do |c|
7
+ c.syntax = [:should, :expect]
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ module StudioGame
2
+ Treasure = Struct.new(:name, :points)
3
+
4
+ module TreasureTrove
5
+ TREASURES = [
6
+ Treasure.new(:pie, 5),
7
+ Treasure.new(:bottle, 25),
8
+ Treasure.new(:hammer, 50),
9
+ Treasure.new(:skillet, 100),
10
+ Treasure.new(:broomstick, 200),
11
+ Treasure.new(:crowbar, 400),
12
+ ]
13
+
14
+ def self.random
15
+ TREASURES.sample
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,32 @@
1
+ require 'studio_game/berserk_player'
2
+
3
+ module StudioGame
4
+
5
+ describe BerserkPlayer do
6
+
7
+ before do
8
+ @initial_health = 50
9
+ @player = BerserkPlayer.new("berserker", @initial_health)
10
+ end
11
+
12
+ it "does not go berserk when w00ted up to 5 times" do
13
+ 1.upto(5) { @player.w00t }
14
+
15
+ @player.berserk?.should be_false
16
+ end
17
+
18
+ it "goes berserk when w00ted more than 5 times" do
19
+ 1.upto(6) { @player.w00t }
20
+
21
+ @player.berserk?.should be_true
22
+ end
23
+
24
+ it "gets w00ted instead of blammed when it's gone berserk" do
25
+ 1.upto(6) { @player.w00t }
26
+ 1.upto(2) { @player.blam }
27
+
28
+ @player.health.should == @initial_health + (8 * 15)
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,56 @@
1
+ require 'studio_game/clumsy_player'
2
+
3
+ module StudioGame
4
+
5
+ describe ClumsyPlayer do
6
+ before do
7
+ @player = ClumsyPlayer.new("klutz")
8
+ end
9
+
10
+ it "only gets half the point value for each treasure" do
11
+ @player.points.should == 0
12
+
13
+ hammer = Treasure.new(:hammer, 50)
14
+ @player.found_treasure(hammer)
15
+ @player.found_treasure(hammer)
16
+ @player.found_treasure(hammer)
17
+
18
+ @player.points.should == 75
19
+
20
+ crowbar = Treasure.new(:crowbar, 400)
21
+ @player.found_treasure(crowbar)
22
+
23
+ @player.points.should == 275
24
+
25
+ yielded = []
26
+ @player.each_found_treasure do |treasure|
27
+ yielded << treasure
28
+ end
29
+
30
+ yielded.should == [Treasure.new(:hammer, 75), Treasure.new(:crowbar, 200)]
31
+ end
32
+
33
+ context "with a boost factor" do
34
+
35
+ before do
36
+ @initial_health = 100
37
+ @boost_factor = 5
38
+ @player = ClumsyPlayer.new("klutz", @initial_health, @boost_factor)
39
+
40
+ end
41
+
42
+ it "has a boost factor" do
43
+ @player.boost_factor.should == 5
44
+
45
+ end
46
+
47
+ it "gets a boost factor number of w00ts when w00ted" do
48
+ @player.w00ted
49
+ @player.health.should == @initial_health + (15 * @boost_factor)
50
+
51
+ end
52
+
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,62 @@
1
+ require 'studio_game/game'
2
+
3
+ module StudioGame
4
+
5
+ describe Game do
6
+
7
+ before do
8
+ @game = Game.new("Knuckleheads")
9
+
10
+ @initial_health = 100
11
+ @player = Player.new("moe", @initial_health)
12
+
13
+ @game.add_player(@player)
14
+
15
+ end
16
+
17
+ it "w00ts the player if a high number is rolled" do
18
+ Die.any_instance.stub(:roll).and_return(5)
19
+ @game.play(2)
20
+ @player.health.should == @initial_health + (15 * 2)
21
+ end
22
+
23
+ it "does nothing when a medium number is rolled" do
24
+ Die.any_instance.stub(:roll).and_return(3)
25
+ @game.play(2)
26
+ @player.health.should == @initial_health
27
+ end
28
+
29
+ it "blams the player if a low number is rolled" do
30
+ Die.any_instance.stub(:roll).and_return(1)
31
+ @game.play(2)
32
+ @player.health.should == @initial_health - (10 * 2)
33
+ end
34
+
35
+ it "assigns a treasure for points during a player's turn" do
36
+ game = Game.new("Knuckleheads")
37
+ player = Player.new("moe")
38
+
39
+ game.add_player(player)
40
+
41
+ game.play(1)
42
+
43
+ player.points.should_not be_zero
44
+ end
45
+
46
+ it "computes total points as the sum of all player points" do
47
+ game = Game.new("Knuckleheads")
48
+
49
+ player1 = Player.new("moe")
50
+ player2 = Player.new("larry")
51
+
52
+ game.add_player(player1)
53
+ game.add_player(player2)
54
+
55
+ player1.found_treasure(Treasure.new(:hammer, 50))
56
+ player1.found_treasure(Treasure.new(:hammer, 50))
57
+ player2.found_treasure(Treasure.new(:crowbar, 400))
58
+
59
+ game.total_points.should == 500
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,143 @@
1
+ require 'studio_game/player'
2
+ require 'studio_game/spec_helper'
3
+ require 'studio_game/treasure_trove.rb'
4
+
5
+ module StudioGame
6
+
7
+ describe Player do
8
+
9
+ before do
10
+ @initial_health = 150
11
+ @player = Player.new("larry", @initial_health)
12
+ $stdout = StringIO.new
13
+ end
14
+
15
+ it "has a capitalized name" do
16
+ @player.name.should == "Larry"
17
+ end
18
+
19
+ it "has an initial health" do
20
+ @player.health.should == 150
21
+ end
22
+
23
+ it "computes a score as the sum of its health and points" do
24
+ @player.found_treasure(Treasure.new(:hammer, 50))
25
+ @player.found_treasure(Treasure.new(:hammer, 50))
26
+
27
+ @player.score.should == 250
28
+ end
29
+
30
+ it "can be created from a CSV string" do
31
+ player = Player.from_csv("larry", 150)
32
+
33
+ player.name.should == "Larry"
34
+ player.health.should == 150
35
+ end
36
+
37
+ it "has a string representation" do
38
+ @player.found_treasure(Treasure.new(:hammer, 50))
39
+ @player.found_treasure(Treasure.new(:hammer, 50))
40
+
41
+ @player.to_s.should == "I'm Larry with a health of 150 and a score of 250."
42
+ end
43
+
44
+ it "increases health by 15 when w00ted" do
45
+ @player.w00t
46
+
47
+ @player.health.should == @initial_health + 15
48
+ end
49
+
50
+ it "decreases health by 10 when blammed" do
51
+ @player.blam
52
+
53
+ @player.health.should == @initial_health - 10
54
+ end
55
+
56
+ context "created with a default health" do
57
+ before do
58
+ @player = Player.new("larry")
59
+ end
60
+
61
+ it "has a health of 100" do
62
+ @player.health.should == 100
63
+ end
64
+ end
65
+
66
+ context "player with health greater than 100" do
67
+ before do
68
+ @player = Player.new("larry", 150)
69
+ end
70
+
71
+ it "player is strong" do
72
+ @player.should be_strong
73
+ end
74
+ end
75
+
76
+ context "player with health equal to 100" do
77
+ before do
78
+ @player = Player.new("larry", 100)
79
+ end
80
+
81
+ it "player is wimpy" do
82
+ @player.should_not be_strong
83
+ end
84
+ end
85
+
86
+ context "in a collection of players" do
87
+ before do
88
+ @player1 = Player.new("moe", 100)
89
+ @player2 = Player.new("larry", 200)
90
+ @player3 = Player.new("curly", 300)
91
+
92
+ @players = [@player1, @player2, @player3]
93
+ end
94
+
95
+ it "is sorted by decreasing score" do
96
+ @players.sort.should == [@player3, @player2, @player1]
97
+ end
98
+ end
99
+
100
+ it "computes points as the sum of all treasure points" do
101
+ @player.points.should == 0
102
+
103
+ @player.found_treasure(Treasure.new(:hammer, 50))
104
+
105
+ @player.points.should == 50
106
+
107
+ @player.found_treasure(Treasure.new(:crowbar, 400))
108
+
109
+ @player.points.should == 450
110
+
111
+ @player.found_treasure(Treasure.new(:hammer, 50))
112
+
113
+ @player.points.should == 500
114
+ end
115
+
116
+ it "yields each found treasure and its total points" do
117
+ @player.found_treasure(Treasure.new(:skillet, 100))
118
+ @player.found_treasure(Treasure.new(:skillet, 100))
119
+ @player.found_treasure(Treasure.new(:hammer, 50))
120
+ @player.found_treasure(Treasure.new(:bottle, 5))
121
+ @player.found_treasure(Treasure.new(:bottle, 5))
122
+ @player.found_treasure(Treasure.new(:bottle, 5))
123
+ @player.found_treasure(Treasure.new(:bottle, 5))
124
+ @player.found_treasure(Treasure.new(:bottle, 5))
125
+
126
+ yielded = []
127
+ @player.each_found_treasure do |treasure|
128
+ yielded << treasure
129
+ end
130
+
131
+ yielded.should == [
132
+ Treasure.new(:skillet, 200),
133
+ Treasure.new(:hammer, 50),
134
+ Treasure.new(:bottle, 25)
135
+ ]
136
+ end
137
+
138
+ end
139
+ end
140
+
141
+
142
+
143
+
@@ -0,0 +1,57 @@
1
+ require 'studio_game/treasure_trove'
2
+
3
+ module StudioGame
4
+
5
+ describe Treasure do
6
+
7
+ before do
8
+ @treasure = Treasure.new(:hammer, 50)
9
+ end
10
+
11
+ it "has a name attribute" do
12
+ @treasure.name.should == :hammer
13
+ end
14
+
15
+ it "has a points attribute" do
16
+ @treasure.points.should == 50
17
+ end
18
+
19
+ end
20
+
21
+ describe TreasureTrove do
22
+
23
+ it "has six treasures" do
24
+ TreasureTrove::TREASURES.size.should == 6
25
+ end
26
+
27
+ it "has a pie worth 5 points" do
28
+ TreasureTrove::TREASURES[0].should == Treasure.new(:pie, 5)
29
+ end
30
+
31
+ it "has a bottle worth 25 points" do
32
+ TreasureTrove::TREASURES[1].should == Treasure.new(:bottle, 25)
33
+ end
34
+
35
+ it "has a hammer worth 50 points" do
36
+ TreasureTrove::TREASURES[2].should == Treasure.new(:hammer, 50)
37
+ end
38
+
39
+ it "has a skillet worth 100 points" do
40
+ TreasureTrove::TREASURES[3].should == Treasure.new(:skillet, 100)
41
+ end
42
+
43
+ it "has a broomstick worth 200 points" do
44
+ TreasureTrove::TREASURES[4].should == Treasure.new(:broomstick, 200)
45
+ end
46
+
47
+ it "has a crowbar worth 400 points" do
48
+ TreasureTrove::TREASURES[5].should == Treasure.new(:crowbar, 400)
49
+ end
50
+
51
+ it "returns a random treasure" do
52
+ treasure = TreasureTrove.random
53
+
54
+ TreasureTrove::TREASURES.should include(treasure)
55
+ end
56
+ end
57
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: msp_ruby_studio_game
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mihir Parikh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-14 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: mihir787@gmail.com
29
+ executables:
30
+ - studio_game
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE
35
+ - README
36
+ - bin/players.csv
37
+ - bin/studio_game
38
+ - lib/studio_game/auditable.rb
39
+ - lib/studio_game/berserk_player.rb
40
+ - lib/studio_game/clumsy_player.rb
41
+ - lib/studio_game/die.rb
42
+ - lib/studio_game/game.rb
43
+ - lib/studio_game/game_turn.rb
44
+ - lib/studio_game/loaded_die.rb
45
+ - lib/studio_game/playable.rb
46
+ - lib/studio_game/player.rb
47
+ - lib/studio_game/spec_helper.rb
48
+ - lib/studio_game/treasure_trove.rb
49
+ - spec/studio_game/berserk_player_spec.rb
50
+ - spec/studio_game/clumsy_player_spec.rb
51
+ - spec/studio_game/game_spec.rb
52
+ - spec/studio_game/player_spec.rb
53
+ - spec/studio_game/treasure_trove_spec.rb
54
+ homepage:
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '1.9'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.4.5
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Game using basic ruby techniques
78
+ test_files:
79
+ - spec/studio_game/berserk_player_spec.rb
80
+ - spec/studio_game/clumsy_player_spec.rb
81
+ - spec/studio_game/game_spec.rb
82
+ - spec/studio_game/player_spec.rb
83
+ - spec/studio_game/treasure_trove_spec.rb