pub fn is_comboable(&self) -> bool {
        if self.y == 0 {
            return false;
        }

        // garbage

        if self.kind != -1 && self.state == "IDLE" {
            return true;
        }

        if self.state == "LAND" && self.counter < LAND_TIME {
            return true;
        }

        return false;
    }
// a block is comboable when its:
// y isnt at the bottom of the blocks - darkened column,
// kind isnt invisible and its state is idle
// currently landing 
a block is comboable when its:
y isnt at the bottom of the blocks - darkened column,
kind isnt invisible and its state is idle
currently landing
a block is comboable when its : y isnt at the bottom of the blocks - darkened column kind isnt invisible and its state is idle currently landing
pub fn is_comboable(&self) -> bool {
        if self.y == 0 {
            return false;
        }
        // garbage
        if self.kind != -1 && self.state == "IDLE" {
            return true;
        }
        if self.state == "LAND" && self.counter < LAND_TIME {
            return true;
        }
        return false;
    }
pub fn is_comboable ( & self ) -> bool { if self . y == 0 { return false ; } // garbage if self . kind != - 1 && self . state == " " { return true ; } if self . state == " " && self . counter < LAND_TIME { return true ; } return false ; }
a block is comboable when its:
y isnt at the bottom of the blocks - darkened column,
kind isnt invisible and its state is idle
currently landing
a block is comboable when its : y isnt at the bottom of the blocks - darkened column kind isnt invisible and its state is idle currently landing
&self
&self