Пользователь, который использует определенную команду 'shiritori' и помечает другого пользователя, будет игроком1. Пользователь с тегом будет player2. Я уже скачал файл JSON с большинством слов словаря, во-первых, и я проверил его здесь, и он оказался успешным:
let usedWords = []
let points = 0
function shiritoriCommand(arguments, receivedMessage) {
let word = receivedMessage.content.substr(11)
fs.readFile('./words_dictionary.json', 'utf8', (err, jsonString) => {
if (err) {
console.log("Error reading file from disk:", err)
return
}
try {
const dictionary = JSON.parse(jsonString)
if (word in dictionary && !(usedWords.includes(word)) && word.length >= 4) {
points = points + word.length
receivedMessage.channel.send('The word is in the dictionary! You have a total of ' + points + ' points!')
usedWords.push(word)
} else {
receivedMessage.channel.send('Either the word is not in the dictionary, it is too short or it has already been used. You gain no points.')
}
} catch(err) {
console.log('Error parsing JSON string:', err)
}
})
}
Текущая программа принимает полученное сообщение и разделяет слово с substr (). Затем он читает словарь, чтобы узнать, найдено ли там слово. Если это так, он помещает слово в массив использованных слов, поэтому его нельзя использовать снова для получения очков. Очки - это длина слова (которая должна составлять 4 или более, иначе она не будет учитываться). Сумма показывается, когда используется правильное слово.
Однако я нахожу сложным включить 2 игроков в Это. Я был вдохновлен дуэлью Pokecord, как можно отличить слова двух игроков и что именно должно быть сделано? Первоначально я устроил это так:
let player1 = receivedMessage.author
let player2 = receivedMessage.mentions.members.first()
Кроме того, я хочу, чтобы у каждого игрока был 15-секундный временной интервал. Игра останавливается, когда любой из игроков набирает 200 очков. Теперь я могу справиться с этим некоторое время l oop:
points1 = 0
points2 = 0
while (points1 <= 200 || points2 <= 200) {
/* Do I use set interval and duplicate the first function for each player
and assign their respective points */
}
Если они не ответят к тому времени, то ход переходит к следующему игроку. Я понятия не имею, как объединить все это, чтобы сделать правильную игру.