Tekil Mesaj gösterimi
  #8  
Alt 07 Haziran 2012, 23:58
Avatar Yok
Difuzyon Difuzyon isimli Üye şimdilik offline konumundadır
 Coders 

mS Puan: 621
mS Derece: Difuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon ÇalışkanDifuzyon Çalışkan
 
Üyelik tarihi: 16 Temmuz 2009
Bulunduğu yer: code talks!
Mesajlar: 83
Konular: 36
Eklentiler: 4
Alınan Teşekkür: 7
Yapılan Teşekkür: 0
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Standart

Merhaba,

Soru-Cevap mantığınıza yardımcı olabilecek kısımları parçalar halinde paylaşayım:

on TEXT eventını !start ile tetikleyin ve tetikleyen %nicki değer olarak atayın ki yanıt kısımlarında cevap veren nicki eşleştirme yapabilsin.Böylelikle 2. bir kişinin oyuna müdahelesini engellemiş olursunuz.

!start verildikten sonra timer'e bağlı bir ALIAS ile döngü oluşturmalısınız.Örneğin;
Kod:
on *:text:*:#kanal:{
if $1 == !start { alias1 | .timer 0 30 alias1 }
...devamı aşağıda
}
Artık herşey bu alias1 mecrasında ilerleyecektir.alias1 yapınızı öyle bir dizayn etmelisiniz ki soruları istediğiniz txt belgesinden sırayla çekmeli,doğru veya yanlış cevaplar verilmesi halinde bile bu stratejiyi bozmayacak bir düzende ilerlemelidir.Örneğin;
Kod:
alias alias1 {
  set %soruseçenek $r(1,2)
  if %soruseçenek == 1 {
    set %sorusatır $read(Soru1.txt)
    set %sorucevap $token(%sorusatır,2,42)
    msg %soruchan $token(%sorusatır,1,42)
    msg %soruchan $chr(160) $chr(160)
    .timerdifyipucu 1 10 msg %soruchan 2,7IPUCU:5 $ipucu(%sorucevap,20) $(|) msg %soruchan $chr(160) $chr(160)  * 
  }
  if %soruseçenek == 2 {
    msg %soruchan $read(Soru2.txt)
    msg %soruchan $chr(160) $chr(160)
    .timerdifyipucu 1 10 msg %soruchan 2,7IPUCU:5 $ipucu(%sorucevap,10) $(|) msg %soruchan $chr(160) $chr(160)
  }
}
Sorumu buraya yazıyorum*cevabımı yıldızdan sonra yazıyorum
txt belgemde ekli olan soru*cevap şablonuma göre alias1 şu şekilde çalışır:
1 ile 2 rakamı arasında random olarak bir tercih yapar.Şayet tercihi 1 ise Soru1.txt metin belgesinden rastgele bir soru seçer.Soruyu kanala yazar ve 10 sn. sonra ipucu vermeye başlar.$ipucu(%sorucevap,20) ise cevabın %20'sini ipucu olarak sunar.
Şayet tercihi 2 ise Soru2.txt metin belgesinden rastgele bir soru seçer ve 10 sn sonra $ipucu(%sorucevap,10) cevabın %10'unu ipucu olarak sunar.


Gelelim ipucu (*) değerlendirmesi için gerekli olan aliasımıza:
Kod:
alias ipucu { 
  var %cnk = $round($calc((1-$2 /100)*$regex($1,/[^\*\s]/g)),0),%dify = $1,%n,%i = 1 
  while (%cnk) { 
    dec %cnk 
    $null($regex(dify,%dify,/([^\*\s])/g)) 
    var %n = $regml(dify,$r(1,$regml(dify,0))).pos,%dify = $+($left(%dify,$calc(%n -1)),*,$right(%dify,- $+ %n)) 
  } 
  return %dify 
}
BURAYA KADAR SORU-CEVAP ATAMA VE İPUCU SEÇENEKLERİMİZ alias1 AKIŞINDA SEYİR ETMEKTE.
Artık kanala gelen cevapların doğruluğunu test etmede ve puanlama sistemine geçebiliriz:
...devamı aşağıda
Kod:
  if ($1- == %sorucevap) { 
    if !$read(puanlar.txt,r,/^\Q $+ $nick $+ \E\s/) { write puanlar.txt $nick 10 } 
    else { 
      var %difi $readn 
      var %yeah = $calc($token($read(puanlar.txt,%difi),2,32) +10) 
      write $+(-l,%difi) puanlar.txt $nick %yeah 
      if %yeah == 100 {  mode $chan +v $nick | msg $chan Tebrikler $nick 100 puanın oldu }
    }
    timerdify* off
    msg $chan Tebrikler $nick  Doğru yanıt: %sorucevap
    unset %sorucevap
    .timerdifyz 1 3 alias1 | .timerdify 0 33 alias1
  }
alias1 soruyu kanala yazarken aynı anda %sorucevap değerini atıyor,şayet sizin kanala yazdığınız %sorucevap ile örtüşüyorsa size Doğru cevap diyerek puan verecektir.3 sn sonra alias1 döngümüz başa gelecektir.
Ve hemen sonrasına 33 sn. sonunda kendini tazeleyen 2. bir alias1'i devreye alacaktır.Bu sistemde soruların yanıtları süre sonunda belirtilmemiştir ayrıca kanala sadece kendi yazdığınızın dikkate alınması ilavesi getirilmemiştir.
Bu değerleri kendinize göre ayarlayabilirsiniz.

Umarım düzeneğin faydası olmuştur.
__________________
Koli
Alıntı ile Cevapla
 
1 2 13 14 16 17 18 19 21 22 23 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 49 50 51 52 54 55 56 57 58 59 60 61 62 63 67 68 69 70 71 72 73 74 75 76