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