Permalänk
Medlem

Hjälp med scorecounter i JS

Hej,

Jag har programmerat ett basic tärningsspel i javascript. Jag är färsking på detta så är medveten om att min kod inte är den finaste.

Spelet går ut på att i ett fält fylla i en siffra. Detta värde jämförs sedan med resultat av två tärningar vid "Roll the dice".
Så långt har jag kommit så att "You lose" eller "You win! Your roll is...".

Vid varje slag där vinst uppstår så vill jag även summera resultatet. Ex

Första slaget= You win! Your roll is 6. Your totalscore is 6.
Andra slaget= You win! Your roll is 11. Your totalscore 17.

Tills det blir you lose, då nollställs totalscore och spelet börjar om.

Har testat lite olika varianter men får inte alls till det. Plz HELP!

// Function to roll the dice
function rollTheDice() {
let randomNumber1 = Math.floor(Math.random() * 6) + 1;
let randomNumber2 = Math.floor(Math.random() * 6) + 1;
let input = document.getElementById("userInput").value;

document.querySelector(".img1").setAttribute("src",
"dice" + randomNumber1 + ".png");

document.querySelector(".img2").setAttribute("src",
"dice" + randomNumber2 + ".png");

//Logic for winner

if (randomNumber1 + randomNumber2 == input) {
document.querySelector("h1").innerHTML = ("You Lose!");
}
else {
document.querySelector("h1").innerHTML = ("You Win! Your roll is " + totalScore);
}
}

Permalänk
Hedersmedlem

Du behöver skapa en variabel där du sparar totalpoängen. Den variabeln måste du placera på ett sätt så att den överlever, dvs du kan inte sätta den inne i funktionen rollTheDice, eftersom variabler du definierar inom funktionen slängs när funktionen är klar.

När du har variabeln på plats får du lägga till kod för att uppdatera den samt skriva ut den på sidan. Du har ju redan en if-sats, så du kan lägga kod för där.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av giplet:

Du behöver skapa en variabel där du sparar totalpoängen. Den variabeln måste du placera på ett sätt så att den överlever, dvs du kan inte sätta den inne i funktionen rollTheDice, eftersom variabler du definierar inom funktionen slängs när funktionen är klar.

När du har variabeln på plats får du lägga till kod för att uppdatera den samt skriva ut den på sidan. Du har ju redan en if-sats, så du kan lägga kod för där.

Tack för responsen. Det är här jag fastnar. Jag har testat att skapa en variabel utanför och justera if-satsen, se mitt ex nedan. Men kör jag koden funkar det inte. Nått är fel och jag får inte ihop det...

let totalScore = 0;

// Function to roll the dice
function rollTheDice() {
let randomNumber1 = Math.floor(Math.random() * 6) + 1;
let randomNumber2 = Math.floor(Math.random() * 6) + 1;
let input = document.getElementById("userInput").value;
let score = randomNumber1 + randomNumber2;
let totalScore = totalScore + score;

document.querySelector(".img1").setAttribute("src",
"dice" + randomNumber1 + ".png");

document.querySelector(".img2").setAttribute("src",
"dice" + randomNumber2 + ".png");

//Logic for winner

if (randomNumber1 + randomNumber2 == input) {
document.querySelector("h1").innerHTML = ("You Lose! Your roll is " + totalScore);
}
else {
document.querySelector("h1").innerHTML = ("You win! Your roll is " + score);
}
}

Permalänk

@JavNewb Släng gärna ihop ett exempel här: https://codesandbox.io/ Då blir det lättare att hjälpa dig felsöka koden.

Permalänk
Hedersmedlem

Ta bort let framför totalScore = totalScore + score;
let skapar en ny variabel som heter totalScore och det vill du ju inte.

Visa signatur

Använd gilla för att markera nyttiga inlägg!