Jeu de black jack 2.2

Contenu du snippet

Jeu de blackjack multi joueurs en privé, attention il s'agit d'un blackjack en privé contre l'ordinateur et non pleins de joueurs qui jouent ensemble

Source / Exemple :


;Lorsque quelqu'un tape !blackjack sur un canal ou en privé avec vous
;Cela vérifi si la variable %blackjack. [ $+ [ $nick ] ] est nulle, ou si elle est égal à oui ou à non
;Si elle est nulle, elle se changeras en "non" pour que le joueur puisse jouer
;Si elle est égal à oui, c'est parce que le joueur a déjà commencé une partie de blackjack
;Et finallement, si elle est égal à non, la variable se changeras en "oui" et la partie de blackjack débutera à ce moment

on *:text:!blackjack*:*:{ 
  if (%blackjack. [ $+ [ $nick ] ] == $null) { set %blackjack. [ $+ [ $nick ] ] non } 
  if (%blackjack. [ $+ [ $nick ] ] == oui) { notice $nick tu est déjà entrain de jouer au blackjack! } 
  if (%blackjack. [ $+ [ $nick ] ] == non) { 
    if ($2 > 0) { 
      if ($2 < 1001) { 
        if (%score. [ $+ [ $nick ] ] == $null) { set %score. [ $+ [ $nick ] ] 0 } 
        set %cartenumero. [ $+ [ $nick ] ] 0 
        set %gage. [ $+ [ $nick ] ] $2  
        set %blackjack. [ $+ [ $nick ] ] oui 
        set %carte1. [ $+ [ $nick ] ] $rand(1,10)
        set %carte2. [ $+ [ $nick ] ] $rand(1,11) 
        set %carte3. [ $+ [ $nick ] ] $rand(1,11) 
        set %carte4. [ $+ [ $nick ] ] $rand(1,11) 
        set %result1. [ $+ [ $nick ] ] $calc( %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] ) 
        set %result2. [ $+ [ $nick ] ] $calc( %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] + %carte3. [ $+ [ $nick ] ] ) 
        set %result3. [ $+ [ $nick ] ] $calc( %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] + %carte3. [ $+ [ $nick ] ] + %carte4. [ $+ [ $nick ] ] ) 
        set %carte6. [ $+ [ $nick ] ] $rand(1,11) 
        set %carte7. [ $+ [ $nick ] ] $rand(1,11) 
        set %result5. [ $+ [ $nick ] ] $calc( %carte6. [ $+ [ $nick ] ] + %carte7. [ $+ [ $nick ] ] ) 
        timerclosebj. [ $+ [ $nick ] ] 1 120 set %blackjack. [ $+ [ $nick ] ] non 
        msg $nick tu a en main deux carte. %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] = %result1. [ $+ [ $nick ] ] (tappe !carte pour avoir une carte et !stop pour arrêter) 
        msg $nick voici une des cartes de l'ordinateur. %carte6. [ $+ [ $nick ] ] + |?| = ? 
      } 
    } 
  } 
} 

;Lorsque quelqu'un tape !carte sur un canal ou en privé avec vous
;Cela vérifi si, premièrement, la variable %blackjack. [ $+ [ $nick ] ] est égal à oui
;Ensuite, si elle est égal à oui, cela vérifiras si la variable %cartenumero. [ $+ [ $nick ] ] égal a 0,1 ou 2
;Si celle-ci est égal à 0 , le joueur à droit à deux autres cartes
;Si celle-ci est égal à 1 , le joueur à droit à une dernière carte
;Tandis que si elle est égal à 2, ceci mettra fin à la partie et déterminera qui est le vainqueur
;A l'opposer, si la variable égal à non, ceci va tout simplement ignorer le joueur jusqu'a ce qu'il tape !blackjack <mise>

