No lugar de P e G, coloquei 0=P e G=1 para ficar mais rápido de responder.
Acho que isso resolve em Dart:
Future main() async {
//0 = P
//1 = G
int funcaoRetornaStrealas(List resultado){
int quantidadeEstrelas=0;
if(resultado.length<12){
return quantidadeEstrelas;
}
for(var i=0; i<resultado.length;i++){
if(i<10){
List listaProximos3Valores= resultado.getRange(i,i+3).toList();
if(!listaProximos3Valores.contains(0)){
quantidadeEstrelas++;
resultado[i]=0;
resultado[i+1]=0;
resultado[i+2]=0;
}
}
}
return quantidadeEstrelas;
}
print(funcaoRetornaStrealas([0,1,1,1,0,0,0,0,1,1,1,0]));
}