Освоение игры в угадывание узлов: веселые и интерактивные способы проверить свои навыки программирования

Готовы ли вы повысить свои навыки работы с 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');
});

Это всего лишь несколько способов создания игры в угадывание узлов. Не стесняйтесь экспериментировать и добавлять свои собственные особенности, чтобы сделать игру еще более захватывающей. Приятного кодирования!