Added userinput history and more

This commit is contained in:
lov3b 2020-12-17 16:53:01 +01:00
parent 0d352f2a8e
commit 784c37af63

View File

@ -1,8 +1,8 @@
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import processing.sound.*; import processing.sound.*;
// Max 15 karaktärer i varje ord, annars blir understräcken för långa // Max 15 karaktärer i varje ord, annars blir understräcken för långa
String[] ord = {"HUMAN", "TERMINATE", "EXECUTE", "REVOLUTION", "KILL"};
boolean[] harBlivitTaget = new boolean[1]; boolean[] harBlivitTaget = new boolean[1];
char[] gissadeBokstaver = new char[0];
String rVal; String rVal;
int rValInt; int rValInt;
String anvandarValStr; String anvandarValStr;
@ -23,6 +23,7 @@ int state = startState;
// Användarfel // Användarfel
boolean gissatRatt=false; boolean gissatRatt=false;
int felGissningar = 0; int felGissningar = 0;
int antalGissningar = 0;
//Färger //Färger
final color rod = color(255, 0, 0); final color rod = color(255, 0, 0);
@ -70,10 +71,8 @@ void randomOrd() {
String[] word = loadStrings("https://random-word-api.herokuapp.com/word?number=1"); String[] word = loadStrings("https://random-word-api.herokuapp.com/word?number=1");
word[0] = word[0].replace("[", "").replace("]", "").replace('"', '%').replace("%", "").toUpperCase(); word[0] = word[0].replace("[", "").replace("]", "").replace('"', '%').replace("%", "").toUpperCase();
rVal = word[0]; rVal = word[0];
println(rVal); println(rVal);
// Kolla ifall ordet är udda eller jämnt antal karaktärer // Kolla ifall ordet är udda eller jämnt antal karaktärer
if (rVal.length() % 2 == 0) { if (rVal.length() % 2 == 0) {
rValUdda = false; rValUdda = false;
@ -145,7 +144,6 @@ void drawStart() {
"Starta genom att klicka på fönstret eller tryck på valfri tangent", width/2, height/2); "Starta genom att klicka på fönstret eller tryck på valfri tangent", width/2, height/2);
// Byt playstate ifall en knapp trycks ner // Byt playstate ifall en knapp trycks ner
if (mousePressed||keyPressed) { if (mousePressed||keyPressed) {
ritaUtBorjan();
state=playState; state=playState;
} }
} }
@ -160,24 +158,31 @@ void fixFalseArray() {
} }
} }
// Ganska självförklarnade. Funktionen ritar ut början av drawPlay, alltså alla bilder, understräcken och bakgrunden. // Loopa igenom det hemliga ordet, skapa en array med allting för att därefter ändra om allting till lowercase förutom den första bokstaven
// Finns för att den körs i början av drawStart, drawGameover, och drawWin, eftersom det gick förbi ett problem med // Därefter kommer den sista forloopen att bygga en sträng utifrån arrayen
// java.swing popup historien. String storForstaBokstav() {
void ritaUtBorjan() { char[] rValStorBokstavArray = new char[rVal.length()];
background(gron); rValStorBokstavArray[0] = rVal.toUpperCase().charAt(0);
image(kulle[felGissningar], 80, 0); String rValUtskriv = "";
image(sun, width-120, 0);
noStroke(); for (int i=1; i < rVal.length(); i++) {
fill(rod); rValStorBokstavArray[i] = rVal.toLowerCase().charAt(i);
drawUnderstrack(); }
for (int i=0; i<rVal.length(); i++) {
rValUtskriv =rValUtskriv + rValStorBokstavArray[i];
}
return rValUtskriv;
} }
void keyPressed() { void keyPressed() {
if (state==playState) { if (state==playState) {
if (key != CODED) { if (key != CODED) {
if ((key >= 'a' && key <= 'z')||(key >= 'A' && key <= 'Z')) { if ((key >= 'a' && key <= 'z')||(key >= 'A' && key <= 'Z')) {
println(key);
anvandarVal = str(key).toUpperCase().charAt(0); anvandarVal = str(key).toUpperCase().charAt(0);
antalGissningar++;
gissadeBokstaver = expand(gissadeBokstaver, antalGissningar);
gissadeBokstaver[antalGissningar-1] = anvandarVal;
println(gissadeBokstaver);
String[] secretWordArray = rVal.split(""); String[] secretWordArray = rVal.split("");
// 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.
@ -195,9 +200,7 @@ void keyPressed() {
} else { } else {
gissatRatt = false; 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. // Loopa igenom alla användarens svar och ifall inget är fel så sätts state till winState i if satsen nedan.
boolean gissatBra = true; boolean gissatBra = true;
for (int i=0; i < rVal.length(); i++) { for (int i=0; i < rVal.length(); i++) {
@ -226,7 +229,12 @@ void drawPlay() {
if (gissatBra) { if (gissatBra) {
state=winState; state=winState;
} }
ritaUtBorjan(); background(gron);
image(kulle[felGissningar], 80, 0);
image(sun, width-120, 0);
noStroke();
fill(rod);
drawUnderstrack();
String[] secretWordArray = rVal.split(""); String[] secretWordArray = rVal.split("");
// Stycket kod skriver ut de bokstäverna som användaren har gissat rätt i det hemliga ordet över understräcken. // Stycket kod skriver ut de bokstäverna som användaren har gissat rätt i det hemliga ordet över understräcken.
@ -236,6 +244,19 @@ void drawPlay() {
text(""+secretWordArray[i], float(understrackKordinater[i]), (height/4.0)*3-height*0.02125); text(""+secretWordArray[i], float(understrackKordinater[i]), (height/4.0)*3-height*0.02125);
} }
} }
skrivGissningar();
}
// Skriv ut användarens gissningar
// Skapa en sträng som innehåller samma sak som arrayen gissadeBokstaver, för att sedan skriva ut den.
void skrivGissningar() {
String gissadeBokstaverUtskriv = "";
for (int i=0; i< gissadeBokstaver.length; i++) {
gissadeBokstaverUtskriv =gissadeBokstaverUtskriv + gissadeBokstaver[i];
}
textAlign(LEFT, LEFT);
text("Du har gissat på: " + gissadeBokstaverUtskriv, 50, (height/8)*7);
textAlign(CENTER, CENTER);
} }
void drawGameover() { void drawGameover() {
@ -247,8 +268,9 @@ void drawGameover() {
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);
textAlign(LEFT, LEFT); textAlign(LEFT, LEFT);
text("Rätt ord: "+rVal, 50, 50); text("Rätt ord: "+storForstaBokstav(), 50, 50);
textAlign(CENTER, CENTER); textAlign(CENTER, CENTER);
skrivGissningar();
if (mousePressed) { if (mousePressed) {
// Återställ viktiga variabler // Återställ viktiga variabler
felGissningar =0; felGissningar =0;
@ -260,13 +282,15 @@ void drawGameover() {
void drawWin() { void drawWin() {
background(turkos); background(turkos);
fill(svart);
textSize(20); textSize(20);
textAlign(CENTER, CENTER); textAlign(CENTER, CENTER);
text("Du vann!\n"+ text("Du vann!\n"+
"För att starta om klicka på fönstret", width/2, height/2); "För att starta om klicka på fönstret", width/2, height/2);
textAlign(LEFT, LEFT); textAlign(LEFT, LEFT);
text("Rätt ord: "+rVal, 50, 50); text("Rätt ord: "+storForstaBokstav(), 50, 50);
textAlign(CENTER, CENTER); textAlign(CENTER, CENTER);
skrivGissningar();
if (mousePressed) { if (mousePressed) {
// Återställ viktiga variabler // Återställ viktiga variabler
felGissningar =0; felGissningar =0;