Bygge en Gjettelek-Konsollapp
I dette kapittelet får du muligheten til å forbedre ferdighetene dine med konsollapplikasjoner når vi går i gang med å lage et spennende 🎮 Gjett tallet 🔢-spill. Dette interaktive spillet utfordrer spillere til å bruke intuisjonen sin ved å gjette et tilfeldig generert tall innenfor et forhåndsdefinert område. Underveis vil vi utforske grunnleggende konsepter som
- 🎲 Generering av tilfeldige tall;
- ✅ Validering av brukerinput;
- 🤝 Brukerinteraksjon;
- 💾 Til og med lagring av spillresultater til en fil.
🏆 Utfordringen venter
Se for deg å utforske en app som lover spenning og nysgjerrighet. Spillere inviteres til å gjette et mystisk valgt tall innenfor et forhåndsdefinert område. Appen gir umiddelbar tilbakemelding på hvert forsøk og holder nøye oversikt over antall gjetninger.
Dette praktiske eksempelet gir deg muligheten til å finpusse ferdighetene dine i å bygge CLI-apper og demonstrerer kunsten å lage interaktive programmer.
🚀 Resultatapp
Se magien i praksis! Nedenfor ser du en GIF som illustrerer det spennende "Gjett tallet"-spillet du skal lage:
Bygge en konsollapplikasjon for gjettelek
Du står overfor to veier. Det første alternativet inviterer deg til å starte reisen uten hjelp, mens det andre tilbyr en nyttig veiledning for å sikre suksess. Enten du kaster deg ut i det eller følger den strukturerte veiledningen, venter en fascinerende opplevelse som gir deg en funksjonell og engasjerende konsollapplikasjon.
Hovedplan
- 👉 Steg 1: Oppsett og initialisering;
- 👉 Steg 2: Definer spillparametere;
- 👉 Steg 3: Definer hjelpefunksjoner;
- 👉 Steg 4: Spilllogikk;
- 👉 Steg 5: Lagre spillresultat;
- 👉 Steg 6: Start spillet;
- 🎉 Konklusjon;
- 🏁 Fullstendig appkode.
Steg 1: Oppsett og initialisering
Forbered grunnlaget ved å opprette en ny katalog og en fil kalt app.js. I denne filen importerer vi nødvendige moduler:
const readline = require('readline');
const fs = require('fs').promises;
Opprett et Readline-grensesnitt:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Forklaring: Vi importerer de nødvendige modulene: readline for brukerinteraksjon og fs.promises for filoperasjoner. Deretter oppretter vi et Readline-grensesnitt kalt rl for å håndtere inn- og utdata.
Steg 2: Definer spillparametere
Angi minimums- og maksimumstall:
const minNumber = 1;
const maxNumber = 100;
Generer det hemmelige tallet:
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
Initialiser forsøkstelleren:
let attempts = 0;
Forklaring: Vi definerer området for tallene (minNumber og maxNumber) som det hemmelige tallet skal genereres innenfor. Det hemmelige tallet genereres tilfeldig ved hjelp av Math.random() og tildeles secretNumber. Variabelen attempts initialiseres for å holde oversikt over brukerens forsøk.
Steg 3: Definer hjelpefunksjoner
Utstyr med en hjelpefunksjon for feilfri validering:
function isValidGuess(guess) {
return !isNaN(guess)
&& guess >= minNumber
&& guess <= maxNumber;
}
Forklaring: Funksjonen isValidGuess kontrollerer om brukerens gjetning er et gyldig tall innenfor det angitte området (minNumber til maxNumber).
Steg 4: Spilllogikk
Spillets kjernefunksjonalitet gjennom playGame-funksjonen:
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: Funksjonen playGame utgjør hovedspill-løkken. Den bruker rl.question for å be brukeren om en gjetning. Hvis gjetningen er gyldig, sjekker funksjonen om gjetningen samsvarer med det hemmelige tallet. Hvis ikke, gis tilbakemelding til brukeren og spill-løkken fortsetter rekursivt.
Steg 5: Lagre spillresultat
Implementer logikken for å lagre brukerens spillprestasjoner 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: Funksjonen saveGameResult bruker fs.promises for å legge til spillresultatet i en fil kalt game_results.txt. Den gir tilbakemelding om lagringen av resultatet var vellykket eller mislykket.
Steg 6: Start spillet
Opprett velkomstmelding og start spillet:
console.log('Welcome to the Guess the Number game!');
playGame();
Forklaring: Vi viser en velkomstmelding og starter spill-løkken ved å kalle funksjonen playGame.
🎉 Konklusjon: Seiersrunde
Ved å utvikle Gjett Tallet-spillet, har du fått verdifull erfaring med å designe interaktive og engasjerende konsollapplikasjoner. Dette eksempelet viser samspillet mellom brukerinput, generering av tilfeldige tall, validering og filhåndtering, noe som resulterer i en engasjerende spillopplevelse.
👨💻 Full 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();
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.56
Bygge en Gjettelek-Konsollapp
Sveip for å vise menyen
I dette kapittelet får du muligheten til å forbedre ferdighetene dine med konsollapplikasjoner når vi går i gang med å lage et spennende 🎮 Gjett tallet 🔢-spill. Dette interaktive spillet utfordrer spillere til å bruke intuisjonen sin ved å gjette et tilfeldig generert tall innenfor et forhåndsdefinert område. Underveis vil vi utforske grunnleggende konsepter som
- 🎲 Generering av tilfeldige tall;
- ✅ Validering av brukerinput;
- 🤝 Brukerinteraksjon;
- 💾 Til og med lagring av spillresultater til en fil.
🏆 Utfordringen venter
Se for deg å utforske en app som lover spenning og nysgjerrighet. Spillere inviteres til å gjette et mystisk valgt tall innenfor et forhåndsdefinert område. Appen gir umiddelbar tilbakemelding på hvert forsøk og holder nøye oversikt over antall gjetninger.
Dette praktiske eksempelet gir deg muligheten til å finpusse ferdighetene dine i å bygge CLI-apper og demonstrerer kunsten å lage interaktive programmer.
🚀 Resultatapp
Se magien i praksis! Nedenfor ser du en GIF som illustrerer det spennende "Gjett tallet"-spillet du skal lage:
Bygge en konsollapplikasjon for gjettelek
Du står overfor to veier. Det første alternativet inviterer deg til å starte reisen uten hjelp, mens det andre tilbyr en nyttig veiledning for å sikre suksess. Enten du kaster deg ut i det eller følger den strukturerte veiledningen, venter en fascinerende opplevelse som gir deg en funksjonell og engasjerende konsollapplikasjon.
Hovedplan
- 👉 Steg 1: Oppsett og initialisering;
- 👉 Steg 2: Definer spillparametere;
- 👉 Steg 3: Definer hjelpefunksjoner;
- 👉 Steg 4: Spilllogikk;
- 👉 Steg 5: Lagre spillresultat;
- 👉 Steg 6: Start spillet;
- 🎉 Konklusjon;
- 🏁 Fullstendig appkode.
Steg 1: Oppsett og initialisering
Forbered grunnlaget ved å opprette en ny katalog og en fil kalt app.js. I denne filen importerer vi nødvendige moduler:
const readline = require('readline');
const fs = require('fs').promises;
Opprett et Readline-grensesnitt:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
Forklaring: Vi importerer de nødvendige modulene: readline for brukerinteraksjon og fs.promises for filoperasjoner. Deretter oppretter vi et Readline-grensesnitt kalt rl for å håndtere inn- og utdata.
Steg 2: Definer spillparametere
Angi minimums- og maksimumstall:
const minNumber = 1;
const maxNumber = 100;
Generer det hemmelige tallet:
const secretNumber =
Math.floor(Math.random() * (maxNumber - minNumber + 1)) + minNumber;
Initialiser forsøkstelleren:
let attempts = 0;
Forklaring: Vi definerer området for tallene (minNumber og maxNumber) som det hemmelige tallet skal genereres innenfor. Det hemmelige tallet genereres tilfeldig ved hjelp av Math.random() og tildeles secretNumber. Variabelen attempts initialiseres for å holde oversikt over brukerens forsøk.
Steg 3: Definer hjelpefunksjoner
Utstyr med en hjelpefunksjon for feilfri validering:
function isValidGuess(guess) {
return !isNaN(guess)
&& guess >= minNumber
&& guess <= maxNumber;
}
Forklaring: Funksjonen isValidGuess kontrollerer om brukerens gjetning er et gyldig tall innenfor det angitte området (minNumber til maxNumber).
Steg 4: Spilllogikk
Spillets kjernefunksjonalitet gjennom playGame-funksjonen:
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: Funksjonen playGame utgjør hovedspill-løkken. Den bruker rl.question for å be brukeren om en gjetning. Hvis gjetningen er gyldig, sjekker funksjonen om gjetningen samsvarer med det hemmelige tallet. Hvis ikke, gis tilbakemelding til brukeren og spill-løkken fortsetter rekursivt.
Steg 5: Lagre spillresultat
Implementer logikken for å lagre brukerens spillprestasjoner 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: Funksjonen saveGameResult bruker fs.promises for å legge til spillresultatet i en fil kalt game_results.txt. Den gir tilbakemelding om lagringen av resultatet var vellykket eller mislykket.
Steg 6: Start spillet
Opprett velkomstmelding og start spillet:
console.log('Welcome to the Guess the Number game!');
playGame();
Forklaring: Vi viser en velkomstmelding og starter spill-løkken ved å kalle funksjonen playGame.
🎉 Konklusjon: Seiersrunde
Ved å utvikle Gjett Tallet-spillet, har du fått verdifull erfaring med å designe interaktive og engasjerende konsollapplikasjoner. Dette eksempelet viser samspillet mellom brukerinput, generering av tilfeldige tall, validering og filhåndtering, noe som resulterer i en engasjerende spillopplevelse.
👨💻 Full 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();
Takk for tilbakemeldingene dine!