Готовы ли вы повысить свои навыки работы с Node.js и попутно развлечься? В этой статье блога мы рассмотрим различные методы создания захватывающей игры-угадайки с использованием Node.js. Независимо от того, новичок вы или опытный разработчик, этот интерактивный проект поможет вам отточить свои навыки программирования, наслаждаясь азартом классической игры.
Для начала давайте определимся, что такое игра в угадывание узлов. Цель проста: программа генерирует случайное число, и задача игрока — угадать это число в определенном диапазоне. Звучит захватывающе, правда? Итак, давайте углубимся в методы!
Метод 1: базовый ввод в консоль
Мы можем начать с простого подхода, который использует встроенный модуль readlineв Node.js. Этот метод запрашивает у игрока ввод и сравнивает его с сгенерированным числом. Он обеспечивает мгновенную обратную связь и поддерживает интерес игрока, пока он не угадает правильное число.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const targetNumber = Math.floor(Math.random() * 100) + 1;
function guessNumber() {
rl.question('Guess a number between 1 and 100: ', (answer) => {
const guess = parseInt(answer);
if (guess === targetNumber) {
console.log('Congratulations! You guessed the correct number!');
rl.close();
} else if (guess > targetNumber) {
console.log('Too high! Try again.');
guessNumber();
} else {
console.log('Too low! Try again.');
guessNumber();
}
});
}
guessNumber();
Метод 2: Интернет-игра
Если вы хотите добавить немного изюминки в свою игру в угадайку, почему бы не создать веб-версию? Используя такие платформы, как Express.js и HTML/CSS, вы можете создать интерактивный интерфейс, позволяющий игрокам вводить свои предположения.
const express = require('express');
const app = express();
const path = require('path');
const targetNumber = Math.floor(Math.random() * 100) + 1;
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
app.post('/guess', (req, res) => {
const guess = parseInt(req.body.guess);
if (guess === targetNumber) {
res.send('Congratulations! You guessed the correct number!');
} else if (guess > targetNumber) {
res.send('Too high! Try again.');
} else {
res.send('Too low! Try again.');
}
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
Метод 3: многопользовательская игра с Socket.IO
Для еще большего удовольствия вы можете создать многопользовательскую версию игры с помощью Socket.IO. Это позволяет нескольким игрокам одновременно подключаться и соревноваться, чтобы первым угадать число.
const express = require('express');
const app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const targetNumber = Math.floor(Math.random() * 100) + 1;
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
});
io.on('connection', (socket) => {
socket.on('guess', (guess) => {
if (guess === targetNumber) {
io.emit('message', 'Congratulations! Someone guessed the correct number!');
} else if (guess > targetNumber) {
io.emit('message', 'Too high! Try again.');
} else {
io.emit('message', 'Too low! Try again.');
}
});
});
http.listen(3000, () => {
console.log('Server listening on port 3000');
});
Это всего лишь несколько способов создания игры в угадывание узлов. Не стесняйтесь экспериментировать и добавлять свои собственные особенности, чтобы сделать игру еще более захватывающей. Приятного кодирования!