Jeux du serpent, style snake nokia

Soyez le premier à donner votre avis sur cette source.

Snippet vu 23 185 fois - Téléchargée 26 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

nitro120
Messages postés
229
Date d'inscription
vendredi 16 août 2002
Statut
Membre
Dernière intervention
9 juillet 2003
-
pitié une source aussi longue mets la en zip
cs_PereNoel
Messages postés
68
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
2 mai 2004
-
J'ai pas testé mais le code a l'air bien ! C'es toi qui l'a imaginé le comde m3n2o ?
cs_CoolWave
Messages postés
48
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
30 septembre 2009
-
Ben moi g testé, c vraiment pas mal ! Chapeau ^^
cs_pall
Messages postés
1
Date d'inscription
samedi 1 février 2003
Statut
Membre
Dernière intervention
1 février 2003
-
Félicitation ! j'suis impressionné ;-)

J'savais même pas qu'on pouvait faire ça avec un tel langage...
Inutil, mais bien codé !! lol
cs_HatMan
Messages postés
141
Date d'inscription
dimanche 25 août 2002
Statut
Membre
Dernière intervention
11 février 2004
-
tre tre tre tre bien
ya un bug avec les couleur (la couleur du blanc 0)
sinon magnifik °,)

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.