- Home»
- Cod sursa: PicWin Snake Game
PicWin Snake Game
PicWin Snake Game
mIRC Snippet - Cod sursa ce creaa un mic joculet snake. Acest cod este creat in picwin pentru mirc si este foarte bun pentru a invata scripting IRC.
| Postat de | Copyright | Categorie | Review user | Vizualizari | Data |
|---|---|---|---|---|---|
| BLKoldSUN | JulianC | games | Cod netestat | 344 | 2023-12-17 00:32:32 |
alias snake {
if (!$hget(snake)) {
hmake snake 10
if ($file($scriptdirsnake.dat)) hload snake $+(",$scriptdirsnake.dat,")
}
if (!$window(@snakedump)) window -h @snakedump
if (!$window(@snake)) window -adhk0p @snake 100 100 213 224
if (!$window(@snakevis)) snakevis
if (!$hget(snake,snake.level)) hadd snake snake.level 1
if (!$hget(snake,snake.highscore)) $&
hadd snake snake.highscore Sparkle 200 $chr(9) FiberOPtics 150 $chr(9) hixxy 100 $chr(9) Mpdreamz 50 $chr(9) JulianC 20
if (!$window(@snakescore)) window -h @snakescore
if (!$hget(snake,snake.player)) { hadd snake snake.player SnakePlayer }
if ($1 == $null) {
clear @snakescore
clear @snakedump
tokenize 9 $hget(snake,snake.highscore)
aline @snakescore $*
aline @snakescore current 0
hadd snake snake.pos 100 100
hadd snake snake.direction left
hadd snake snake.reddot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
hadd snake snake.points 0
hadd snake snake.game off
hadd snake snake.eaten 1
hadd snake snake.current 6
hdel snake snake.timed
}
drawcopy -n @snakevis 185 1 220 405 @snake 0 0
drawtext -nbpr @snake $rgb(255,255,255) $rgb(0,0,0) tahoma 18 55 1 SNAKE 2.0
drawtext -nbpr @snake $rgb(255,255,255) $rgb(0,0,0) tahoma 12 60 20 by: Mpdreamz
drawtext -nr @snake $rgb(255,255,255) tahoma 12 35 40 Speed =
var %x = -ndfr @snake $rgb(128,128,128)
drawrect $iif($hget(snake,snake.level) == 1,%x,-ndr @snake $rgb(128,128,128)) 1 91 40 14 14 5 5
drawrect $iif($hget(snake,snake.level) == 2,%x,-ndr @snake $rgb(128,128,128)) 1 107 40 14 14 5 5
drawrect $iif($hget(snake,snake.level) == 3,%x,-ndr @snake $rgb(128,128,128)) 1 123 40 14 14 5 5
drawrect $iif($hget(snake,snake.level) == 4,%x,-ndr @snake $rgb(128,128,128)) 1 139 40 14 14 5 5
drawrect $iif($hget(snake,snake.level) == 5,%x,-ndr @snake $rgb(128,128,128)) 1 155 40 14 14 5 5
drawrect -ndr @snake $rgb(128,128,128) 1 66 85 14 14 5 5
drawrect -ndfr @snake $rgb(255,255,255) 1 74 104 100 12 5 5
drawrect -ndr @snake $rgb(128,128,128) 1 74 103 100 14 5 5
drawtext -nr @snake $rgb(255,255,255) tahoma 9 70 87 P
drawtext -nr @snake $rgb(255,255,255) tahoma 9 95 41 1
drawtext -nr @snake $rgb(255,255,255) tahoma 9 111 41 2
drawtext -nr @snake $rgb(255,255,255) tahoma 9 127 41 3
drawtext -nr @snake $rgb(255,255,255) tahoma 9 143 41 4
drawtext -nr @snake $rgb(255,255,255) tahoma 9 159 41 5
drawtext -nr @snake $rgb(255,255,255) tahoma 12 35 85 Press
drawtext -nr @snake $rgb(255,255,255) tahoma 12 35 101 Player:
drawtext -nr @snake $rgb(255,255,255) tahoma 12 83 85 to play snake!
drawtext -nr @snake 0 tahoma 9 78 104 $hget(snake,snake.player)
var %z = $iif($1 == $null,70,$1)
drawrect -nr @snake $rgb(0,0,0) 5 %z 70 10 10
var %rl = 1 , %t = $int($calc(255 / 14)) , %a = $calc(%z + 10)
while (%rl <= 14) {
drawrect -nr @snake $rgb($calc(%t * %rl),$calc(%t* %rl),204) 5 %a 70 10 10
inc %rl
inc %a 10
}
%rl = 1
while (%rl <= 5) {
drawtext -nr @snake $rgb(255,255,0) tahoma 9 35 $calc(110 + (%rl *12)) %rl . $line(@snakescore,%rl)
inc %rl
}
drawdot @snake
.timersnakeup -m 1 $calc($hget(snake,snake.level) * 100) snake $iif($calc(%z - 10) != -150,$v1,220)
}
alias -l snakevis {
window -ph @snakevis
var %q = 154 , %x = $($rgb(%q,255,%q),) , %p = 1
while %p <= 154 {
drawline -nr @snakevis $(%x,2) 1 1 %p 184 %p
inc %p
dec %q
}
var %q = 0 , %x = $($rgb(0,0,%q),) , %p = 1
while %p <= 220 {
drawline -nr @snakevis $(%x,2) 1 185 %p 405 %p
inc %p
inc %q
}
}
alias -l timsnake {
.timersnake2 off
.timersnake2 -m 0 $calc($hget(snake,snake.level) * 100) movesnake $hget(snake,snake.direction)
}
alias -l returnline {
var %rl = 1 , %t = $int($calc(255 / $hget(snake,snake.eaten)))
while (%rl <= $hget(snake,snake.eaten) ) {
drawrect -r @snake $rgb($calc(%t * %rl),$calc(%t* %rl),204) 5 $line(@snakedump,%rl,0) 10 10
inc %rl
}
}
alias -l quitsnake {
.timersnake2 off
.timersnakeup off
window -c @snakevis
window -c @snakedump
window -c @snakescore
window -c @snake
hsave -o snake $+(",$scriptdirsnake.dat,")
hfree snake
}
alias -l movesnake {
if ($hget(snake,snake.game) == on) {
if ($hget(snake,snake.game) == off) snake
iline @snakedump 1 $dp(1) $dp(2)
dline @snakedump $calc($hget(snake,snake.eaten) + 1))
if ( $1 == left ) { hadd snake snake.pos $calc($dp(1) - 10) $dp(2) }
if ( $1 == up ) { hadd snake snake.pos $dp(1) $calc($dp(2) - 10) }
if ( $1 == right ) { hadd snake snake.pos $calc($dp(1) + 10) $dp(2) }
if ( $1 == down ) { hadd snake snake.pos $dp(1) $calc($dp(2) + 10) }
if ($hget(snake,snake.pos) == $hget(snake,snake.reddot) ) { score red }
if ($hget(snake,snake.pos) == $hget(snake,snake.greydot) ) { score | hdel snake snake.greydot }
if ($gettok($hget(snake,snake.pos),1,32) > 180) || ($gettok($hget(snake,snake.pos),1,32) < 5) { snakedie | return }
if ($gettok($hget(snake,snake.pos),2,32) > 165) || ($gettok($hget(snake,snake.pos),2,32) < 15) { snakedie | return }
if ($fline(@snakedump,$hget(snake,snake.pos),1,0)) { snakedie | return }
if ($hget(snake,snake.scored)) && ($hget(snake,snake.fx)) { hdec snake snake.fx 5 }
dyndraw $hget(snake,snake.fx)
}
}
alias -l snakedie {
hadd snake snake.game off
.timersnake2 off
hadd snake snake.timed on
drawtext -r @snake $rgb(255,255,255) tahoma 9 8 174 You have LOST!
drawrect -dr @snake $rgb(128,128,128) 1 90 172 14 14 5 5
drawtext -r @snake $rgb(255,255,255) tahoma 9 93 174 C
drawtext -r @snake $rgb(255,255,255) tahoma 9 106 174 Continue
var %rl = 1 , %h
while (%rl <= 5) {
%h = $addtok(%h,$line(@snakescore,%rl),9)
inc %rl
}
var %h = $reptok(%h,$wildtok(%h,current *,1,9),$hget(snake,snake.player) $hget(snake,snake.points),1,9)
hadd snake snake.highscore %h
}
alias -l score {
$iif($1 == red,hinc snake snake.points $calc(10 - $hget(snake,snake.level)),hinc snake snake.points 20)
if (!$1) return
.timergrowdelay2 -m 1 25 hinc snake snake.eaten 1
:redball
hadd snake snake.reddot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
if ($fline(@snakedump,$hget(snake,snake.reddot),1,0)) {
hadd snake snake.reddot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
goto redball
}
if (*.* !iswm $calc($hget(snake,snake.eaten)/5)) {
hadd -u2 snake snake.greydot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
:greyball
if ($fline(@snakedump,$hget(snake,snake.greydot),1,0)) || ($hget(snake,snake.pos) == $hget(snake,snake.greydot)) {
hadd -u2 snake snake.greydot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
goto greyball
}
}
rline @snakescore $fline(@snakescore,current *) current $hget(snake,snake.points)
filter -wwcetu 2 32 @snakescore @snakescore
hadd snake snake.current $fline(@snakescore,current *)
hadd snake snake.scored 1
hadd snake snake.fx 255
}
alias -l dyndraw {
clear -n @snake
drawcopy -n @snakevis 185 1 220 405 @snake 0 0
drawcopy -n @snakevis 1 1 184 154 @snake 8 18
drawrect -nr @snake $rgb(255,0,0) 5 $hget(snake,snake.reddot) 10 10
if ($hget(snake,snake.greydot)) { drawrect -nr @snake $rgb(80,80,80) 5 $v1 10 10 }
drawrect -nr @snake $rgb(0,0,0) 1 8 18 184 154
drawrect -ndfr @snake $rgb(0,0,0) 1 8 0 69 18 5 5
drawtext -npbr @snake $rgb(255,255,255) $rgb($iif($1,$1,0),0,0) tahoma 14 8 1 Pts: $hget(snake,snake.points)
drawtext -nr @snake $rgb(255,255,0) tahoma 9 $&
$iif($hget(snake,snake.current) != 6,100 4 You are currently $ord($v1) !,90 4 You're not in Highscore !)
drawrect -ndr @snake $rgb(128,128,128) 1 150 172 14 14 5 5
drawtext -nr @snake $rgb(255,255,255) tahoma 9 154 174 B
drawtext -nr @snake $rgb(255,255,255) tahoma 9 166 174 Back
returnline
drawrect -nr @snake $rgb(0,0,0) 5 $hget(snake,snake.pos) 10 10
drawdot @snake
}
alias -l dp { return $gettok($hget(snake,snake.pos),$1,32) }
menu @snake {
sclick: snake.player $mouse.x $mouse.y
}
alias -l snake.player {
if ($inrect($1,$2,74,104,100,12)) && ($hget(snake,snake.game) == off) {
hadd snake snake.player $gettok($?="Please enter your name this will be used in the Highscore",1,32)
if (!$hget(snake,snake.player)) || ($hget(snake,snake.player) == current) hadd snake snake.player Lamer
}
}
on 1:KEYDOWN:@snake:*: {
var %d = $hget(snake,snake.direction) , %g = $hget(snake,snake.game) , %t = $hget(snake,snake.timed) , %k = $keyval
if ((%k == 81) || (%k == 27)) quitsnake
if (%k == 66) {
.timersnake2 off
.timersnakeup off
hdel snake snake.timed
snake
}
if (%t) && (%k == 67) {
hadd snake snake.pos 100 100
hadd snake snake.direction left
hadd snake snake.reddot $calc(10 * $rand(2,15)) $calc(10 * $rand(6,14))
hadd snake snake.points 0
hadd snake snake.eaten 1
hadd snake snake.game on
hdel snake snake.timed
clear @snakedump
timsnake
}
if (%g == off) && (!%t) && (%k == 80) { .timersnakeup off | hadd snake snake.game on | timsnake }
if (%g == off) && (%k isnum 49-53) { hadd snake snake.level $calc($v1 - 48) | snake 40 }
if (%g == on) && (%k == 37) && ((%d != right) && (%d != left)) { movesnake left | hadd snake snake.direction left | timsnake }
if (%g == on) && (%k == 38) && ((%d != down) && (%d != up)) { movesnake up | hadd snake snake.direction up | timsnake }
if (%g == on) && (%k == 39) && ((%d != left) && (%d != right)) { movesnake right | hadd snake snake.direction right | timsnake }
if (%g == on) && (%k == 40) && ((%d != up) && (%d != down)) { movesnake down | hadd snake snake.direction down | timsnake }
}
on *:CLOSE:@snake: { quitsnake }
IRC Snippets