javascript - 节点 - 如何从一个单词中删除 x 个字母
问题描述
作为一个练习,我正在尝试创建一个简单的猜字母游戏。我编写了这段代码,它将从.txt
字典文件中提取一个随机单词。
fs.readFile(filename, { encoding: 'utf-8' }, (error, data) => {
if( error ) return new Error(error);
let randomWord;
const d = data.split('\n');
for(let i = d.length - 1; i > 0; i--){
const r = Math.floor(Math.random() * (i + 1));
const tmp = d[i];
d[i] = d[r];
d[r] = tmp;
randomWord = d[r];
}
const splittedWord = randomWord.split('');
//console.log(splittedWord);
console.log(`Selected word length is ${splittedWord.length}`);
const mid = Math.floor( splittedWord.length / 2 );
//console.log(mid);
let outputWord;
for(let e = mid - 1; e > 0; e--){
const r = Math.floor(Math.random() * (e + 1));
outputWord = splittedWord.splice(r, 1, '_');
}
// the output word have letters removed but sometimes not in a random way
console.log(splittedWord.toString());
});
为了随机抽取要使用的单词,我实现了Fisher-Yates 算法。我能够从文本文件中获取一个随机单词,并将其拆分以获取一个包含单词单个字符的数组。我想要实现的是从单词中删除 x 个字母,然后将其显示给需要猜测删除的字母以重新创建原始单词的用户。实现这一目标的最佳方法是什么?我正在考虑使用相同的算法来随机抽取单词,但不确定。任何建议将不胜感激。
解决方案
let currentTimestamp=Date.now().toString()
currentTimestamp = currentTimestamp.split("")
let singleDigitRand = currentTimestamp[12]
console.log(singleDigitRand)
你可以像这样选择 x
推荐阅读
- wordpress - 如何使用 Wordpress 修剪单词功能
- wordpress - 如何在 docker-compose 中的 wordpress 和 wp-cli 之间共享卷
- dart - 看目录时如何处理dart中的FileSystemException
- html - 传递数据时换行符丢失?
- vb.net - VB.NET Youtube LIKE 和 DISLIKE 按钮类 VB.NET 的问题
- angular - 如何删除打字稿中的类
- c# - 实体框架 6 - 数据库架构未更新
- tomcat - 部署到 tomcat 服务器时出现 JPA 错误
- angular - 在Angular6的另一个组件中清除表单
- android - 自定义 Mesibo 聊天气泡