local Randomizer = require 'tetris.randomizers.randomizer'

local RecursiveRandomizer = Randomizer:extend()

function RecursiveRandomizer:initialize()
	self.bag = {"I", "J", "L", "O", "S", "T", "Z"}
end

function RecursiveRandomizer:generatePiece()
	--if next(self.bag) == nil then
	--	self.bag = {"I", "J", "L", "O", "S", "T", "Z"}
	--end
	local x = math.random(table.getn(self.bag) + 1)
	while x == table.getn(self.bag) + 1 do
		--print("Refill piece pulled")
		table.insert(self.bag, "I")
		table.insert(self.bag, "J")
		table.insert(self.bag, "L")
		table.insert(self.bag, "O")
		table.insert(self.bag, "S")
		table.insert(self.bag, "T")
		table.insert(self.bag, "Z")
		x = math.random(table.getn(self.bag) + 1)
	end
	--print("Number of pieces in bag: "..table.getn(self.bag))
	--print("Bag: "..table.concat(self.bag, ", "))
	return table.remove(self.bag, x)
end

return RecursiveRandomizer
