mirror of
				https://github.com/lov3b/h_ng_dig.git
				synced 2025-11-04 07:00:21 +01:00 
			
		
		
		
	Changed caluclations to occour in keyPressed
This commit is contained in:
		
							
								
								
									
										83
									
								
								h_ng_dig.pde
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								h_ng_dig.pde
									
									
									
									
									
								
							@@ -10,20 +10,22 @@ final int antalOrd = 5;
 | 
				
			|||||||
String anvandarValStr;
 | 
					String anvandarValStr;
 | 
				
			||||||
char anvandarVal;
 | 
					char anvandarVal;
 | 
				
			||||||
boolean rValUdda;
 | 
					boolean rValUdda;
 | 
				
			||||||
final int startState = 1;
 | 
					 | 
				
			||||||
final int playState = 2;
 | 
					 | 
				
			||||||
final int gameoverState = 3;
 | 
					 | 
				
			||||||
final int winState = 4;
 | 
					 | 
				
			||||||
int mittenBokstav;
 | 
					int mittenBokstav;
 | 
				
			||||||
final int distansLangd = 30;
 | 
					final int distansLangd = 30;
 | 
				
			||||||
final int distansMellanrum = 20;
 | 
					final int distansMellanrum = 20;
 | 
				
			||||||
final int distansTot = distansLangd+distansMellanrum;
 | 
					final int distansTot = distansLangd+distansMellanrum;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//States
 | 
				
			||||||
 | 
					final int startState = 1;
 | 
				
			||||||
 | 
					final int playState = 2;
 | 
				
			||||||
 | 
					final int gameoverState = 3;
 | 
				
			||||||
 | 
					final int winState = 4;
 | 
				
			||||||
int state = startState;
 | 
					int state = startState;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Användarfel
 | 
					// Användarfel
 | 
				
			||||||
boolean gissatRatt=false;
 | 
					boolean gissatRatt=false;
 | 
				
			||||||
int felGissningar = 0;
 | 
					int felGissningar = 0;
 | 
				
			||||||
boolean gissatBra = false;
 | 
					//boolean gissatBra = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Färger
 | 
					//Färger
 | 
				
			||||||
final color rod = color(255, 0, 0);
 | 
					final color rod = color(255, 0, 0);
 | 
				
			||||||
