monkeymusic 0.0.5 → 0.0.7

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 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