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 +7 -0
- data/bin/Finally_game_data +11 -0
- data/bin/player_list +11 -0
- data/bin/treasure_game +120 -0
- metadata +48 -0
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
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: []
|