treasure-game 0.0.1

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
+ SHA256:
3
+ metadata.gz: 92437753cf9c82a2b8e9a1b482740488ed8d884e57860ac0a6d3061c6aec6607
4
+ data.tar.gz: 7685a1412ebe60f52058e0372f0c22d0f8804b8a85207e0b502365413f8d29a7
5
+ SHA512:
6
+ metadata.gz: bde4995dc91409a9080f85b5a1757e86ba527c0f8e883b97720c0c622bbef37e4e0b9b72b9a86304b4a790b24d277174813f7ecf54f9f7a78859046a8900532d
7
+ data.tar.gz: f512f20cc1fe71938dba983ded5c860c5e1c332103bcea409c8cfa00dcfd311f68745d57d80657d96a23f5d48983c6ebea3f4dbbdc5421d6f7f49fab08dafd0b
@@ -0,0 +1,11 @@
1
+ Leonard,484,{:crowbar=>400}
2
+ Curly,460,{:crowbar=>400}
3
+ Jeff,459,{:crowbar=>400}
4
+ Yomama,287,{:broomstick=>200}
5
+ Moe,281,{:broomstick=>200}
6
+ Butterfinger,264.0,{:crowbar=>200.0}
7
+ Shemp,127.0,{:skillet=>50.0}
8
+ Mymama,126,{:hammer=>50}
9
+ Larry,123,{:hammer=>50}
10
+ Ragnar,103,{:hammer=>50}
11
+ Auntjaimama,80,{:pie=>5}
data/bin/player_list ADDED
@@ -0,0 +1,11 @@
1
+ Moe, normal
2
+ Curly, weird
3
+ Larry, berserker
4
+ Shemp, clumsy
5
+ YoMama, normal
6
+ MyMama, normal
7
+ Leonard , moral
8
+ Jeff, dumb as a rock
9
+ AuntJaimama, berserk
10
+ Ragnar, berserk
11
+ butterfinger, clumsy
data/bin/treasure_game ADDED
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pry'
3
+
4
+ require_relative '../lib/treasure_game/game'
5
+
6
+ class Init
7
+ @@default_player_file = File.join(File.dirname(__FILE__), 'player_list')
8
+
9
+ def initialize
10
+ @game = assign_game_name
11
+ @rounds = get_rounds
12
+ add_players_to_game(get_players)
13
+ @game.play(@rounds)
14
+ end
15
+
16
+ def ordinal(number)
17
+ abs_number = number.to_i.abs
18
+ if (11..13).include?(abs_number % 100)
19
+ "th"
20
+ else
21
+ case abs_number % 10
22
+ when 1; "st"
23
+ when 2; "nd"
24
+ when 3; "rd"
25
+ else "th"
26
+ end
27
+ end
28
+ end
29
+
30
+ def ordinalize(number)
31
+ "#{number}#{ordinal(number)}"
32
+ end
33
+
34
+ def assign_game_name
35
+ TreasureGame::Game.new(title: get_response("What would you like to name your game?"))
36
+ end
37
+
38
+ def get_rounds
39
+ get_response("How many rounds would you like to play? (enter a number)").to_i
40
+ end
41
+
42
+ def get_players
43
+ options = "Enter:\n(1) to load player data from a file\n" +
44
+ "(2) to enter them manually\n(q) to quit"
45
+ response = ""
46
+ until response == ("1" || "2" || "q" || "Q" )
47
+ puts options
48
+ response = gets.chomp
49
+ case response
50
+ when "1"
51
+ return load_player_file
52
+ when "2"
53
+ return get_players_from_input
54
+ when /(q|Q)/
55
+ abort("Sorry you changed your mind. Play again sometime.")
56
+ else
57
+ puts unknown_response(response, options)
58
+ end
59
+ end
60
+ end
61
+
62
+ def get_response(options)
63
+ puts options
64
+ gets.chomp
65
+ end
66
+
67
+ def unknown_response(response)
68
+ "Sorry, I don't recognize #{response} as a valid option."
69
+ end
70
+
71
+ def add_players_to_game(players)
72
+ players.each do |p|
73
+ name, type = p.split(",")
74
+ next unless name =~ /(\w+|\d+)/
75
+ type ||= ""
76
+ @game.add_player(name: name.strip, health: rand(50..100),
77
+ type: type.strip)
78
+ end
79
+ end
80
+
81
+ def load_player_file
82
+ options = "What's the name of your file?\nEnter file path, or\n" +
83
+ "(d) for default, or\n(q) to Quit"
84
+ loop do
85
+ file_name = get_response(options)
86
+ if file_name == "D" || file_name == "d"
87
+ return File.readlines(@@default_player_file)
88
+ elsif File.file?(file_name)
89
+ return File.readlines(file_name)
90
+ elsif file_name =~ /(Q|q)/
91
+ abort("Sorry we couldn't find your file. Try entering your players manually.")
92
+ else
93
+ #binding.pry
94
+ puts unknown_response(file_name)
95
+ end
96
+ end
97
+ end
98
+
99
+ def get_players_from_input
100
+ i = 0
101
+ players = []
102
+ player = ""
103
+ until player == ("P" || "p" || "Q" || "q")
104
+ i += 1
105
+ puts %Q(Enter the #{ordinalize(i)} player's info in this format: name,type.
106
+ (or Q to Quit, D when Done):)
107
+ player = gets.strip
108
+ case player
109
+ when ("D" || "d")
110
+ return players
111
+ when ("Q" || "q")
112
+ abort("Thanks for thinking about playing; please play again some other time.")
113
+ else
114
+ players << player
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ Init.new
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: treasure-game
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - kendocode
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-09-20 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Intro to Ruby course covering essential elements of language
14
+ email: info@kendocoding.com
15
+ executables:
16
+ - treasure_game
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - bin/Finally_game_data
21
+ - bin/player_list
22
+ - bin/treasure_game
23
+ homepage: https://github.com/kendocode/pragmatic-rubyI.git
24
+ licenses:
25
+ - MIT
26
+ metadata:
27
+ source_code_uri: https://github.com/kendocode/pragmatic-rubyI.git
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 2.7.6
45
+ signing_key:
46
+ specification_version: 4
47
+ summary: Pragmatic Studio Ruby I Project
48
+ test_files: []