From 9b057bdc9fc5af1490ae7364129d6ba79cc336ae Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 18 Oct 2019 13:57:49 +0300 Subject: [PATCH] Extract map generator --- Makefile | 9 +++++---- src/app.cr | 2 +- src/game/map.cr | 14 -------------- src/game/map_generator.cr | 13 +++++++++++++ 4 files changed, 19 insertions(+), 19 deletions(-) create mode 100644 src/game/map_generator.cr diff --git a/Makefile b/Makefile index 6218542..ad25a5a 100644 --- a/Makefile +++ b/Makefile @@ -23,10 +23,11 @@ format: run: format crystal run $(ENTRY_POINT) -.PHONY: spec -spec: format - crystal spec --warnings all --error-on-warnings --error-trace - .PHONY: ameba ameba: ameba src/ || true + +.PHONY: spec +spec: format ameba + crystal spec --warnings all --error-on-warnings --error-trace + diff --git a/src/app.cr b/src/app.cr index d4c562f..702691d 100644 --- a/src/app.cr +++ b/src/app.cr @@ -6,7 +6,7 @@ class App @ts : Game::TimePoint def initialize - @map = Game::Generator.make 6, 8, 10 + @map = Game::MapGenerator.make 6, 8, 10 @ts = Time.local.to_unix @world = Game::World.new @map, @ts @buildings = Game::BuildingFactory.new diff --git a/src/game/map.cr b/src/game/map.cr index 8a70c4a..ed4b321 100644 --- a/src/game/map.cr +++ b/src/game/map.cr @@ -60,18 +60,4 @@ module Game seek_tile end end - - class Generator - def self.make(rows, cols, deposits = 5) : Map - rnd = Random.new - map = Map.new(rows, cols) - deposits.times do - point = Point.new(rnd.rand(0...rows), rnd.rand(0...cols)) - cap = rnd.rand(2...6) - deposit = Deposit.new(Resource::Type::Crystals, cap * 50) - map.set DepositTile.new(point, deposit) - end - map - end - end end diff --git a/src/game/map_generator.cr b/src/game/map_generator.cr new file mode 100644 index 0000000..8a8f377 --- /dev/null +++ b/src/game/map_generator.cr @@ -0,0 +1,13 @@ +class Game::MapGenerator + def self.make(rows, cols, deposits = 5) : Map + rnd = Random.new + map = Map.new(rows, cols) + deposits.times do + point = Point.new(rnd.rand(0...rows), rnd.rand(0...cols)) + cap = rnd.rand(2...6) + deposit = Deposit.new(Resource::Type::Crystals, cap * 50) + map.set DepositTile.new(point, deposit) + end + map + end +end