mirror of
https://github.com/lov3b/h_ng_dig.git
synced 2024-11-10 07:00:12 +01:00
Changed caluclations to occour in keyPressed
This commit is contained in:
parent
ea9b24d118
commit
98e30ab27a
109
h_ng_dig.pde
109
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,46 +163,54 @@ void ritaUtBorjan() {
|
|||||||
fill(rod);
|
fill(rod);
|
||||||
drawUnderstrack();
|
drawUnderstrack();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
// 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++) {
|
||||||
|
if (secretWordArray[i].charAt(0) == anvandarVal && harBlivitTaget[i] == false) {
|
||||||
|
harBlivitTaget[i] = true;
|
||||||
|
gissatRatt=true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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) {
|
||||||
|
felGissningar +=1;
|
||||||
|
} else {
|
||||||
|
gissatRatt = false;
|
||||||
|
}
|
||||||
|
println("felgissningar: "+ felGissningar);
|
||||||
|
|
||||||
|
//gissatBra = true;
|
||||||
|
// Loopa igenom alla användarens svar och ifall inget är fel så sätts state till winState i if satsen nedan.
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void drawPlay() {
|
void drawPlay() {
|
||||||
ritaUtBorjan();
|
|
||||||
if (felGissningar >= 7) {
|
if (felGissningar >= 7) {
|
||||||
state=gameoverState;
|
state=gameoverState;
|
||||||
}
|
}
|
||||||
|
boolean gissatBra = true;
|
||||||
//Hämta in det hemliga ordet som en array med en bokstav i varje plats.
|
|
||||||
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.
|
|
||||||
for (int i=0; i < rVal.length(); i++) {
|
|
||||||
if (secretWordArray[i].charAt(0) == anvandarVal && harBlivitTaget[i] == false) {
|
|
||||||
harBlivitTaget[i] = true;
|
|
||||||
gissatRatt=true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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.
|
|
||||||
if (gissatRatt == false) {
|
|
||||||
felGissningar +=1;
|
|
||||||
} else {
|
|
||||||
gissatRatt = false;
|
|
||||||
}
|
|
||||||
println("felgissningar: "+ felGissningar);
|
|
||||||
|
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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;
|
||||||
@ -209,6 +221,16 @@ void drawPlay() {
|
|||||||
state=winState;
|
state=winState;
|
||||||
}
|
}
|
||||||
println("After if "+state);
|
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() {
|
||||||
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user