You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C++中实现从不同长度数组随机选元素生成MadLib?

用数组实现随机MadLib生成方案

核心思路

通过通用随机选取函数,从每个预设数组中抽取元素,再拼接成完整的MadLib文本。以下是JavaScript和Python两种常见实现:


JavaScript 实现

  1. 定义预设数组(按需求填充选项)
// 预设数组
const place = ["火山口", "图书馆", "海底洞穴", "太空站", "面包店"];
const name = ["莉莉", "杰克", "玛雅", "里奥", "佐伊"];
const verb = ["跳着踢踏舞", "吹着口哨", "哼着摇滚", "耍着杂技", "弹着尤克里里"];
const animal = ["粉色河马", "会说话的猫头鹰", "戴帽子的企鹅", "三只眼的猫", "迷你长颈鹿"];
const phrase = ["在月光下转圈圈", "把快乐打包成快递", "和影子玩猜拳", "对着星星许愿", "把烦恼揉成纸团"];
const object = ["镀金勺子", "发光的玻璃球", "复古收音机", "毛绒恐龙玩偶", "魔法地图", "手工编织围巾"];
const country = ["冰岛", "新西兰", "哥斯达黎加", "摩洛哥", "日本", "巴西", "挪威", "南非", "加拿大"];
  1. 通用随机选择函数
// 从数组中随机选取一个元素
function getRandomElement(arr) {
  const randomIndex = Math.floor(Math.random() * arr.length);
  return arr[randomIndex];
}
  1. 生成MadLib文本
// 抽取随机元素
const randomPlace = getRandomElement(place);
const randomName = getRandomElement(name);
const randomVerb = getRandomElement(verb);
const randomAnimal = getRandomElement(animal);
const randomPhrase = getRandomElement(phrase);
const randomObject = getRandomElement(object);
const randomCountry = getRandomElement(country);

// 拼接成MadLib句子
const madLib = `来自${randomCountry}的${randomName},在${randomPlace}里${randomVerb},身边跟着一只${randomAnimal},手里攥着${randomObject},嘴里念叨着:"${randomPhrase}!"`;

// 输出结果
console.log(madLib);

Python 实现

  1. 定义预设数组
# 预设数组
place = ["火山口", "图书馆", "海底洞穴", "太空站", "面包店"]
name = ["莉莉", "杰克", "玛雅", "里奥", "佐伊"]
verb = ["跳着踢踏舞", "吹着口哨", "哼着摇滚", "耍着杂技", "弹着尤克里里"]
animal = ["粉色河马", "会说话的猫头鹰", "戴帽子的企鹅", "三只眼的猫", "迷你长颈鹿"]
phrase = ["在月光下转圈圈", "把快乐打包成快递", "和影子玩猜拳", "对着星星许愿", "把烦恼揉成纸团"]
object_list = ["镀金勺子", "发光的玻璃球", "复古收音机", "毛绒恐龙玩偶", "魔法地图", "手工编织围巾"]
country = ["冰岛", "新西兰", "哥斯达黎加", "摩洛哥", "日本", "巴西", "挪威", "南非", "加拿大"]
  1. 随机选择与文本生成
import random

# 抽取随机元素
random_place = random.choice(place)
random_name = random.choice(name)
random_verb = random.choice(verb)
random_animal = random.choice(animal)
random_phrase = random.choice(phrase)
random_object = random.choice(object_list)
random_country = random.choice(country)

# 拼接MadLib
mad_lib = f"来自{random_country}的{random_name},在{random_place}里{random_verb},身边跟着一只{random_animal},手里攥着{random_object},嘴里念叨着:\"{random_phrase}!\""

# 输出结果
print(mad_lib)

注意事项

  • 数组命名尽量避免和语言关键字冲突(比如Python中object是内置类型,所以改用object_list)
  • 可以根据需求修改MadLib的拼接句式,让文本更有趣多样

内容的提问来源于stack exchange,提问作者TinyChops

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:40:23