/*! * * @file invaderGrids.h * @author RUBINI Thomas * @date January 2022 * @version 1.0 * @brief invader matrix structure * */ #include #include "invadersGrid.h" bool InvadersColumn::hasNoValid() const { return getOutterInvader()==size(); } unsigned InvadersColumn::getOutterInvader() const { unsigned i=size(); while(i>0){ --i; if(at(i)!=InvaderType::NONE)return i; } return size(); } // these are used to invoke rand() as less as possible unsigned InvadersColumn::randomValidInv() const { unsigned validTotal = 0; for(InvaderType ite : *this){ if(ite!=InvaderType::NONE)++validTotal; } unsigned rd = rand() % validTotal; unsigned validIndex = 0; for(unsigned i=0;i