İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Web Programlama (PHP, ASP, HTML, CSS, JavaScript)
Web Programlama (PHP, ASP, HTML, CSS, JavaScript)

Discord.js V13 ile kelime oyunu yazmak

Akifㅤ19.12.20222 cevap1.637 görüntüleme
2021'den beri371 mesaj
#1
Bu, Discord.js geliştiricileri için bir rehberdir. Komutu canlı denemek istiyorsanız, aşağıda deneyebileceğiniz alan bırakıldı.
Bu rehber başka bir yerde vardı lakin, rehberin güvenliğini sağlamak adına, revize edilmiş bir biçimde açıyorum.
Bu kod, etrafta adam gibi kelime oyunu kodu olmadığı için yazılmıştır.

Nasıl bir şey?
Kelime oyunu. Öncekinin son harfi ile sizin ilk harfiniz aynı olacak. Tabii kolaya kaçıp rastgele kelime yazma hakkınız yok. Kelimeler listesinden kontrol ediliyor.
Bir ekran görüntüsü:
1671482162467.png

Kod, ilgili açıklamaları üzerinde:
const Discord = require('discord.js'); //Biliyorsunuz anlatmaya gerek yok.
const db = require('quick.db') //Dosyaya yazma için quick.db
const prefix = "!" //Normal prefixiniz işte, kod hata vermesin diye var. Eğer zaten tanımlıysa yazmaya gerek yok.
const LIMITOR = 25 * 2 * 2 * 2;
const kelimeListesi = require("./kelimeler.json");
const delay = require("timers/promises").setTimeout;



client.on("message", async message => {
    if (message.author.bot || message.channel.type === 'dm') return;  //Bot ise dur
    if (message.content.startsWith(prefix + "kelime")) { //yeni oyun
        await message.channel.send("Oyun başladı\n\nkelime") //kelimeyi yazar
        db.set(`kelime_${message.guild.id}`, { topkelime: 0, sonharf: "e", kelimeler: ["kelime"] }) //son harfi not alır.
    }
    const oyun = db.get(`kelime_${message.guild.id}`);
    if (!oyun) return;

    const kelime = message.content.toLocaleLowerCase('tr'); //Mesajdaki kelimeyi çok gerekeceği için tanımladık

    const { topkelime, sonharf, kelimeler } = oyun;

    async function bitti(baslik) {
        const embed = new Discord.MessageEmbed().setAuthor("Kelime oyunu")
            .setTitle(baslik)
            .addField("Son harfimiz şuydu:", sonharf, true)
            .addField("Toplam doğru kelime:", String(topkelime), true)

        await message.delete();
        const mess = await message.channel.send({ embeds: [embed] });
        await delay(2500);
        return mess.delete();
    }

    if (kelime[0] !== sonharf)
        return await bitti("Kelimenin ilk ile önceki kelimenin son harfi uyuşmuyor!");

    if (kelime.length < 3)
        return await bitti("Yazdığın kelime `3 harf`ten kısa!");

    if (kelime.endsWith("ğ"))
        return await bitti("Yazdığın kelime `Ğ` ile bitiyor!");

    if (kelimeler.includes(kelime))
        return await bitti(`Yazdığın kelime son \`${LIMITOR}\` kelime ile aynı!`);

    if (!kelimeListesi.includes(kelime))
        return await bitti("TDK'de kelime yok!");

    await message.react("?").catch(_ => _)//Doğru ise emoji atar
    //Kelimeleri not al
    if (kelimeler.length >= LIMITOR) oyun.kelimeler.shift();

    oyun.kelimeler.push(kelime);
    oyun.sonharf = kelime.slice(-1);//son harfi yazdı
    oyun.topkelime++;
    db.set(`kelime_${message.guild.id}`, oyun);

});


Bu kod, yine kendi yazdığım Alair adlı bottan alınmıştır. Açık kaynak kodludur, başka şeyler için de bakabilirsiniz:
https://github.com/Akif9748/akf-alair
Peki bunu nasıl deneyebiliriz?
Alair'in ana merkezinde, canlı olarak komutu deneyebilir, botu da ekleyebilirsiniz:
https://discord.gg/9cBnKmjzvH
👍 3
Cevaplar
2022'den beri1.425 mesaj
#2
Ben const discord = require kısmını anlamadım hocam... Şaka şaka.

Elinize sağlık güzel bir içerik olmuş.
👍 1
2021'den beri11 bin mesaj
#3
Elinize sağlık.
👍 1

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.