treasure-game 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []