Opbygning af et Gætteleg-Konsolprogram
I dette kapitel får du mulighed for at løfte dine færdigheder i at udvikle konsolapplikationer, når vi dykker ned i opbygningen af et spændende 🎮 Gæt Nummeret 🔢 spil. Dette interaktive spil udfordrer spillere til at bruge deres intuition ved at gætte et tilfældigt genereret tal inden for et foruddefineret interval. Undervejs vil vi afdække grundlæggende begreber såsom:
- 🎲 Generering af tilfældige tal;
- ✅ Validering af input;
- 🤝 Brugerinteraktion;
- 💾 Endda lagring af spilresultater i en fil.
🏆 Udfordringen venter
Forestil dig at fordybe dig i en applikation, der lover spænding og mystik. Spillere inviteres til at gætte et hemmeligt valgt tal inden for et foruddefineret interval. Applikationen giver øjeblikkelig feedback på hvert gæt og holder nøje styr på antallet af forsøg.
Dette praktiske eksempel er din mulighed for at forfine dine færdigheder i at bygge CLI-applikationer og demonstrerer kunsten at skabe interaktive programmer.
🚀 Resultat Applikation
Se magien udfolde sig! Nedenfor ses en GIF, der illustrerer det spændende Gæt Nummeret-spil, som du skal bygge:
Bygning af et Gæt et Tal Konsolprogram
Du står over for to veje. Den første mulighed opfordrer dig til at begive dig ud på rejsen uden hjælp, mens den anden tilbyder en nyttig guide for at sikre din succes. Uanset om du kaster dig ud i det eller følger den strukturerede vejledning, venter der dig en fascinerende oplevelse, der efterlader dig med et funktionelt og fængende konsolprogram.
Masterplan
- 👉 Trin 1: Opsætning og initialiseringer;
- 👉 Trin 2: Definer spilparametre;
- 👉 Trin 3: Definer hjælpefunktioner;
- 👉 Trin 4: Spillets logik;
- 👉 Trin 5: Gem spilresultat;
- 👉 Trin 6: Start spillet;
- 🎉 Konklusion;
- 🏁 Fuld programkode.
Trin 1: Opsætning og initialiseringer
Forbered lærredet ved at oprette et nyt bibliotek og en fil med navnet app.js. I denne fil importeres de nødvendige moduler:
const readline = require('readline');
const fs = require('fs').promises;
Opret et Readline-interface:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Forklaring: De nødvendige moduler importeres: readline til brugerinteraktion og fs.promises til filoperationer. Derefter oprettes et Readline-interface kaldet rl til håndtering af input og output.
Trin 2: Definer spilparametre
Angiv minimums- og maksimumstal:
const minNumber = 1;
const maxNumber = 100;
Generér det hemmelige tal:
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
Initialiser tællevariablen for forsøg:
let attempts = 0;
Forklaring: Vi definerer intervallet af tal (minNumber og maxNumber), inden for hvilket det hemmelige tal genereres. Det hemmelige tal genereres tilfældigt ved hjælp af Math.random() og tildeles secretNumber. Variablen attempts initialiseres for at holde styr på brugerens forsøg.
Trin 3: Definer hjælpefunktioner
Udstyr med en hjælpefunktion for fejlfri validering:
function isValidGuess(guess) {
return !isNaN(guess)
&& guess >= minNumber
&& guess <= maxNumber;
}
Forklaring: Funktionen isValidGuess kontrollerer, om brugerens gæt er et gyldigt tal inden for det angivne interval (minNumber til maxNumber).
Trin 4: Spillets logik
Spillets kernefunktionalitet gennem funktionen playGame:
function playGame() {
rl.question(`Guess a number between ${minNumber} and ${maxNumber}: `, guess => {
if (isValidGuess(guess)) {
attempts++;
const guessNumber = parseInt(guess);
if (guessNumber === secretNumber) {
console.log(`Congratulations! You guessed the number in ${attempts} attempts.`);
saveGameResult(`Player won in ${attempts} attempts.`);
rl.close();
} else if (guessNumber < secretNumber) {
console.log('Try higher.');
playGame();
} else {
console.log('Try lower.');
playGame();
}
} else {
console.log('Please enter a valid number within the specified range.');
playGame();
}
});
}
Forklaring: Funktionen playGame udgør spillets centrale løkke. Den bruger rl.question til at bede brugeren om et gæt. Hvis gættet er gyldigt, kontrollerer funktionen, om gættet matcher det hemmelige tal. Hvis ikke, gives der feedback til brugeren, og spillet fortsætter rekursivt.
Trin 5: Gem Spilresultat
Implementér logikken for at gemme brugerens spilpræstationer i filen game_results.txt.
async function saveGameResult(result) {
try {
await fs.appendFile('game_results.txt', `${result}\n`);
console.log('Game result saved.');
} catch (err) {
console.log('Failed to save game result.');
}
}
Forklaring: Funktionen saveGameResult anvender fs.promises til at tilføje spilresultatet til en fil med navnet game_results.txt. Funktionen giver feedback om det lykkedes eller mislykkedes at gemme resultatet.
Trin 6: Start Spillet
Opret velkomstbeskeden og start spillet:
console.log('Welcome to the Guess the Number game!');
playGame();
Forklaring: Vi viser en velkomstbesked og starter spillet ved at kalde funktionen playGame.
🎉 Konklusion: Sejrsrunde
Ved at udvikle Gæt Nummeret Spil Appen har du opnået værdifuld erfaring med at designe interaktive og engagerende konsolapplikationer. Dette eksempel demonstrerer samspillet mellem brugerinput, tilfældig talgenerering, validering og filhåndtering, hvilket resulterer i en overbevisende spiloplevelse.
👨💻 Fuldt App-kode
const readline = require("readline");
const fs = require("fs").promises;
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const minNumber = 1;
const maxNumber = 100;
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
let attempts = 0;
function isValidGuess(guess) {
return !isNaN(guess) && guess >= minNumber && guess <= maxNumber;
}
function playGame() {
rl.question(
`Guess a number between ${minNumber} and ${maxNumber}: `,
(guess) => {
if (isValidGuess(guess)) {
attempts++;
const guessNumber = parseInt(guess);
if (guessNumber === secretNumber) {
console.log(
`Congratulations! You guessed the number in ${attempts} attempts.`
);
saveGameResult(`Player won in ${attempts} attempts.`);
rl.close();
} else if (guessNumber < secretNumber) {
console.log("Try higher.");
playGame();
} else {
console.log("Try lower.");
playGame();
}
} else {
console.log("Please enter a valid number within the specified range.");
playGame();
}
}
);
}
async function saveGameResult(result) {
try {
await fs.appendFile("game_results.txt", `${result}\n`);
console.log("Game result saved.");
} catch (err) {
console.log("Failed to save game result.");
}
}
console.log("Welcome to the Guess the Number game!");
playGame();
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.56
Opbygning af et Gætteleg-Konsolprogram
Stryg for at vise menuen
I dette kapitel får du mulighed for at løfte dine færdigheder i at udvikle konsolapplikationer, når vi dykker ned i opbygningen af et spændende 🎮 Gæt Nummeret 🔢 spil. Dette interaktive spil udfordrer spillere til at bruge deres intuition ved at gætte et tilfældigt genereret tal inden for et foruddefineret interval. Undervejs vil vi afdække grundlæggende begreber såsom:
- 🎲 Generering af tilfældige tal;
- ✅ Validering af input;
- 🤝 Brugerinteraktion;
- 💾 Endda lagring af spilresultater i en fil.
🏆 Udfordringen venter
Forestil dig at fordybe dig i en applikation, der lover spænding og mystik. Spillere inviteres til at gætte et hemmeligt valgt tal inden for et foruddefineret interval. Applikationen giver øjeblikkelig feedback på hvert gæt og holder nøje styr på antallet af forsøg.
Dette praktiske eksempel er din mulighed for at forfine dine færdigheder i at bygge CLI-applikationer og demonstrerer kunsten at skabe interaktive programmer.
🚀 Resultat Applikation
Se magien udfolde sig! Nedenfor ses en GIF, der illustrerer det spændende Gæt Nummeret-spil, som du skal bygge:
Bygning af et Gæt et Tal Konsolprogram
Du står over for to veje. Den første mulighed opfordrer dig til at begive dig ud på rejsen uden hjælp, mens den anden tilbyder en nyttig guide for at sikre din succes. Uanset om du kaster dig ud i det eller følger den strukturerede vejledning, venter der dig en fascinerende oplevelse, der efterlader dig med et funktionelt og fængende konsolprogram.
Masterplan
- 👉 Trin 1: Opsætning og initialiseringer;
- 👉 Trin 2: Definer spilparametre;
- 👉 Trin 3: Definer hjælpefunktioner;
- 👉 Trin 4: Spillets logik;
- 👉 Trin 5: Gem spilresultat;
- 👉 Trin 6: Start spillet;
- 🎉 Konklusion;
- 🏁 Fuld programkode.
Trin 1: Opsætning og initialiseringer
Forbered lærredet ved at oprette et nyt bibliotek og en fil med navnet app.js. I denne fil importeres de nødvendige moduler:
const readline = require('readline');
const fs = require('fs').promises;
Opret et Readline-interface:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Forklaring: De nødvendige moduler importeres: readline til brugerinteraktion og fs.promises til filoperationer. Derefter oprettes et Readline-interface kaldet rl til håndtering af input og output.
Trin 2: Definer spilparametre
Angiv minimums- og maksimumstal:
const minNumber = 1;
const maxNumber = 100;
Generér det hemmelige tal:
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
Initialiser tællevariablen for forsøg:
let attempts = 0;
Forklaring: Vi definerer intervallet af tal (minNumber og maxNumber), inden for hvilket det hemmelige tal genereres. Det hemmelige tal genereres tilfældigt ved hjælp af Math.random() og tildeles secretNumber. Variablen attempts initialiseres for at holde styr på brugerens forsøg.
Trin 3: Definer hjælpefunktioner
Udstyr med en hjælpefunktion for fejlfri validering:
function isValidGuess(guess) {
return !isNaN(guess)
&& guess >= minNumber
&& guess <= maxNumber;
}
Forklaring: Funktionen isValidGuess kontrollerer, om brugerens gæt er et gyldigt tal inden for det angivne interval (minNumber til maxNumber).
Trin 4: Spillets logik
Spillets kernefunktionalitet gennem funktionen playGame:
function playGame() {
rl.question(`Guess a number between ${minNumber} and ${maxNumber}: `, guess => {
if (isValidGuess(guess)) {
attempts++;
const guessNumber = parseInt(guess);
if (guessNumber === secretNumber) {
console.log(`Congratulations! You guessed the number in ${attempts} attempts.`);
saveGameResult(`Player won in ${attempts} attempts.`);
rl.close();
} else if (guessNumber < secretNumber) {
console.log('Try higher.');
playGame();
} else {
console.log('Try lower.');
playGame();
}
} else {
console.log('Please enter a valid number within the specified range.');
playGame();
}
});
}
Forklaring: Funktionen playGame udgør spillets centrale løkke. Den bruger rl.question til at bede brugeren om et gæt. Hvis gættet er gyldigt, kontrollerer funktionen, om gættet matcher det hemmelige tal. Hvis ikke, gives der feedback til brugeren, og spillet fortsætter rekursivt.
Trin 5: Gem Spilresultat
Implementér logikken for at gemme brugerens spilpræstationer i filen game_results.txt.
async function saveGameResult(result) {
try {
await fs.appendFile('game_results.txt', `${result}\n`);
console.log('Game result saved.');
} catch (err) {
console.log('Failed to save game result.');
}
}
Forklaring: Funktionen saveGameResult anvender fs.promises til at tilføje spilresultatet til en fil med navnet game_results.txt. Funktionen giver feedback om det lykkedes eller mislykkedes at gemme resultatet.
Trin 6: Start Spillet
Opret velkomstbeskeden og start spillet:
console.log('Welcome to the Guess the Number game!');
playGame();
Forklaring: Vi viser en velkomstbesked og starter spillet ved at kalde funktionen playGame.
🎉 Konklusion: Sejrsrunde
Ved at udvikle Gæt Nummeret Spil Appen har du opnået værdifuld erfaring med at designe interaktive og engagerende konsolapplikationer. Dette eksempel demonstrerer samspillet mellem brugerinput, tilfældig talgenerering, validering og filhåndtering, hvilket resulterer i en overbevisende spiloplevelse.
👨💻 Fuldt App-kode
const readline = require("readline");
const fs = require("fs").promises;
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const minNumber = 1;
const maxNumber = 100;
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
let attempts = 0;
function isValidGuess(guess) {
return !isNaN(guess) && guess >= minNumber && guess <= maxNumber;
}
function playGame() {
rl.question(
`Guess a number between ${minNumber} and ${maxNumber}: `,
(guess) => {
if (isValidGuess(guess)) {
attempts++;
const guessNumber = parseInt(guess);
if (guessNumber === secretNumber) {
console.log(
`Congratulations! You guessed the number in ${attempts} attempts.`
);
saveGameResult(`Player won in ${attempts} attempts.`);
rl.close();
} else if (guessNumber < secretNumber) {
console.log("Try higher.");
playGame();
} else {
console.log("Try lower.");
playGame();
}
} else {
console.log("Please enter a valid number within the specified range.");
playGame();
}
}
);
}
async function saveGameResult(result) {
try {
await fs.appendFile("game_results.txt", `${result}\n`);
console.log("Game result saved.");
} catch (err) {
console.log("Failed to save game result.");
}
}
console.log("Welcome to the Guess the Number game!");
playGame();
Tak for dine kommentarer!