Olá!
Eu consegui fazer o código usando array e while e queria saber se há algo que eu possa melhorar no programa.
<meta charset="UTF-8">
<canvas width = "600" height = "400"></canvas>
<script>
function desenhaBandeiraBrasil() {
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = "green";
pincel.fillRect(0,0,600,400);
pincel.fillStyle = "yellow";
pincel.beginPath();
pincel.moveTo(300,50);
pincel.lineTo(50,200);
pincel.lineTo(550,200);
pincel.fill();
pincel.beginPath();
pincel.moveTo(50,200);
pincel.lineTo(300,350);
pincel.lineTo(550,200);
pincel.fill();
pincel.fillStyle= "darkblue";
pincel.beginPath();
pincel.arc(300,200,100, 0, 2*Math.PI);
pincel.fill();
};
function desenhaBandeiraAlemanha() {
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = "black";
pincel.fillRect(0,0,600,133);
pincel.fillStyle = "red";
pincel.fillRect(0,133,600,133);
pincel.fillStyle = "yellow";
pincel.fillRect(0,266,600,133);
};
function desenhaBandeiraItalia() {
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
pincel.fillStyle = "darkgreen";
pincel.fillRect(0,0,200,400);
pincel.fillStyle = "white";
pincel.fillRect(200,0, 200, 400);
pincel.fillStyle = "red";
pincel.fillRect(400,0, 200, 400);
}
var posicao = 0;
console.log(posicao);
var incremento = 1;
var listaBandeiras = ["Brasil", "Alemanha", "Italia"];
var tamanhoLista = listaBandeiras.length;
function trocaBandeira() {
while(posicao < listaBandeiras.length){
console.log(listaBandeiras[posicao] + " " + posicao);
if(listaBandeiras[posicao] == "Brasil"){
desenhaBandeiraBrasil();
posicao += incremento;
break;
}
else if(listaBandeiras[posicao] == "Alemanha") {
desenhaBandeiraAlemanha();
posicao += incremento;
break;
}
else if(listaBandeiras[posicao] == "Italia"){
desenhaBandeiraItalia();
posicao = posicao - tamanhoLista + incremento;
break;
}
}
}
setInterval(trocaBandeira, 3000);
</script>
Obrigado :D