on *:text:!carte:*:{ 
  if (%blackjack. [ $+ [ $nick ] ] == non) { halt } 
  if (%blackjack. [ $+ [ $nick ] ] == oui) { 
    timerclosebj. [ $+ [ $nick ] ] off 
    timerclosebj. [ $+ [ $nick ] ] 1 120 set %blackjack. [ $+ [ $nick ] ] non 
    inc %cartenumero. [ $+ [ $nick ] ] 
    if (%cartenumero. [ $+ [ $nick ] ] == 1) { 
      if (%result2. [ $+ [ $nick ] ] > 21) { msg $nick perdu: vous avez obtenu %result2. [ $+ [ $nick ] ] $+ , ce qui dépasse 21, dommage. (- %gage. [ $+ [ $nick ] ] pts) | dec %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non | halt } 
    msg $nick tu a en main trois carte. %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] + %carte3. [ $+ [ $nick ] ] = %result2. [ $+ [ $nick ] ] (il te reste encore une carte) | halt } 
  } 
  if (%cartenumero. [ $+ [ $nick ] ] == 2) { 
    if (%result3. [ $+ [ $nick ] ] > 21) { msg $nick perdu: vous avez obtenu %result3. [ $+ [ $nick ] ] $+ , ce qui dépassé 21, dommage. (- %gage. [ $+ [ $nick ] ] pts) | dec %score. [ $+ [ $nick ] ] %gage | set %blackjack. [ $+ [ $nick ] ] non | halt } 
  msg $nick tu a en main quatre carte. %carte1. [ $+ [ $nick ] ] + %carte2. [ $+ [ $nick ] ] + %carte3. [ $+ [ $nick ] ] + %carte4. [ $+ [ $nick ] ] = %result3. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
  if (%result3. [ $+ [ $nick ] ] == 21) { 
    if (%result5. [ $+ [ $nick ] ] != 21) { msg $nick blackjack: tu gagne cette manche avec 21 (+ $+ $calc( %gage. [ $+ [ $nick ] ] *3) pts) | inc %score. [ $+ [ $nick ] ] $calc( %gage. [ $+ [ $nick ] ] *3) | set %blackjack. [ $+ [ $nick ] ] non | halt } 
  } 
  if (%result5. [ $+ [ $nick ] ] > 21) { msg $nick gagné: l'ordinateur à dépassé 21, tu gagne donc (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage | set %blackjack. [ $+ [ $nick ] ] non | halt } 
  if (%result3. [ $+ [ $nick ] ] > %result5. [ $+ [ $nick ] ]) { msg $nick tu a obtenu %result3. [ $+ [ $nick ] ] avec 4 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | msg $nick gagné: tu gagne cette manche avec %result3. [ $+ [ $nick ] ] (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
  if (%result3. [ $+ [ $nick ] ] < %result5. [ $+ [ $nick ] ]) { msg $nick tu a obtenu %result3. [ $+ [ $nick ] ] avec 4 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | msg $nick perdu: tu perd cette manche avec %result3. [ $+ [ $nick ] ] (- %gage. [ $+ [ $nick ] ] pts) | dec %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
  if (%result3. [ $+ [ $nick ] ] == %result5. [ $+ [ $nick ] ]) { msg $nick tu a obtenu %result3. [ $+ [ $nick ] ] avec 4 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | msg $nick nul: cette manche est nulle, tu reprend donc tes points sans les perdres | set %blackjack. [ $+ [ $nick ] ] non } 
} 

;Lorsque quelque tape !stop sur un canal ou en privé avec vous, c'est un peu du même principe qu'avez !carte
;Cela vérifi si, premièrement, la variable %blackjack. [ $+ [ $nick ] ] est égal à oui
;Ensuite, si elle est égal à oui, cela vérifiras si la variable %cartenumero. [ $+ [ $nick ] ] égal a 0,1 ou 2
;Tandis que si elle est égal à 2, ceci mettra fin à la partie et déterminera qui est le vainqueur
;A l'opposer, si la variable égal à non, ceci va tout simplement ignorer le joueur jusqu'a ce qu'il tape !blackjack <mise>
;Et évidement, lorsque le joueur tape !stop la variable %blackjack. [ $+ [ $nick ] ] se met en "non" et sa recommence avec !blackjack <mise>

on *:text:!stop:*:{ 
  if (%blackjack. [ $+ [ $nick ] ] == oui) {
    timerclosebj. [ $+ [ $nick ] ] off 
    timerclosebj. [ $+ [ $nick ] ] 1 120 set %blackjack. [ $+ [ $nick ] ] non 
    if (%blackjack. [ $+ [ $nick ] ] == oui) { 
      timerclosebj. [ $+ [ $nick ] ] off 
      if (%cartenumero. [ $+ [ $nick ] ] == 0) { msg $nick tu a obtenu %result1. [ $+ [ $nick ] ] avec 2 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
      if (%cartenumero. [ $+ [ $nick ] ] == 1) { msg $nick tu a obtenu %result2. [ $+ [ $nick ] ] avec 3 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
      if (%cartenumero. [ $+ [ $nick ] ] == 2) { msg $nick tu a obtenu %result3. [ $+ [ $nick ] ] avec 4 carte et l'ordinateur a obtenu %result5. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
    } 
    if (%cartenumero. [ $+ [ $nick ] ] == 0) { 
      if (%result1. [ $+ [ $nick ] ] == 21) { 
        if (%result5. [ $+ [ $nick ] ] != 21) { msg $nick blackjack: tu gagne cette manche avec 21 (+ $+ $calc( %gage. [ $+ [ $nick ] ] *3) pts) | inc %score. [ $+ [ $nick ] ] $calc( %gage. [ $+ [ $nick ] ] *3) | set %blackjack. [ $+ [ $nick ] ] non | halt } 
      } 
      if (%result5. [ $+ [ $nick ] ] > 21) { msg $nick gagné: l'ordinateur à dépassé 21, tu gagne donc (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage | set %blackjack. [ $+ [ $nick ] ] non | halt } 
      if (%result1. [ $+ [ $nick ] ] < %result5. [ $+ [ $nick ] ]) { msg $nick perdu: tu perd cette manche avec %result1. [ $+ [ $nick ] ] (- %gage. [ $+ [ $nick ] ] pts) | dec %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non | halt } 
      if (%result1. [ $+ [ $nick ] ] > %result5. [ $+ [ $nick ] ]) { msg $nick gagné: tu gagne cette manche avec %result1. [ $+ [ $nick ] ] (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non | halt } 
    } 
    if (%cartenumero. [ $+ [ $nick ] ] == 1) { 
      if (%result2. [ $+ [ $nick ] ] == 21) { 
        if (%result5. [ $+ [ $nick ] ] != 21) { msg $nick blackjack: tu gagne cette manche avec 21 (+ $+ $calc( %gage. [ $+ [ $nick ] ] *3) pts) | inc %score. [ $+ [ $nick ] ] $calc( %gage. [ $+ [ $nick ] ] *3) | set %blackjack. [ $+ [ $nick ] ] non | halt } 
      } 
    } 
    if (%result5. [ $+ [ $nick ] ] > 21) { msg $nick gagné: l'ordinateur à dépassé 21, tu gagne donc (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage | set %blackjack. [ $+ [ $nick ] ] non | halt } 
    if (%result2. [ $+ [ $nick ] ] < %result5. [ $+ [ $nick ] ]) { msg $nick perdu: tu perd cette manche avec %result2. [ $+ [ $nick ] ] (- %gage. [ $+ [ $nick ] ] pts) | dec %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
    if (%result2. [ $+ [ $nick ] ] > %result5. [ $+ [ $nick ] ]) { msg $nick gagné: tu gagne cette manche avec %result2. [ $+ [ $nick ] ] (+ %gage. [ $+ [ $nick ] ] pts) | inc %score. [ $+ [ $nick ] ] %gage. [ $+ [ $nick ] ] | set %blackjack. [ $+ [ $nick ] ] non } 
    if (%result2. [ $+ [ $nick ] ] == %result5. [ $+ [ $nick ] ]) { msg $nick nul: cette manche est nulle, tu reprend donc tes points sans les perdres | set %blackjack. [ $+ [ $nick ] ] non } 
  }
} 

;Et finallement, si quelqu'un tape !score ou !score <nick> en privé ou sur un canal avec vous
;Si le texte est égal à "!score" tout court. Ceci vérifira si d'abord vous avec un score, si vous en avez un, il vous le dira, et si vous en avez pas
il vous diras que votre score est présentement nul
;Si le texte est égal à "!score pseudo" . Ceci vérifira si d'abord pseudo a un score, si il en a un, il vous le dira, et si il en a pas, il dira que pseudo n'a pas de score.
C'est aussi simple que cela :)

on *:text:!score*:*:{ 
  if ($2 != $null) { 
    if (%score. [ $+ [ $2 ] ] == $null) { set %score. [ $+ [ $2 ] ] 0 | notice $nick blackjack: $2 n'a présentement aucun point(s) } 
    else { notice $nick blackjack: $2 a présentement %score. [ $+ [ $2 ] ] points } 
  } 
  if ($2 == $null) { 
    if (%score. [ $+ [ $nick ] ] == $null) { set %score. [ $+ [ $nick ] ] 0 | notice $nick blackjack: tu n'as présentement aucun point(s) } 
    else { notice $nick blackjack: tu as présentement %score. [ $+ [ $nick ] ] points } 
  } 
}

Conclusion :


Tout d'abord voila un petit guide des commandes

!blackjack X (x entre 1 et 1000)
!carte (pour demander un autre carte)
!stop (pour arreter)
!score (pour avoir votre score)
!score <nick> (pour avoir le score de <nick>

Voici quelque changements que j'ai effectué pour cette version 2.2

- Supprimation des . devant les set ^^"
- Possibilité que plus d'une personnes puissent jouer en même temps
- Règlement de très petits bugs
- Ajout de commentaires personnel à la source entre chaque évênements

A venir

En raison de ma période d'examen qui arrive à grand pas, je ne peut pas continuer la source mais pour plus tard.

- Je remplacerez peut-être le paquet de variable par des hashtables
- Possibilité de mettre un peu de couleurs dans les textes
- Ajout d'une petite apercu du jeu

Voila, amusez vous bien :)
PS: Si vous rencontrez un bug merci de me le faire parvenir :)

A voir également

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.

Du même auteur (WD_40)