Jeu de black jack 2.2

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 723 fois - Téléchargée 27 fois

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

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
19 juin 2009

Bonjour à tous,
j'aurai souhaiter utiliser ce logiciel mais je ne sais pas comment mi prendre,j'ai fais une copie dans le presse papier mais je n'arrive pas à le lancer...
Merci d'avance pour votre aide et bonne continuation.ciao
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
j'avais pas vu :

on *:text:!score*:?:{
if ($2 != $null) {
if (%score. [ $+ [ $2 ] ] == $null) { .set %score. [ $+ [ $2 ] ] 0 | .notice $nick $2 n'a pas encore de score définitif }
else { .notice $nick le score de $2 est de %score. [ $+ [ $2 ] ] }
}
if ($2 == $null) {
if (%score. [ $+ [ $nick ] ] == $null) { .set %score. [ $+ [ $nick ] ] 0 | .notice $nick tu n'a pas encore de score définitif }
else { .notice $nick ton score est de %score. [ $+ [ $nick ] ] }
}
}

Tu verifie 2 fois la meme chose tu peux optimiser :

on *:text:!score*:?:{
if ($2) {
if (!%score. $+ $2) { set %score. $+ $2 0 | .notice $nick $2 n'a pas encore de score définitif }
else { .notice $nick le score de $2 est de %score. $+ $2 }
}
else {
if (!%score. $+ $nick) { set %score. $+ $nick 0 | .notice $nick tu n'a pas encore de score définitif }
else { notice $nick ton score est de %score. $+ $nick }
}
}

J'trouve ca mieux perso :)
Messages postés
24
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
27 juin 2005

clem54 voila ^^' désolé j'était vraiment débordé :x
Messages postés
129
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
30 juin 2012

Alors, les hashtables seraient bien plus appropriés dans ce cas-ci...
Deuxièmement, tu te compliques la vie :) Regarde par exemple ca :
if ($2 > 0) {
if ($2 < 1001) {
Tu pourrais ne pas ouvrir tant de conditions sinon tu risques de ne plus t'y retrouver après... Quelle solution adopter ? Tout simplement, utilise le "halt" :)
Genre :
"if ($nick != pwet) { msg $nick Tu n'es pas pwet | halt }
ici, le code continue si le $nick == pwet
etc etc"
Donc sers-toi du halt, ca sera plus propre.
Aussi, regroupe tes évènements TEXT et pour le reste, ca me semble pas trop mal pour un début
Bonne continuation !

Giustino, Admin VegaGames
Messages postés
253
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2005

j'attend toujours ton adresse msn :x
Afficher les 13 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.

Du même auteur (WD_40)