@Override
	public boolean hasNext() {
		// TODO Auto-generated method stub
		boolean currentRowHasTokens = this.rowTokens > 0;
		boolean hasNext = false;
		
		assert(!(currentRow > maxRowNumber));
		
		if(currentRowHasTokens){
			hasNext = true;
		}else{
			if(currentRow < maxRowNumber){
				int checkedRow = 0;
				int checkedTokens;
				boolean checkInProgress = true;
				while(checkInProgress){
					checkedRow = currentRow + 1;
					checkedTokens = iteratedState.checkRow(checkedRow + 1);
					boolean checkedBoolean = (checkedTokens > 0);
					if(!checkedBoolean){
						checkedBoolean = checkedRow == maxRowNumber;
					}
					checkInProgress = checkedBoolean;
				}
			}
		}
		
		return hasNext;
	}