sergeant_simple 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/Battleship.Rakefile +9 -0
- data/Rakefile +42 -0
- data/lib/sergeant_simple/sergeant_simple.rb +70 -0
- data/spec/sergeant_simple/sergeant_simple_spec.rb +7 -0
- data/spec/spec_helper.rb +4 -0
- metadata +61 -0
data/Battleship.Rakefile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/gempackagetask'
|
3
|
+
require 'spec/rake/spectask'
|
4
|
+
require 'battleship_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 = "sergeant_simple"
|
13
|
+
PKG_VERSION = "1.0"
|
14
|
+
PKG_TAG = "sergeant_simple-1_0"
|
15
|
+
PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
|
16
|
+
|
17
|
+
spec = Gem::Specification.new do |s|
|
18
|
+
s.name = PKG_NAME
|
19
|
+
s.version = PKG_VERSION
|
20
|
+
s.files = FileList['**/*'].to_a
|
21
|
+
s.require_path = 'lib'
|
22
|
+
s.test_files = Dir.glob('spec/*_spec.rb')
|
23
|
+
s.bindir = 'bin'
|
24
|
+
s.executables = []
|
25
|
+
|
26
|
+
s.summary = "Battleship Player:Sergeant Simple"
|
27
|
+
|
28
|
+
s.description = "A very simple player."
|
29
|
+
s.author = "Micah Martin"
|
30
|
+
s.email = "micah@8thlight.com"
|
31
|
+
end
|
32
|
+
|
33
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
34
|
+
pkg.need_zip = false
|
35
|
+
pkg.need_tar = false
|
36
|
+
end
|
37
|
+
|
38
|
+
desc "Submit your player"
|
39
|
+
task :submit do
|
40
|
+
submitter = BattleshipTournament::Submit.new(PKG_NAME)
|
41
|
+
submitter.submit
|
42
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module SergeantSimple
|
2
|
+
class SergeantSimple
|
3
|
+
|
4
|
+
def name
|
5
|
+
return "Sergeant Simple"
|
6
|
+
end
|
7
|
+
|
8
|
+
def new_game(opponent_name)
|
9
|
+
reset
|
10
|
+
end
|
11
|
+
|
12
|
+
def carrier_placement
|
13
|
+
return "A1 horizontal"
|
14
|
+
end
|
15
|
+
|
16
|
+
def battleship_placement
|
17
|
+
return "B1 horizontal"
|
18
|
+
end
|
19
|
+
|
20
|
+
def destroyer_placement
|
21
|
+
return "C1 horizontal"
|
22
|
+
end
|
23
|
+
|
24
|
+
def submarine_placement
|
25
|
+
return "D1 horizontal"
|
26
|
+
end
|
27
|
+
|
28
|
+
def patrolship_placement
|
29
|
+
return "E1 horizontal"
|
30
|
+
end
|
31
|
+
|
32
|
+
def next_target
|
33
|
+
target = target_for_current_shot
|
34
|
+
@shots_taken += 1
|
35
|
+
return target
|
36
|
+
end
|
37
|
+
|
38
|
+
def target_result(coordinates, was_hit, ship_sunk)
|
39
|
+
end
|
40
|
+
|
41
|
+
def enemy_targeting(coordinates)
|
42
|
+
end
|
43
|
+
|
44
|
+
def game_over(result, disqualification_reason=nil)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Non API methods #####################################
|
48
|
+
|
49
|
+
attr_reader :targets, :enemy_targeted_sectors
|
50
|
+
|
51
|
+
def initialize
|
52
|
+
reset
|
53
|
+
end
|
54
|
+
|
55
|
+
private ###############################################
|
56
|
+
|
57
|
+
def reset
|
58
|
+
@shots_taken = 0
|
59
|
+
end
|
60
|
+
|
61
|
+
ROWS = %w{ A B C D E F G H I J }
|
62
|
+
def target_for_current_shot
|
63
|
+
row = ROWS[(@shots_taken) / 10]
|
64
|
+
col = @shots_taken % 10 + 1
|
65
|
+
return "#{row}#{col}"
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sergeant_simple
|
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: 2008-11-03 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: A very simple player.
|
17
|
+
email: micah@8thlight.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- Battleship.Rakefile
|
26
|
+
- lib
|
27
|
+
- lib/sergeant_simple
|
28
|
+
- lib/sergeant_simple/sergeant_simple.rb
|
29
|
+
- Rakefile
|
30
|
+
- spec
|
31
|
+
- spec/sergeant_simple
|
32
|
+
- spec/sergeant_simple/sergeant_simple_spec.rb
|
33
|
+
- spec/spec_helper.rb
|
34
|
+
has_rdoc: false
|
35
|
+
homepage:
|
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:
|
56
|
+
rubygems_version: 1.2.0
|
57
|
+
signing_key:
|
58
|
+
specification_version: 2
|
59
|
+
summary: Battleship Player:Sergeant Simple
|
60
|
+
test_files: []
|
61
|
+
|