Yahtzee Game
Yahtzee Game
Categorieën |
Mieke |
Nelly |
Pascal |
Totaal Boven |
0 |
0 |
0 |
Totaal Onder |
0 |
0 |
0 |
Totaal Score |
0 |
0 |
0 |
const firebaseConfig = {
apiKey: "AIzaSyAR91mijyNCoPqsNiymFsls1hA9DiHhQg8",
authDomain: "yathzee-b8814.firebaseapp.com",
projectId: "yathzee-b8814",
storageBucket: "yathzee-b8814.firebasestorage.app",
messagingSenderId: "282368071512",
appId: "1:282368071512:web:128507c00c2dfc92da772d",
measurementId: "G-JPKHBV97LK"
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
const categories = [
{ name: "Eenen", dice: "⚀" },
{ name: "Tweeën", dice: "⚁" },
{ name: "Drieën", dice: "⚂" },
{ name: "Vieren", dice: "⚃" },
{ name: "Vijven", dice: "⚄" },
{ name: "Zessen", dice: "⚅" },
{ name: "Bonus", dice: "" },
{ name: "3-of-a-kind", dice: "" },
{ name: "4-of-a-kind", dice: "" },
{ name: "Full House", dice: "" },
{ name: "Kleine Straat", dice: "" },
{ name: "Grote Straat", dice: "" },
{ name: "Yahtzee", dice: "" },
{ name: "Chance", dice: "" }
];
const players = ["Mieke", "Nelly", "Pascal"];
// Functie om het scorebord te initialiseren
function initializeScoreboard() {
const scoreboard = document.getElementById("scoreboard");
scoreboard.innerHTML = "";
categories.forEach(category => {
const row = document.createElement("tr");
// Voeg de categorie toe
const categoryCell = document.createElement("td");
categoryCell.innerHTML = category.dice
? `
${category.dice} ${category.name}`
: category.name;
row.appendChild(categoryCell);
// Voeg score-inputvelden toe voor elke speler
players.forEach(player => {
const scoreCell = document.createElement("td");
const scoreInput = document.createElement("input");
scoreInput.type = "number";
scoreInput.min = "0";
scoreInput.dataset.player = player;
scoreInput.dataset.category = category.name;
scoreInput.addEventListener("input", updateScores);
scoreCell.appendChild(scoreInput);
row.appendChild(scoreCell);
});
scoreboard.appendChild(row);
});
}
// Functie om de scores bij te werken
function updateScores() {
players.forEach(player => {
let upperScore = 0;
let lowerScore = 0;
// Bereken bovenste helft
categories.slice(0, 6).forEach(category => {
const value = getScore(player, category.name);
if (value !== null) upperScore += value;
});
// Bereken onderste helft
categories.slice(7).forEach(category => {
const value = getScore(player, category.name);
if (value !== null) lowerScore += value;
});
// Update bonus
if (upperScore >= 63) {
setScore(player, "Bonus", 35);
upperScore += 35; // Voeg bonus toe aan de bovenste helft
} else {
setScore(player, "Bonus", 0);
}
// Update totaalscores
document.getElementById(`upper${player}`).textContent = upperScore;
document.getElementById(`lower${player}`).textContent = lowerScore;
document.getElementById(`total${player}`).textContent = upperScore + lowerScore;
// Sla de score op in Firebase
saveScore(player, upperScore + lowerScore);
});
}
// Haalt een score op uit een invoerveld
function getScore(player, category) {
const input = document.querySelector(`input[data-player="${player}"][data-category="${category}"]`);
return input && input.value ? parseInt(input.value) : null;
}
// Stelt een score in (bijv. voor Bonus)
function setScore(player, category, value) {
const input = document.querySelector(`input[data-player="${player}"][data-category="${category}"]`);
if (input) input.value = value;
}
// Sla de score op in Firebase
function saveScore(player, totalScore) {
const scoreRef = db.collection("yahtzeeScores").doc(player);
scoreRef.set({
totalScore: totalScore
}).then(() => {
console.log(`${player}'s score is opgeslagen in Firebase.`);
}).catch(error => {
console.error("Fout bij opslaan in Firebase:", error);
});
}
// Reset het spel
function resetGame() {
if (confirm("Weet je zeker dat je het spel wilt resetten? Alle scores worden verwijderd.")) {
const inputs = document.querySelectorAll("input[type='number']");
inputs.forEach(input => input.value = "");
updateScores();
}
}
// Initializeer het spel
initializeScoreboard();