Jeux du serpent, style snake nokia

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 688 fois - Téléchargée 28 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire Commentaires
Messages postés
4
Date d'inscription
mardi 31 mars 2009
Statut
Membre
Dernière intervention
8 avril 2009

bonjour =) je suis un peut noob mais j'ai c/c tout le "code" dans la remote de bot irc, arriver sur mon salon je tape " /snake " et sa ne fait rien... peut etre que je suis pas doué, de plus le forum date un peut... mais si quelqu'un pourrais m'aider sa serais gentil =)

biCHon02
Messages postés
1
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
1 novembre 2007

Sa marche pour les calculatrice ou pas ?
Messages postés
3
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
3 septembre 2007

comment on le fais marcher ?
Messages postés
5
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
17 février 2005

J'ai déja vu ce jeu dans un script ( sysreset ) !!!
Messages postés
62
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
6 octobre 2004

c'est génial ...... j'ai rien a dire , mais ya juste UNE chose qui m'agace , c'est que le jeu est petit'' je l'aurait mit le double ou le triple.....mais sa fait rien ^^
Afficher les 17 commentaires

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.