Random map generation

This commit is contained in:
Anton Vakhrushev 2019-10-10 16:58:35 +03:00
parent 5292bc612c
commit e6f4e5ee29
3 changed files with 9 additions and 6 deletions

View File

@ -33,7 +33,7 @@
### Карта ### Карта
- [ ] Генерация карты - [x] Генерация карты
- [x] Скалы - [x] Скалы
- [ ] Вода - [ ] Вода
- [ ] Расчет пути с учетом препятствий - [ ] Расчет пути с учетом препятствий

View File

@ -2,7 +2,7 @@ require "colorize"
require "./game/**" require "./game/**"
require "./cli/**" require "./cli/**"
map = Game::Generator.make 5, 10 map = Game::Generator.make 5, 5
ts = Time.local.to_unix ts = Time.local.to_unix
world = Game::World.new map, ts world = Game::World.new map, ts
@ -69,7 +69,7 @@ def render_map(world)
printf "|" printf "|"
(0...cols).each do |y| (0...cols).each do |y|
tile = world.map.get(x, y) tile = world.map.get(x, y)
if tile.letter == 'f' if tile.letter == 'v'
printf "%6d|", world.map.get(x, y).cur printf "%6d|", world.map.get(x, y).cur
else else
printf " |", world.map.get(x, y).cur printf " |", world.map.get(x, y).cur

View File

@ -78,11 +78,14 @@ module Game
class Generator class Generator
def self.make(rows, cols) : Map def self.make(rows, cols) : Map
rnd = Random.new
map = Map.new(rows, cols) map = Map.new(rows, cols)
5.times do
pnt = Point.new(rnd.rand(0...rows), rnd.rand(0...cols))
cap = rnd.rand(2...6)
map.set(CrystalTile.new(pnt, cap * 50))
end
map.set(MainBaseTile.new(Point.new(0, 0))) map.set(MainBaseTile.new(Point.new(0, 0)))
map.set(CrystalTile.new(Point.new(1, 2), 100))
map.set(CrystalTile.new(Point.new(4, 2), 200))
map.set(CrystalTile.new(Point.new(3, 3), 100))
map map
end end
end end