monkeymusic 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTBjY2IwY2ZiYTBkOGU3ZWExYzM1NmRiZjU3OGE4N2NkMTY4Y2FjYw==
4
+ NDEzMGMzYWVjZjkzYzdkMzk1YTZiYWZjMzViZjM3ZTJkODk5MzViNw==
5
5
  data.tar.gz: !binary |-
6
- MDZiMDI1YjFmMmRmOWZmYjI3NDlhNzNjNjlhZWFkZTk3ZDM4ZGIxNQ==
6
+ YWRmOGVmMWFlOTQ5NWQxMWY1N2ViYzE4ZjQ3ZGQ2NGJjZDFlZDRhNg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZGIzYmE3NDExNGFjYzUxMmZlNzAzMTJkNDk3NjA2OTk2ZTlkNWFjZDk1OWY4
10
- MmY4NTgxMTBlOTI2ZTIwNmUyYjk5YjE0NzIzYWViMzJiN2FjMjZjYmY3Yzhh
11
- OTE0NDg1ZjEwMGJjMWYxY2VjYTE3OWExMDIwYjBhYjNhNzA0Yjg=
9
+ NzM1MmQ0MzAyZGViMzNlNDUzMGQzNmE3OWViOTM3NmE3NjI4MzQzYjhhMWJj
10
+ YjI0NDM4ZjU2YzU4YzYwMmU5NmYxYWU5NmViYzhkYmFkZGExYzY4ZmM0NzFl
11
+ MGE1MDkwOWE1MWZhNDM2YWM0YmZlZjhjYTgzOWE1MzViMzFjMTc=
12
12
  data.tar.gz: !binary |-
13
- MDZiMTRlOGE3MWE4NGJjNGI2YWNlOTcyODM5ZDM0YjM5NzBhZmJiOWZlNWNh
14
- ZmQ4YWVkZDI2OGE4YmNmNjM3OWM1MDE3ZjBiMmJmYTk1N2RjNWE0MTgyYjJl
15
- ZWVmNjJlMGEyMTRlMGMwYjNkM2ZiNTMzMmI0NjE3OGJmODQxZGI=
13
+ NGE5YWRjMmY5NDRmNDg2ZTUwOGUxZWE3ZWMyNjIwZmFiOGJiZjI4OWE5OTNm
14
+ YWNhYTU5ZmJmZGVlNGU2ZjQ5NjBjMmNkNGU0NGQyNTRlZmEyNTI0NjBlZjMx
15
+ YmYwZmE1MzkxOGM2ZGY2MzNlNjQzNDcyY2JhOTM0MTc0OGE2ZWE=
data/demo_player ADDED
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'yaml'
4
+
5
+ @type = gets.chomp
6
+
7
+ if @type == "INIT"
8
+ @cache = {}
9
+ @cache[:monkey] = gets.chomp
10
+ @cache[:width] = Integer(gets.chomp)
11
+ @cache[:height] = Integer(gets.chomp)
12
+ @cache[:turn_limit] = Integer(gets.chomp)
13
+ [:top_tracks, :top_albums, :top_artists, :disliked_artists].each do |toplist|
14
+ @cache[toplist] = []
15
+ n = Integer(gets.chomp)
16
+ n.times { @cache[toplist] << gets.chomp }
17
+ @cache[:uris] = {}
18
+ end
19
+ File.open(File.join(Dir.getwd, "cache_p1"), "w+") {|f| f.write YAML::dump(@cache)}
20
+ exit
21
+ end
22
+
23
+ @cache = YAML::load(IO.read "cache_p1")
24
+
25
+ # Read indata
26
+ @turn = Integer(gets.chomp)
27
+ @remaining_capacity = Integer(gets.chomp)
28
+ @remaining_time = Integer(gets.chomp)
29
+
30
+ @unknown = []
31
+
32
+ # Read level
33
+ @tracks = []
34
+ @cache[:height].times do |y|
35
+ row = gets.chomp.split(',')
36
+ @cache[:width].times do |x|
37
+ thing = row[x]
38
+ if thing == @cache[:monkey]
39
+ @x, @y = x, y
40
+ elsif /spotify:track/.match(thing)
41
+ @unknown << thing unless @cache[:uris][thing]
42
+ @tracks << [x, y]
43
+ elsif thing == "U"
44
+ @user = [x, y]
45
+ end
46
+ end
47
+ end
48
+
49
+ #if uri = @unknown.pop
50
+ #puts uri
51
+ #$stdout.flush
52
+ #n = Integer(gets.chomp)
53
+ #if n == 1
54
+ #@cache[:uris][uri] = gets.chomp
55
+ #end
56
+ #File.open(File.join(Dir.getwd, "cache_p1"), "w+") {|f| f.write YAML::dump(@cache)}
57
+ #exit
58
+ #end
59
+
60
+ def move_toward(x, y)
61
+ if @x < x
62
+ "E"
63
+ elsif @x > x
64
+ "W"
65
+ elsif @y < y
66
+ "S"
67
+ elsif @y > y
68
+ "N"
69
+ end
70
+ end
71
+
72
+ def closest_track
73
+ curr_closest = @tracks.pop()
74
+ curr_smallest_distance = distance_to(*curr_closest)
75
+ @tracks.each do |track|
76
+ curr_distance = distance_to(*track)
77
+ if curr_distance < curr_smallest_distance
78
+ curr_closest = track
79
+ curr_smallest_distance = curr_distance
80
+ end
81
+ end
82
+ curr_closest
83
+ end
84
+
85
+ def distance_to(x, y)
86
+ (@x - x).abs + (@y - y).abs
87
+ end
88
+
89
+ if (@remaining_capacity > 0) && (not @tracks.empty?)
90
+ puts move_toward(*closest_track())
91
+ else
92
+ puts move_toward(*@user)
93
+ end
File without changes
@@ -1,10 +1,12 @@
1
1
  require 'optparse'
