子手,直到游戏结束,图形才更新

时间:2018-12-10 20:05:59

标签: javascript

嘿,我试图为一个绞刑游戏编写代码,但是我偶然发现了一个我不知道如何解决的问题。每次用户猜错字母时,应该出现典型的图形,例如腿,手臂等,直到有人上吊为止。但是,问题在于,直到您迷路了,直到代码完成,它才会出现。如何让这些图形在用户每次猜错时都连续显示?

<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:");
  }

0 个答案:

没有答案