local Randomizer = require 'tetris.randomizers.randomizer' local Bag7NoSZOStartRandomizer = Randomizer:extend() function Bag7NoSZOStartRandomizer:shuffleBag() local b = self.bag local ln = #b for i = 1, ln do local j = math.random(i, ln) b[i], b[j] = b[j], b[i] end end local function isnotSZO(x) return not(x == "S" or x == "Z" or x == "O") end function Bag7NoSZOStartRandomizer:initialize() self.bag = {"I", "J", "L", "O", "S", "T", "Z"} repeat self:shuffleBag() until isnotSZO(self.bag[7]) end function Bag7NoSZOStartRandomizer:generatePiece() if #self.bag == 0 then self.bag = {"I", "J", "L", "O", "S", "T", "Z"} self:shuffleBag() end return table.remove(self.bag) end return Bag7NoSZOStartRandomizer