petit jeux quand on a rien a faire sur irc
Source / Exemple :
alias snake {
window -pozdk0 +tnbL @snake.menu -1 -1 200 150
window -r @snake.menu
set %selected 1
set %menulevel $iif($1,$1,1)
if (!%backcolour) {
set %backcolour 10
set %snakecolour 5
set %textcolour 8
set %applecolour 4
}
if (!%snakelevel) { set %snakelevel 1 }
if (!%highscore) { set %highscore 0 }
updmenu
.timerupdmenu -m 0 100 updmenu
}
alias updmenu {
hfree -w menu*
if (!$window(@Snake.menu)) { .timerupdmenu off | return }
clear -n @snake.menu
drawrect -fn @snake.menu %backcolour 1 0 0 300 200
drawtext -bn @snake.menu %textcolour %backcolour "Comic Sans MS" 22 0 0 Nokia Snake Clone
if (%menulevel == 1) {
hadd -m menu m1 Nouvelle partie
hadd -m menuc m1 snakegame %snakelevel $+ $chr(9) $+ window -c @snake.menu
hadd -m menu m2 Définir niveau
hadd -m menuc m2 set % $+ menulevel 2
hadd -m menu m3 Meilleur score
hadd -m menuc m3 set % $+ menulevel 3
hadd -m menu m4 Options
hadd -m menuc m4 set % $+ menulevel 4
hadd -m menu m5 Quitter
hadd -m menuc m5 close -@ @snake.menu
}
if (%menulevel == 2) {
hadd -m menu m1 Niveau 1
hadd -m menuc m1 set % $+ snakelevel 1 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m2 Niveau 2
hadd -m menuc m2 set % $+ snakelevel 2 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m3 Niveau 3
hadd -m menuc m3 set % $+ snakelevel 3 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m4 Niveau 4
hadd -m menuc m4 set % $+ snakelevel 4 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m5 Niveau 5
hadd -m menuc m5 set % $+ snakelevel 5 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m6 Niveau 6
hadd -m menuc m6 set % $+ snakelevel 6 $+ $chr(9) $+ set % $+ menulevel 1
hadd -m menu m7 Niveau 7
hadd -m menuc m7 set % $+ snakelevel 7 $+ $chr(9) $+ set % $+ menulevel 1
}
if (%menulevel == 3) {
hadd -m menu m1 Meilleur score:
hadd -m menuc m1 set % $+ menulevel 1
Hadd -m menu m2 - %highscore
hadd -m menuc m2 set % $+ menulevel 1
hadd -m menu m3 Retour au menu
hadd -m menuc m3 set % $+ menulevel 1
}
if (%menulevel == 4) {
hadd -m menu m1 Couleurs
hadd -m menuc m1 set % $+ menulevel 5
hadd -m menu m2 Traverser les murs
hadd -m menuc m2 set % $+ menulevel 6
hadd -m menu m3 Retour menu
hadd -m menuc m3 set % $+ menulevel 1
}
if (%menulevel == 5) {
window -c @snake.menu
dialog -m snakecol snakecol | return
}
if (%menulevel == 6) {
hadd -m menu m1 On $iif(%thruwalls,[X])
hadd -m menuc m1 set % $+ thruwalls on $+ $chr(9) $+ set % $+ menulevel 4
hadd -m menu m2 Off $iif(!%thruwalls,[X])
hadd -m menuc m2 unset % $+ thruwalls $+ $chr(9) $+ set % $+ menulevel 4
}
if (%selected > $hmatch(menu,m*,0)) { set %selected 1 }
var %i = 1
if (%selected > 3) {
var %i = $calc(%selected - 2)
}
var %u = 0
while ($hget(menu,m $+ %i)) {
if ($calc(%u - %selected) > 2) break
inc %u
drawtext -bn @snake.menu $iif(%selected == %i,%backcolour %textcolour,%textcolour %backcolour) "Comic Sans MS" 16 20 $calc(30 * %u) $hget(menu,m $+ %i)
inc %i
}
drawpic @snake.menu
}
on *:KEYDOWN:@snake.menu:13,38,40: {
if ($keyval == 13) {
var %c = $hget(menuc,m $+ %selected)
while (%c) {
var %x = $gettok(%c,1,9)
var %c = $deltok(%c,1,9)
%x
}
set %selected 1
}
if ($keyval == 38) {
if ($hget(menu,m $+ $calc(%selected - 1))) {
dec %selected
}
}
if ($keyval == 40) {
if ($hget(menu,m $+ $calc(%selected + 1))) {
inc %selected
}
}
}
alias snakegame {
unset %gameover %ishighscore
hfree -w snake
if (!$1) { tokenize 32 1 }
window -pozdk0 +tbnL @snake -1 -1 300 200
if ($1 == 1) { hadd -m snake time 250 }
if ($1 == 2) { hadd -m snake time 225 }
if ($1 == 3) { hadd -m snake time 175 }
if ($1 == 4) { hadd -m snake time 125 }
if ($1 == 5) { hadd -m snake time 100 }
if ($1 == 6) { hadd -m snake time 75 }
if ($1 == 7) { hadd -m snake time 50 }
hadd -m snake snake 3 4:4 4:5 4
hadd -m snake dir right
hadd -m snake score 0
var %x = 3
var %y = 4
while (%x isnum 3-5) { var %x = $rand(1,27) }
while (%y isnum 3-5) { var %y = $rand(1,15) }
hadd -m snake apple %x %y
updsn
.timerupdsn -m 1 $hget(snake,time) updsn
}
alias updsn {
if (!$window(@Snake)) { .timerupdsn off | snake | return }
if ($active != @Snake) { hadd -m snake pause yes }
var %gone = 0
var %g = $hget(snake,snake)
:two
inc %gone
var %c = $gettok(%g,-1,58)
var %x = $gettok(%c,1,32)
var %y = $gettok(%c,2,32)
if ($hget(snake,dir) == left) { var %x = $calc(%x - 1) }
if ($hget(snake,dir) == right) { var %x = $calc(%x + 1) }
if ($hget(snake,dir) == up) { var %y = $calc(%y - 1) }
if ($hget(snake,dir) == down) { var %y = $calc(%y + 1) }
if (%thruwalls) {
if (%x == 29) { var %x = 0 }
elseif (%y == 18) { var %y = 0 }
elseif (%x == -1) { var %x = 29 }
elseif (%y == -1) { var %y = 17 }
}
else {
if (%x == 29) || (%y == 18) || (%x == -1) || (%y == -1) { set %gameover yes }
}
var %g = %g $+ : $+ %x %y
var %g2 = $deltok(%g,-1,58)
var %c = $gettok(%g,-1,58)
if ($istok(%g2,%c,58)) {
set %gameover yes
}
clear -n @snake
drawrect -fn @snake %backcolour 1 0 0 300 200
if (%gameover == yes) {
drawtext -fn @snake %textcolour "Comic Sans MS" 26 20 30 Perdu!
drawtext -fn @snake %textcolour "Comic Sans MS" 16 20 70 Ton score est: $hget(snake,score)
if ($hget(snake,score) > %highscore) {
set %ishighscore yes
set %highscore $ifmatch
}
if (%ishighscore) {
drawtext -fn @snake %textcolour "Comic Sans MS" 16 20 95 NOUVEAU RECORD!!!!
}
}
else {
if ($hget(snake,apple) != $gettok(%g,-1,58)) { var %g = $gettok(%g,2-,58) }
else {
if (%gone == 1) {
var %a = $hget(snake,apple)
;var %x = $gettok(%a,1,32)
;var %y = $gettok(%a,2,32)
echo
hinc -m snake score $calc(%snakelevel * 7)
while ($istok($hget(snake,snake),%x %y,58)) || (%a == %x %y) {
var %x = $rand(2,27) | var %y = $rand(2,15)
}
hadd -m snake apple %x %y
goto two
}
}
if (!$hget(snake,pause)) { hadd snake snake %g }
while (%g) {
var %c = $gettok(%g,1,58)
var %g = $deltok(%g,1,58)
var %x = $calc($gettok(%c,1,32) * 10)
var %y = $calc($gettok(%c,2,32) * 10)
drawrect -fn @snake %snakecolour 1 %x %y 10 10
}
var %c = $hget(snake,apple)
var %x = $gettok(%c,1,32)
var %y = $gettok(%c,2,32)
drawrect -fn @snake %applecolour 1 $calc(%x * 10) $calc(%y * 10) 10 10
if ($hget(snake,pause)) {
drawtext -bfn @snake %backcolour %textcolour "Comic Sans MS" 20 30 30 Jeu en pause,tape p pour reprendre.
}
}
drawpic @snake
var %titlebar = Score: $hget(snake,score) points
if ($titlebar(@snake) == %titlebar) { return }
titlebar @snake %titlebar
.timerupdsn -m 1 $hget(snake,time) updsn
}
on *:KEYDOWN:@snake:*: {
if ($keychar == p) {
if ($hget(snake,pause)) { hdel snake pause }
else { hadd -m snake pause yes }
}
elseif ($keyval == 37) { if ($hget(snake,dir) != right) { hadd -m snake dir left } }
elseif ($keyval == 38) { if ($hget(snake,dir) != down) { hadd -m snake dir up } }
elseif ($keyval == 39) { if ($hget(snake,dir) != left) { hadd -m snake dir right } }
elseif ($keyval == 40) { if ($hget(snake,dir) != up) { hadd -m snake dir down } }
elseif ($keyval == 100) { if ($hget(snake,dir) != right) { hadd -m snake dir left } }
elseif ($keyval == 104) { if ($hget(snake,dir) != down) { hadd -m snake dir up } }
elseif ($keyval == 102) { if ($hget(snake,dir) != left) { hadd -m snake dir right } }
elseif ($keyval == 98) { if ($hget(snake,dir) != up) { hadd -m snake dir down } }
else { return }
updsn
.timerupdsn -m 0 $hget(snake,time) updsn
}
; Dialog
dialog snakecol {
title "Couleur du serpent Nokia"
size -1 -1 120 50
option dbu
text "Couleur du fond", 1, 0 0 60 10
text "Couleur du serpent", 2, 0 10 60 10
text "'Couleur des pommes", 3, 0 20 60 10
text "Couleur du texte", 4, 0 30 60 10
combo 5, 60 0 60 40, size vsbar drop
combo 6, 60 10 60 40, size vsbar drop
combo 7, 60 20 60 40, size vsbar drop
combo 8, 60 30 60 40, size vsbar drop
button "Save", 9, 20 40 40 10, ok
button "Annuler", 10, 60 40 40 10, cancel
}
on *:DIALOG:snakecol:*:*: {
if ($devent == init) {
var %d = 00 - White
var %d = $addtok(%d,01 - Noir,44)
var %d = $addtok(%d,02 - Bleu,44)
var %d = $addtok(%d,03 - Vert,44)
var %d = $addtok(%d,04 - Rouge,44)
var %d = $addtok(%d,05 - Marron,44)
var %d = $addtok(%d,06 - Violet,44)
var %d = $addtok(%d,07 - Orange,44)
var %d = $addtok(%d,08 - Jaune,44)
var %d = $addtok(%d,09 - Vert pale,44)
var %d = $addtok(%d,10 - Vert anglais,44)
var %d = $addtok(%d,11 - Cyan,44)
var %d = $addtok(%d,12 - Bleu pale,44)
var %d = $addtok(%d,13 - Rose,44)
var %d = $addtok(%d,14 - Gris foncé,44)
var %d = $addtok(%d,15 - Gris clair,44)
didtok snakecol 5 44 %d
didtok snakecol 6 44 %d
didtok snakecol 7 44 %d
didtok snakecol 8 44 %d
did -c snakecol 5 $calc(%backcolour + 1)
did -c snakecol 6 $calc(%snakecolour + 1)
did -c snakecol 7 $calc(%applecolour + 1)
did -c snakecol 8 $calc(%textcolour + 1)
}
if ($devent == sclick) && ($did == 9) {
set %backcolour $calc($did(5) - 1)
set %snakecolour $calc($did(6) - 1)
set %applecolour $calc($did(7) - 1)
set %textcolour $calc($did(8) - 1)
snake
}
if ($devent == sclick) && ($did == 10) { snake 4 }
}
Conclusion :
pour jouer taper /snake
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.