;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;mIRC Snake Yilan Oyunu Calismasi(by jeun)
;Kullanim(Start) /snake 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Degistirilebilir Ayarlar
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
alias -l yem_buyuklugu return 20
alias -l yilan_kalinligi return 18
alias -l yilan_rengi return 1
alias -l yem_rengi return 1
alias -l snake_hizi return 11
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
alias -l snake_baslat {
  if !$window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]) { window -p @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] } | sn_pu_
  if (%snake_x) { $v1 %snake.x $snake_hizi }
  if (%snake_y) { $v1 %snake.y $snake_hizi }
  if ($inrect(%snake_yem_x,%snake_yem_y,%snake.x,%snake.y,$yem_buyuklugu,$yem_buyuklugu)) { snake_tit_pu | goto snake } 
  if ($inrect(%snake.x,%snake.y,%snake_yem_x,%snake_yem_y,$yem_buyuklugu,$yem_buyuklugu)) { snake_tit_pu } 
  :snake
  if (%snake_puan > 10 && $snake_kend_carp) { snake_bitir }
  clear @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
  set %snake_coordi_ $gettok(%snake_coordi_,5-,32) 
  set %snake_coordi_ %snake_coordi_  %snake.x %snake.y $yilan_kalinligi $yilan_kalinligi
  drawrect -fe @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $yilan_rengi 1 %snake_coordi_
  if (%snake_yem_x == $null) { snake_yemle }
  drawrect -f @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $yem_rengi 2 %snake_yem_x %snake_yem_y $yem_buyuklugu $yem_buyuklugu
  if (%snake.x !isnum $+(1-,$window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).dw) || %snake.y !isnum $+(1-,$window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).dh)) { snake_bitir } 
}
alias -l snake_tit_pu { set %snake_coordi_ %snake_coordi_ %snake.x %snake.y $yilan_kalinligi $yilan_kalinligi  | snake_yemle | inc %snake_puan | sn_pu_  }
alias -l sn_pu_ { titlebar @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Skor: %snake_puan }
alias -l snake_yemle {
  if $calc(%snake_maxlenl - 20) isnum $+(1,-,$len(%snake_coordi_)) { drawtext @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] 1 $r(60,100) $r(60,100)  Oyunu denediginiz icin tesekkurler. :) | snake_bitir } 
  ;efekt
  if (%snake_yem_x) { drawrect -f @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] $iif($yem_rengi == 4,12,4) 1 %snake_yem_x %snake_yem_y $yem_buyuklugu $yem_buyuklugu }
  set %snake_yem_x $r(20,$calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bw - 30)) 
  set %snake_yem_y $r(20,$calc($window(@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]).bh - 30))
}
alias snake_kend_carp {
  var %m = 1
  set %snake_new $removecs($gettok(%snake_coordi_,-13-0,32),$+($chr(32),$yilan_kalinligi $yilan_kalinligi)) 
  var %new_lines = $calc($gettok(%snake_new,0,32) / 2)
  while %m <= %new_lines {
    var %snk = $replace($gettok(%snake_new,2-0,32) %snake.x %snake.y $yilan_kalinligi $yilan_kalinligi,$chr(32),$chr(44))
    if $inrect( [ %snk ] ) { return $true }
    set %snake_new $gettok(%snake_new,3-,32)
    inc %m
  }
  unset %snake_new
}
alias -l snake_bitir {    
  .timersnake off | sn_pu_ 
  $iif($input(Oyun Bitti $crlf $+ Skor: %snake_puan puan $crlf $+ Tekrar Oynamak İster misin ?,y,Snake),snake,window -c @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...])
  halt
}
alias snake {
  noop $input(Oyunu Duraklatmak veya Yeniden devam ettirmek icin Space(Bosluk) $crlf $+ Hareket icin Yön Kontrol Tuslarini Kullanin,ok,Snake Bilgi)
  unset %snake*
  set %snake_puan 0 | set %snake.x 10 | set %snake.y 20
  set %snake_coordi_ %snake.x %snake.y $yilan_kalinligi $yilan_kalinligi $calc(%snake.x + 7) %snake.y $yilan_kalinligi $yilan_kalinligi $calc(%snake.x + 14) %snake.y $yilan_kalinligi $yilan_kalinligi 
  set %snake_x inc | var_cap
  .timersnake -h 0 50 snake_baslat  
}
on *:close:@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]:{ .timersnake off | unset %snake* }
on *:keydown:@
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]:*: { 
  if ($keyval == 32 && $v1 != %snake_keyval ) { $iif($timer(snake),.timersnake off,.timersnake -h  0 50 /snake_baslat) }
  ;asagi 
  if ($keyval == 40 && $v1 != %snake_keyval && %snake_y != dec) { set %snake_y inc | unset %snake_x }
  ;yukari
  if ($keyval == 38 && $v1 != %snake_keyval && %snake_y != inc) { set %snake_y dec | unset %snake_x  }
  ;sag
  if ($keyval == 39 && $v1 != %snake_keyval && %snake_x != dec) { set %snake_x inc | unset %snake_y  }
  ;sol
  if ($keyval == 37 && %snake_x != inc) { set %snake_x dec | unset %snake_y  }
  set %snake_keyval $keyval
}
on *:active:*:{ if ($lactive == @
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]) { .timersnake off } }
alias -l var_cap { var %t | while (1) var %t = %t $+ . | :error | reseterror | set %snake_maxlenl $len(%t) | return %snake_maxlenl }