嘿,我试图为一个绞刑游戏编写代码,但是我偶然发现了一个我不知道如何解决的问题。每次用户猜错字母时,应该出现典型的图形,例如腿,手臂等,直到有人上吊为止。但是,问题在于,直到您迷路了,直到代码完成,它才会出现。如何让这些图形在用户每次猜错时都连续显示?
<script src="https://koda.nu/simple.js">
var korrektOrd=prompt("Skriv ett ord (max 6 bokstäver)"); // Användarens svar kommer ha variabeln "korrektOrd" (max 6 bokstäver då det annars inte får plats i skärmen med den storleken).
var ratt=[] //Tom lista som senare används för att lägga till rätta bokstäver.
var antalFel=0; //Variabel för antal fel.
var tommaRader=0; //"Luckor" som är tomma (alltså där bokstaven inte finns i ordet).
for(i=0;i<korrektOrd.length;i=i+1)
{ text(100+i*100, 100, 80, "_", "black");} //Detta lägger ut lika många understreck (på skärmen) som det är bokstäver i ordet.
var gissning=prompt("Gissa en bokstav:")
while(antalFel<11)
{
for(j=0;j<korrektOrd.length;j=j+1) //En for-loop för att kolla om bokstaven stämmer för varje position i ordet.
{if (gissning==korrektOrd.charAt(j))
{ text(100+j*100, 100, 80, gissning, "black");
alert("Ja! "+gissning+" fanns i ordet.");
ratt.push(gissning)} //Om en bokstav finns i ordet kommer det skrivas ut att bokstaven finns i ordet. Bokstaven kommer även ritas ut på skärmen, ovanför "_". Bokstaven läggs även till i en lista.
if (gissning!=korrektOrd.charAt(j)) tommaRader=tommaRader+1; //För varje fel gissning, ökar tommaRader med 1
if(tommaRader==korrektOrd.length) //Om antalet tommaRader är lika många som ordets längd - då är bokstaven fel (innan kunde bokstaven varit fel på en position i ordet).
{
antalFel=antalFel+1; //AntalFel ska ökas med 1 för varje fel bokstav som gissas.
alert("FEL. Du har " + (11-antalFel) + " liv kvar");
if(antalFel==1) arc(350, 630, 180, 180, 5, "black");
else if(antalFel==2) line(350, 450, 350, 200, 5,"black");
else if(antalFel==3) line(347, 200, 550, 200, 5, "black");
else if(antalFel==4) line(348, 250, 397, 200, 5, "black");
else if(antalFel==5) line(547, 200, 547, 250, 5, "black");
else if(antalFel==6) circle(547, 260, 15, "black");
else if(antalFel==7) rectangle(543, 275, 7, 50, "black");
else if(antalFel==8)line(533, 355, 547, 320, 7, "black");
else if(antalFel==9)line(547, 305, 570, 280, 7, "black");
else if(antalFel==10)line(547, 320, 560, 355, 7, "black");
else if(antalFel==11)line(525, 280, 547, 305, 7, "black");} //För varje fel bokstav läggs en animation in.
}
if(ratt.length==korrektOrd.length)
{text(100,350,100,"YOU WON!", "blue");
break;} //Om listan med alla rätta bokstäver är lika lång som ordets längd så har spelaren vunnit och spelet avslutas.
if(antalFel>=11)
{text(10,350,90, "GAME OVER.","red");
text(10, 450, 40, "Ordet var: "+korrektOrd, "black"); } //Tvärtom (du förlorar) händer om hela ordet inte har gissats inom de 11 liv, alltså att du har gissat fel 11 gånger.
tommaRader=0; //Nollställer tommaRader för att nästa bokstav som ska gissas.
gissning=prompt("Gissa igen:");
}