@@ -41,6 +43,7 @@ void setup() {
 | 
				
			|||||||
  surface.setTitle("Häng Dig!");
 | 
					  surface.setTitle("Häng Dig!");
 | 
				
			||||||
  randomOrd();
 | 
					  randomOrd();
 | 
				
			||||||
  rectMode(CENTER);
 | 
					  rectMode(CENTER);
 | 
				
			||||||
 | 
					  frameRate(4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Images
 | 
					  // Images
 | 
				
			||||||
  for (int i=0; i < 9; i++) {
 | 
					  for (int i=0; i < 9; i++) {
 | 
				
			||||||
@@ -65,6 +68,7 @@ void randomOrd() {
 | 
				
			|||||||
  // Bestäm ett slumpmässigt ord från ordarrayen
 | 
					  // Bestäm ett slumpmässigt ord från ordarrayen
 | 
				
			||||||
  // rVal står för randomVal
 | 
					  // rVal står för randomVal
 | 
				
			||||||
  rValInt = int(random(0, antalOrd));
 | 
					  rValInt = int(random(0, antalOrd));
 | 
				
			||||||
 | 
					  rValInt = 2;
 | 
				
			||||||
  rVal = ord[rValInt];
 | 
					  rVal = ord[rValInt];
 | 
				
			||||||
  println(rVal);
 | 
					  println(rVal);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -159,21 +163,15 @@ void ritaUtBorjan() {
 | 
				
			|||||||
  fill(rod);
 | 
					  fill(rod);
 | 
				
			||||||
  drawUnderstrack();
 | 
					  drawUnderstrack();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
void drawPlay() {
 | 
					 | 
				
			||||||
  ritaUtBorjan();
 | 
					 | 
				
			||||||
  if (felGissningar >= 7) {
 | 
					 | 
				
			||||||
    state=gameoverState;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //Hämta in det hemliga ordet som en array med en bokstav i varje plats.
 | 
					void keyPressed() {
 | 
				
			||||||
 | 
					  if (state==playState) {
 | 
				
			||||||
 | 
					    if (key != CODED) {
 | 
				
			||||||
 | 
					      if ((key >= 'a' && key <= 'z')||(key >= 'A' && key <= 'Z')) {
 | 
				
			||||||
 | 
					        println(key);
 | 
				
			||||||
 | 
					        anvandarVal = str(key).toUpperCase().charAt(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String[] secretWordArray = divideWord(rVal);
 | 
					        String[] secretWordArray = divideWord(rVal);
 | 
				
			||||||
 | 
					 | 
				
			||||||
  // ANTECKNING TILL MIG SJÄLV
 | 
					 | 
				
			||||||
  // Fixa så att det inte blir NullPointerException error när man trycker på cancel. 
 | 
					 | 
				
			||||||
  // och StringIndexOutOfBoundsException (när man trycker på enter utan någon input)
 | 
					 | 
				
			||||||
  anvandarValStr = JOptionPane.showInputDialog("Skriv en bokstav");
 | 
					 | 
				
			||||||
  anvandarVal = anvandarValStr.toUpperCase().charAt(0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Loopa igenom alla bokstäver i det hemliga ordet och ändra harBlivitTaget till true ifall användaren gissade rätt. 
 | 
					        // Loopa igenom alla bokstäver i det hemliga ordet och ändra harBlivitTaget till true ifall användaren gissade rätt. 
 | 
				
			||||||
        for (int i=0; i < rVal.length(); i++) {
 | 
					        for (int i=0; i < rVal.length(); i++) {
 | 
				
			||||||
          if (secretWordArray[i].charAt(0) == anvandarVal && harBlivitTaget[i] == false) {
 | 
					          if (secretWordArray[i].charAt(0) == anvandarVal && harBlivitTaget[i] == false) {
 | 
				
			||||||
@@ -182,7 +180,7 @@ void drawPlay() {
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Höj en counter ifall användaren har gissat fel, annars så sätts gessatRatt till false så att det funkar att loopa igenom blocket ovan igen. 
 | 
					        // Höj en counter ifall användaren har gissat fel, annars så sätts gissatRatt till false så att det funkar att loopa igenom blocket ovan igen. 
 | 
				
			||||||
        if (gissatRatt == false) {
 | 
					        if (gissatRatt == false) {
 | 
				
			||||||
          felGissningar +=1;
 | 
					          felGissningar +=1;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
@@ -190,15 +188,9 @@ void drawPlay() {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        println("felgissningar: "+ felGissningar);
 | 
					        println("felgissningar: "+ felGissningar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Stycket kod skriver ut de bokstäverna som användaren har gissat rätt i det hemliga ordet över understräcken. 
 | 
					        //gissatBra = true;
 | 
				
			||||||
  int[] understrackKordinater = PositionOfLetter();
 | 
					        // Loopa igenom alla användarens svar och ifall inget är fel så sätts state till winState i if satsen nedan.
 | 
				
			||||||
  for (int i=0; i < rVal.length(); i++) {
 | 
					        boolean gissatBra = true;
 | 
				
			||||||
    if (harBlivitTaget[i]) {
 | 
					 | 
				
			||||||
      text(""+secretWordArray[i], float(understrackKordinater[i]), (height/4.0)*3-height*0.02125);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  gissatBra = true;
 | 
					 | 
				
			||||||
  // Loopa igenom alla användarens svar och ifall inget är fel så sätts state till winState i if satsen under.
 | 
					 | 
				
			||||||
        for (int i=0; i < rVal.length(); i++) {
 | 
					        for (int i=0; i < rVal.length(); i++) {
 | 
				
			||||||
          if (harBlivitTaget[i] == false) {
 | 
					          if (harBlivitTaget[i] == false) {
 | 
				
			||||||
            gissatBra = false;
 | 
					            gissatBra = false;
 | 
				
			||||||
@@ -210,6 +202,36 @@ void drawPlay() {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        println("After if "+state);
 | 
					        println("After if "+state);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void drawPlay() {
 | 
				
			||||||
 | 
					  if (felGissningar >= 7) {
 | 
				
			||||||
 | 
					    state=gameoverState;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  boolean gissatBra = true;
 | 
				
			||||||
 | 
					  for (int i=0; i < rVal.length(); i++) {
 | 
				
			||||||
 | 
					    if (harBlivitTaget[i] == false) {
 | 
				
			||||||
 | 
					      gissatBra = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  println("Before if "+state);
 | 
				
			||||||
 | 
					  if (gissatBra) {
 | 
				
			||||||
 | 
					    state=winState;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  println("After if "+state);
 | 
				
			||||||
 | 
					  ritaUtBorjan();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String[] secretWordArray = divideWord(rVal);
 | 
				
			||||||
 | 
					  // Stycket kod skriver ut de bokstäverna som användaren har gissat rätt i det hemliga ordet över understräcken. 
 | 
				
			||||||
 | 
					  int[] understrackKordinater = PositionOfLetter();
 | 
				
			||||||
 | 
					  for (int i=0; i < rVal.length(); i++) {
 | 
				
			||||||
 | 
					    if (harBlivitTaget[i]) {
 | 
				
			||||||
 | 
					      text(""+secretWordArray[i], float(understrackKordinater[i]), (height/4.0)*3-height*0.02125);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void drawGameover() {
 | 
					void drawGameover() {
 | 
				
			||||||
  background(rod);
 | 
					  background(rod);
 | 
				
			||||||
@@ -219,13 +241,14 @@ void drawGameover() {
 | 
				
			|||||||
  textAlign(CENTER, CENTER);
 | 
					  textAlign(CENTER, CENTER);
 | 
				
			||||||
  text("GAME OVER!\n"+
 | 
					  text("GAME OVER!\n"+
 | 
				
			||||||
    "Starta om genom att klicka på fönstret, eller tryck på valfri tangent", width/2, height-height/3.5);
 | 
					    "Starta om genom att klicka på fönstret, eller tryck på valfri tangent", width/2, height-height/3.5);
 | 
				
			||||||
 | 
					  //delay(1000);
 | 
				
			||||||
  if (mousePressed||keyPressed) {
 | 
					  if (mousePressed||keyPressed) {
 | 
				
			||||||
    // Återställ viktiga variabler 
 | 
					    // Återställ viktiga variabler 
 | 
				
			||||||
    felGissningar =0;
 | 
					    felGissningar =0;
 | 
				
			||||||
    randomOrd();
 | 
					    randomOrd();
 | 
				
			||||||
    fixFalseArray();
 | 
					    fixFalseArray();
 | 
				
			||||||
    // Rita ut början av drawPlay för att swing popupen inte ska hindra understräcken från att visas.
 | 
					    // Rita ut början av drawPlay för att swing popupen inte ska hindra understräcken från att visas.
 | 
				
			||||||
    ritaUtBorjan();
 | 
					    //ritaUtBorjan();
 | 
				
			||||||
    state=playState;
 | 
					    state=playState;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -242,7 +265,7 @@ void drawWin() {
 | 
				
			|||||||
    randomOrd();
 | 
					    randomOrd();
 | 
				
			||||||
    fixFalseArray();
 | 
					    fixFalseArray();
 | 
				
			||||||
    // Rita ut början av drawPlay för att swing popupen inte ska hindra understräcken från att visas.
 | 
					    // Rita ut början av drawPlay för att swing popupen inte ska hindra understräcken från att visas.
 | 
				
			||||||
    ritaUtBorjan();
 | 
					    //ritaUtBorjan();
 | 
				
			||||||
    state=playState;
 | 
					    state=playState;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user