hangman_letter_letdown 1.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.
- data/Hangman.Rakefile +12 -0
- data/Rakefile +47 -0
- data/lib/letter_letdown/letter_letdown.rb +52 -0
- data/spec/letter_letdown/letter_letdown_spec.rb +12 -0
- data/spec/spec_helper.rb +4 -0
- metadata +61 -0
data/Hangman.Rakefile
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#
|
|
2
|
+
# DO NOT tamper with this file. It will lead to disqualification.
|
|
3
|
+
|
|
4
|
+
require 'rake'
|
|
5
|
+
require 'spec/rake/spectask'
|
|
6
|
+
|
|
7
|
+
desc "Run all examples with RCov"
|
|
8
|
+
Spec::Rake::SpecTask.new('spec_with_rcov') do |t|
|
|
9
|
+
t.spec_files = FileList['spec/**/*.rb']
|
|
10
|
+
t.rcov = true
|
|
11
|
+
t.rcov_opts = ['-t', '--exclude', 'spec,rcov', '--no-html']
|
|
12
|
+
end
|
data/Rakefile
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'rake/gempackagetask'
|
|
3
|
+
require 'spec/rake/spectask'
|
|
4
|
+
require 'hangman_tournament/submit'
|
|
5
|
+
|
|
6
|
+
desc "Run all specs"
|
|
7
|
+
Spec::Rake::SpecTask.new('spec') do |t|
|
|
8
|
+
t.spec_files = FileList['spec/**/*.rb']
|
|
9
|
+
t.rcov = false
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
PKG_NAME = "letter_letdown"
|
|
13
|
+
PKG_VERSION = "1.0"
|
|
14
|
+
|
|
15
|
+
spec = Gem::Specification.new do |s|
|
|
16
|
+
s.name = "hangman_#{PKG_NAME}"
|
|
17
|
+
s.version = PKG_VERSION
|
|
18
|
+
s.files = Dir.glob('**/*').reject{ |f| f =~ /pkg/ }
|
|
19
|
+
s.require_path = 'lib'
|
|
20
|
+
s.test_files = Dir.glob('spec/*_spec.rb')
|
|
21
|
+
s.bindir = 'bin'
|
|
22
|
+
s.executables = []
|
|
23
|
+
s.summary = "Hangman Player:Letter Letdown"
|
|
24
|
+
s.rubyforge_project = "sparring"
|
|
25
|
+
s.homepage = "http://sparring.rubyforge.org/"
|
|
26
|
+
|
|
27
|
+
###########################################
|
|
28
|
+
##
|
|
29
|
+
## You are encouraged to modify the following
|
|
30
|
+
## spec attributes.
|
|
31
|
+
##
|
|
32
|
+
###########################################
|
|
33
|
+
s.description = "An aweful hangman player"
|
|
34
|
+
s.author = "Micah Martin"
|
|
35
|
+
s.email = "micah@8thight.com"
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
|
39
|
+
pkg.need_zip = false
|
|
40
|
+
pkg.need_tar = false
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
desc "Submit your player"
|
|
44
|
+
task :submit do
|
|
45
|
+
submitter = HangmanTournament::Submit.new("hangman_#{PKG_NAME}")
|
|
46
|
+
submitter.submit
|
|
47
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module LetterLetdown
|
|
2
|
+
class LetterLetdown
|
|
3
|
+
|
|
4
|
+
# You may initialize you player but the the initialize method must take NO paramters.
|
|
5
|
+
# The player will only be instantiated once, and will play many games.
|
|
6
|
+
def initialize
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
# Before starting a game, this method will be called to inform the player of all the possible words that may be
|
|
10
|
+
# played.
|
|
11
|
+
def word_list=(list)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# a new game has started. The number of guesses the player has left is passed in (default 6),
|
|
15
|
+
# in case you want to keep track of it.
|
|
16
|
+
def new_game(guesses_left)
|
|
17
|
+
@left = ('a'..'z').to_a
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Each turn your player must make a guess. The word will be a bunch of underscores, one for each letter in the word.
|
|
21
|
+
# after your first turn, correct guesses will appear in the word parameter. If the word was "shoes" and you guessed "s",
|
|
22
|
+
# the word parameter would be "s___s", if you then guess 'o', the next turn it would be "s_o_s", and so on.
|
|
23
|
+
# guesses_left is how many guesses you have left before your player is hung.
|
|
24
|
+
def guess(word, guesses_left)
|
|
25
|
+
@left.shift
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# notifies you that your last guess was incorrect, and passes your guess back to the method
|
|
29
|
+
def incorrect_guess(guess)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# notifies you that your last guess was correct, and passes your guess back to the method
|
|
33
|
+
def correct_guess(guess)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# you lost the game. The reason is in the reason parameter
|
|
37
|
+
def fail(reason)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# The result of the game, it'll be one of 'win', 'loss', or 'fail'.
|
|
41
|
+
# The spelled out word will be provided regardless of the result.
|
|
42
|
+
def game_result(result, word)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# your score for this game.
|
|
46
|
+
# You get 10 points per guess you have left,
|
|
47
|
+
# lose 5 points for each unsolved space in the word
|
|
48
|
+
# and lose 100 points for failing to complete your guesses because of an error in your code.
|
|
49
|
+
def game_score(score)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
|
|
2
|
+
require 'letter_letdown/letter_letdown'
|
|
3
|
+
|
|
4
|
+
describe LetterLetdown::LetterLetdown do
|
|
5
|
+
|
|
6
|
+
it "should be instantiable with no paramters" do
|
|
7
|
+
|
|
8
|
+
lambda { LetterLetdown::LetterLetdown.new }.should_not raise_error
|
|
9
|
+
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: hangman_letter_letdown
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: "1.0"
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Micah Martin
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2009-08-17 00:00:00 -05:00
|
|
13
|
+
default_executable:
|
|
14
|
+
dependencies: []
|
|
15
|
+
|
|
16
|
+
description: An aweful hangman player
|
|
17
|
+
email: micah@8thight.com
|
|
18
|
+
executables: []
|
|
19
|
+
|
|
20
|
+
extensions: []
|
|
21
|
+
|
|
22
|
+
extra_rdoc_files: []
|
|
23
|
+
|
|
24
|
+
files:
|
|
25
|
+
- Hangman.Rakefile
|
|
26
|
+
- lib
|
|
27
|
+
- lib/letter_letdown
|
|
28
|
+
- lib/letter_letdown/letter_letdown.rb
|
|
29
|
+
- Rakefile
|
|
30
|
+
- spec
|
|
31
|
+
- spec/letter_letdown
|
|
32
|
+
- spec/letter_letdown/letter_letdown_spec.rb
|
|
33
|
+
- spec/spec_helper.rb
|
|
34
|
+
has_rdoc: false
|
|
35
|
+
homepage: http://sparring.rubyforge.org/
|
|
36
|
+
post_install_message:
|
|
37
|
+
rdoc_options: []
|
|
38
|
+
|
|
39
|
+
require_paths:
|
|
40
|
+
- lib
|
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: "0"
|
|
46
|
+
version:
|
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
48
|
+
requirements:
|
|
49
|
+
- - ">="
|
|
50
|
+
- !ruby/object:Gem::Version
|
|
51
|
+
version: "0"
|
|
52
|
+
version:
|
|
53
|
+
requirements: []
|
|
54
|
+
|
|
55
|
+
rubyforge_project: sparring
|
|
56
|
+
rubygems_version: 1.3.1
|
|
57
|
+
signing_key:
|
|
58
|
+
specification_version: 2
|
|
59
|
+
summary: Hangman Player:Letter Letdown
|
|
60
|
+
test_files: []
|
|
61
|
+
|