Konu: Döngüler ve Koşullu İfadeler Anlatım: Emirhan Tarih: 11 Kasım 2024
Merhaba sevgili
IRCrehberi üyeleri,
Bu dersimizde mIRC scripting'de döngüler ve koşullu ifadeler konularını detaylı bir şekilde inceleyeceğiz. Bu yapılar, script'lerinizde kontrol akışını yönetmenizi ve daha karmaşık işlemleri gerçekleştirmenizi sağlar.
Koşullu İfadeler (If Statements)
Koşullu ifadeler, belirli bir koşulun doğru veya yanlış olmasına göre farklı işlemler yapmamızı sağlar.
Temel Yapı: Kod
if (koşul) { işlemler } else { alternatif işlemler } Örnek: Kullanıcının Yaşını Kontrol Etme Kod
alias yas_kontrol { var %yas = $1 if (%yas >= 18) { echo Ehliyet alabilirsiniz. } else { echo Ehliyet almak için yeterli yaşta değilsiniz. } } Kullanım: Bu komut "Ehliyet alabilirsiniz." mesajını ekrana yazdırır.
Karşılaştırma Operatörleri:
== : Eşittir
!= : Eşit değil
> : Büyüktür
< : Küçüktür
>= : Büyük veya eşit
<= : Küçük veya eşit
Mantıksal Operatörler:
&& : Ve (AND)
|| : Veya (OR)
! : Değil (NOT)
Örnek: Kullanıcının İki Değerini Kontrol Etme Kod
alias deger_kontrol { var %sayi1 = $1 var %sayi2 = $2 if ((%sayi1 > 0) && (%sayi2 > 0)) { echo Her iki sayı da pozitiftir. } else { echo En az bir sayı pozitif değil. } } Kullanım: Bu komut "En az bir sayı pozitif değil." mesajını ekrana yazdırır.
Döngüler (Loops)
Döngüler, belirli bir işlemi birden fazla kez tekrarlamamızı sağlar.
Türleri:
While Döngüsü
For Döngüsü
Sınırlı Döngüler
1. While Döngüsü
Koşul doğru olduğu sürece döngü devam eder.
Temel Yapı: Kod
var %i = başlangıç_değeri while (%i <= bitiş_değeri) { işlemler inc %i } Örnek: 1'den 5'e Kadar Sayıları Yazdırma Kod
alias sayilar { var %i = 1 while (%i <= 5) { echo Sayı: %i inc %i } } Kullanım: Bu komut ekrana aşağıdaki çıktıyı verir: PHP- Kodu
Sayı: 1 Sayı: 2 Sayı: 3 Sayı: 4 Sayı: 5
2. For Döngüsü
mIRC scripting'de doğrudan bir "for" döngüsü bulunmamasına rağmen, "while" döngüsü ile benzer işlevi elde edebiliriz.
Örnek: Kod
alias for_dongusu { var %i = 1 while (%i <= 5) { echo For döngüsü: %i inc %i } } 3. Sınırlı Döngüler
Belirli bir liste üzerinde dolaşmak için kullanılır.
Örnek: Kanal Kullanıcılarını Listeleme Kod
alias kanal_kullanicilari { var %i = 1 var %toplam = $nick($active,0) while (%i <= %toplam) { echo Kullanıcı %i: $nick($active,%i) inc %i } } $nick($active,0): Aktif kanaldaki toplam kullanıcı sayısını verir.
$nick($active,%i): Aktif kanaldaki %i'nci kullanıcının ismini verir.
Kullanım: Uygulama: Basit Bir Hesap Makinesi
Kullanıcının girdiği iki sayı üzerinde toplama, çıkarma, çarpma ve bölme işlemleri yapalım.
Alias Tanımlama: Kod
alias hesap_makinesi { var %sayi1 = $1 var %islem = $2 var %sayi2 = $3 if (%islem == +) { var %sonuc = $calc(%sayi1 + %sayi2) } elseif (%islem == -) { var %sonuc = $calc(%sayi1 - %sayi2) } elseif (%islem == *) { var %sonuc = $calc(%sayi1 * %sayi2) } elseif (%islem == /) { if (%sayi2 != 0) { var %sonuc = $calc(%sayi1 / %sayi2) } else { echo Bölme işleminde bölen 0 olamaz! halt } } else { echo Geçersiz işlem! Lütfen +, -, *, / kullanın. halt } echo Sonuç: %sonuc } Kullanım: Kod
/hesap_makinesi 10 + 5
Bu komut ekrana "Sonuç: 15" yazdırır.
Koşullu İfadelerde Metin Karşılaştırma
Metinleri karşılaştırırken eşitlik ve joker karakterler kullanabilirsiniz.
Örnek: Kullanıcının İsmini Kontrol Etme Kod
alias isim_kontrol { var %isim = $1 if (%isim == Emirhan) { echo Hoş geldin, Emirhan! } else { echo Merhaba, %isim } } Kullanım: Kod
/isim_kontrol Emirhan
Bu komut ekrana "Hoş geldin, Emirhan!" yazdırır.
Joker Karakter Kullanımı
$istok() fonksiyonu ile metin içinde belirli bir kelimenin olup olmadığını kontrol edebilirsiniz.
Örnek:
Kod
alias mesaj_kontrol { var %mesaj = $1- if ($istok(%mesaj, merhaba, 32)) { echo Kullanıcı merhaba dedi. } else { echo Kullanıcı farklı bir şey dedi. } } $1-: Alias çağrılırken verilen tüm metni alır.
32: Boşluk karakterini ayırıcı olarak kullanır.
Kullanım: Kod
/mesaj_kontrol merhaba nasılsın
Bu komut ekrana "Kullanıcı merhaba dedi." yazdırır.
Gelişmiş Döngü ve Koşul Kullanımı Örnek: Asal Sayıları Bulma
1'den 20'ye kadar olan sayılar içinde asal olanları bulalım.
Kod
alias asal_sayilar { var %sayi = 2 while (%sayi <= 20) { var %bolen = 2 var %asal = $true while (%bolen < %sayi) { if ($calc(%sayi % %bolen) == 0) { var %asal = $false break } inc %bolen } if (%asal == $true) { echo %sayi bir asal sayıdır. } inc %sayi } } Kullanım: Bu komut, 2'den 20'ye kadar olan asal sayıları ekrana yazdırır.
Uygulama: Basit Bir Chat Botu
Kullanıcıların mesajlarına otomatik yanıt veren bir bot oluşturalım.
Event Tanımlama: Kod
on :TEXT::#:{ if ($1 == !merhaba) { msg $chan Merhaba $nick, hoş geldin! } elseif ($1 == !saat) { msg $chan Şu an saat: $time(HH:nn) } else { msg $chan $nick, komutunuzu anlayamadım. } } Açıklama:
on :TEXT::#: {...}: Herhangi bir kullanıcı, herhangi bir kanalda bir mesaj gönderdiğinde tetiklenir.
$1: Kullanıcının mesajının ilk kelimesi.
$nick: Mesajı gönderen kullanıcının ismi.
$chan: Mesajın gönderildiği kanal.
$time(HH:nn): Geçerli saati saat:dakika
formatında verir.
Kullanım:
Kullanıcı kanalda !merhaba yazarsa, bot "Merhaba [kullanıcı adı], hoş geldin!" mesajını gönderir.
Kullanıcı kanalda !saat yazarsa, bot geçerli saati bildirir.
Farklı bir mesaj yazıldığında bot, komutu anlayamadığını belirtir.
Ders bitimi;
Bu dersimizde mIRC scripting'de döngüler ve koşullu ifadelerin nasıl kullanıldığını öğrendik. Kendi örneklerinizi oluşturarak pratik yapmanızı öneririm.
İyi forumlar IRCrehberi.NET
Saygılar.