2
+ require 'fileutils'
2
3
 
3
4
  module MonkeyMusic
4
5
  class Runner
5
6
 
6
- @@default_level = 'bomberman2.rb'
7
- @@default_user = 'synth.yaml'
7
+ @@default_level = 'demo_level.rb'
8
+ @@default_user = 'demo_user.yaml'
9
+ @@default_player = 'demo_player'
8
10
 
9
11
  def initialize(arguments)
10
12
  @arguments = arguments
@@ -15,6 +17,36 @@ module MonkeyMusic
15
17
  end
16
18
 
17
19
  def run
20
+ if ARGV[0] == "demo"
21
+ puts "\tcreate ./#{@@default_level}"
22
+ FileUtils.cp(
23
+ File.join(
24
+ File.dirname(__FILE__),
25
+ "../../levels",
26
+ @@default_level
27
+ ),
28
+ Dir.getwd
29
+ )
30
+ puts "\tcreate ./#{@@default_user}"
31
+ FileUtils.cp(
32
+ File.join(
33
+ File.dirname(__FILE__),
34
+ "../../users",
35
+ @@default_user
36
+ ),
37
+ Dir.getwd
38
+ )
39
+ puts "\tcreate ./#{@@default_player}"
40
+ FileUtils.cp(
41
+ File.join(
42
+ File.dirname(__FILE__),
43
+ "../../",
44
+ @@default_player
45
+ ),
46
+ Dir.getwd
47
+ )
48
+ exit
49
+ end
18
50
  @opt_parser.parse!
19
51
  # Handle fallback to default level
20
52
  @level_file ||= File.join(
@@ -65,7 +97,7 @@ module MonkeyMusic
65
97
  end
66
98
 
67
99
  def init_parser(opts)
68
- opts.banner = 'Usage: monkeymusic -p PLAYER_FILE -n PLAYER_NAME [-u USER_FILE] [-l LEVEL_FILE]'
100
+ opts.banner = "Usage: monkeymusic [demo] [-p PLAYER_FILE -n PLAYER_NAME [-u USER_FILE] [-l LEVEL_FILE]]"
69
101
 
70
102
  opts.on('-p',
71
103
  '--player FILE',
@@ -104,7 +136,7 @@ module MonkeyMusic
104
136
 
105
137
  opts.on('-v', '--version',
106
138
  'Show the current version.') do |password|
107
- puts '0.0.5' # TODO: Find out how to extract version from GemSpec
139
+ puts '0.0.7' # TODO: Find out how to extract version from GemSpec
108
140
  exit
109
141
  end
110
142
 
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monkeymusic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Soderlund
@@ -53,22 +53,22 @@ files:
53
53
  - lib/monkey_music/ui/browser.rb
54
54
  - lib/monkey_music/ui/console.rb
55
55
  - levels/testmaze_30.rb
56
- - levels/bomberman2.rb
57
56
  - levels/the_last_crusade.rb
58
57
  - levels/testlevel.rb
58
+ - levels/demo_level.rb
59
59
  - levels/testmaze_10.rb
60
60
  - levels/testlevel_maze.rb
61
61
  - levels/travelling_salesmonkeys.rb
62
- - levels/demolevel.rb
63
62
  - levels/testmaze_20.rb
64
63
  - bin/monkeymusic-generate
65
64
  - bin/monkeymusic
66
- - users/synth.yaml
65
+ - users/demo_user.yaml
67
66
  - users/synth.rb
68
67
  - Gemfile.lock
69
68
  - Gemfile
70
69
  - README.markdown
71
70
  - LICENSE
71
+ - demo_player
72
72
  homepage: https://github.com/odsod/monkey-music
73
73
  licenses:
74
74
  - MIT
data/levels/demolevel.rb DELETED
@@ -1,23 +0,0 @@
1
- carrying_capacity 3
2
- metadata_requests_per_turn 2
3
- max_turns 100
4
-
5
- legend({
6
- "1" => Monkey.player(1),
7
- "2" => Monkey.player(2),
8
- "X" => Track.worth(-2),
9
- "x" => Track.worth(-1),
10
- "l" => Track.worth(1),
11
- "t" => Track.worth(2),
12
- "T" => Track.worth(3),
13
- "U" => User,
14
- "#" => Wall,
15
- })
16
-
17
- layout <<LAYOUT
18
- ....t..t...
19
- .#.......#.
20
- #..#1U2#..#
21
- .#X.....X#.
22
- .....t.....
23
- LAYOUT