📜  构建一个“Mad Libs”(Word Blanks) - Javascript (1)

📅  最后修改于: 2023-12-03 14:55:31.010000             🧑  作者: Mango

构建一个Mad Libs (Word Blanks) - Javascript

Mad Libs是一个填空文字游戏。玩家需要根据所提供的词类(名词,动词,形容词等)提供相应的词汇,然后将这些词语填入给定的空格中,从而创建一个有趣的故事或段落。

在本教程中,我们将使用Javascript创建一个Mad Libs游戏。

准备工作

在开始之前,请确保您已经安装了Node.js和npm。

首先,让我们创建一个新的Node.js项目,并安装inquirer依赖项:

mkdir mad-libs
cd mad-libs
npm init -y
npm install inquirer
创建Mad Libs游戏

创建一个名为index.js的新文件并打开它。首先,让我们在文件开头引入所需的模块:

const inquirer = require('inquirer');

现在,让我们创建一个空的词汇表,用户可以填写空格:

const wordBlanks = {
  noun1: '',
  noun2: '',
  verb1: '',
  verb2: '',
  adjective1: '',
  adjective2: '',
  adverb: '',
  pluralNoun: ''
};

接下来,我们需要编写一个函数,该函数将提示用户填写词汇表中的空格,并将其存储在wordBlanks对象中。我们将使用inquirer模块来创建提示:

function getWords() {
  return inquirer.prompt([
    {
      type: 'input',
      name: 'noun1',
      message: 'Enter a noun:'
    },
    {
      type: 'input',
      name: 'noun2',
      message: 'Enter another noun:'
    },
    {
      type: 'input',
      name: 'verb1',
      message: 'Enter a verb:'
    },
    {
      type: 'input',
      name: 'verb2',
      message: 'Enter another verb:'
    },
    {
      type: 'input',
      name: 'adjective1',
      message: 'Enter an adjective:'
    },
    {
      type: 'input',
      name: 'adjective2',
      message: 'Enter another adjective:'
    },
    {
      type: 'input',
      name: 'adverb',
      message: 'Enter an adverb:'
    },
    {
      type: 'input',
      name: 'pluralNoun',
      message: 'Enter a plural noun:'
    }
  ])
  .then(answers => {
    wordBlanks.noun1 = answers.noun1;
    wordBlanks.noun2 = answers.noun2;
    wordBlanks.verb1 = answers.verb1;
    wordBlanks.verb2 = answers.verb2;
    wordBlanks.adjective1 = answers.adjective1;
    wordBlanks.adjective2 = answers.adjective2;
    wordBlanks.adverb = answers.adverb;
    wordBlanks.pluralNoun = answers.pluralNoun;
  });
}

该函数返回一个Promise,该Promise在用户完成填写后将解决。

现在,我们需要编写一个用于生成故事的函数。我们将使用模板文字来构建故事,并在其中插入wordBlanks对象中的词汇:

function generateStory() {
  return `One day, while walking through the ${wordBlanks.noun1}, a ${wordBlanks.adjective1} ${wordBlanks.noun2} suddenly appeared. It ${wordBlanks.verb1} ${wordBlanks.adverb} and then ${wordBlanks.verb2} away. Everyone who saw it was ${wordBlanks.adjective2} and couldn't believe their ${wordBlanks.pluralNoun}.`;
}

现在,让我们在主函数中调用getWords和generateStory函数:

async function main() {
  await getWords();
  const story = generateStory();
  console.log(story);
}

main();

最后,我们可以运行脚本并玩Mad Libs游戏了!运行以下命令:

node index.js

填写空格后,将生成一个故事并输出到控制台。

总结

在本教程中,我们使用Javascript创建了一个Mad Libs游戏,并学习了如何使用inquirer模块来创建交互式提示。您可以继续扩展游戏并使其更加有趣,例如向用户输入提供更多词类选择,或者使用API来从Internet上获取随机的模板故事并将它们填写。