Jeu des trois cailloux

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 525 fois - Téléchargée 28 fois

Contenu du snippet

Comme le titre l'indique, ce code est un jeu qui se joue à deux sur l'irc. Je précise que je n'ai pas inventé le jeu mais je l'ai codé
Cette remote est à ajouter à un bot (enfin c'est mieux)

Source / Exemple :


alias effacevar {
  /unset %etape 
  /unset %joueur?
  /unset %caillouj?
  /unset %chiffrejoueur?
  /unset %decision
  /unset %choixj?
  /unset %manche
  /unset %sansgagnant
}
alias newmanche {
  if (%caillou == on) { 
    /msg %salon %ccd Manche %manche : retournez me dire en pv combien de cailloux vous mettez en jeu. %ccf
    /msg %salon %ccd Rappel : %joueur1 a %caillouj1 cailloux et %joueur2 a %caillouj2 cailloux
    /msg %joueur1 %ccd Manche %manche : combien de cailloux mets-tu en jeu ? %ccf
    /msg %joueur2 %ccd Manche %manche : combien de cailloux mets-tu en jeu ? %ccf
  }
}
alias gobyconsole {
  if (%trivia.mode == running) {
    //echo 1,8 Un quizz est en cours, le jeu des trois cailloux ne peut pas être lancé en même temps 
  } 
  else {
    /set %salon $$?"Lancer le jeu des trois cailloux sur quel salon ?(mettre le #)" 
    /set %caillou on
    /msg %salon %ccd Le jeu des trois cailloux a été lancé à partir de la console de contrôle. Ce jeu se joue à deux joueurs. %ccf 
    /msg %salon %ccd Tapez !joueur pour vous inscrire et !sos pour avoir les règles %ccf
    /set %etape cherchejoueur1
  }
}
alias endbyconsole {
  /set %caillou off
  /effacevar
  /msg %salon %ccd Le jeu des trois cailloux a été arrêté par la console de contrôle %ccf
}
on 1:start: {
  /effacevar
  /set %caillou off
/echo Contient le jeu des trois cailloux codé par I_am-ZE-DaHu
}
; %ccd correspond au couleur du début et %ccf à la fin
On 1:text:*:#:{ 
  if ($strip($1) == !caillou) {
    if (%caillou == off) {
      /set %caillou on
      /set %etape cherchejoueur2
      /set %salon $chan
      /msg $chan %ccd Le jeu des trois cailloux est lancé. Ce jeu se joue à deux joueurs. (jeu créé par I_am-ZE-DaHu) %ccf 
      /msg $chan %ccd Qui veut jouer avec $nick ? Tapez !joueur pour vous inscrire,!sos pour avoir les règles et !finish pour stopper le jeu %ccf 
      /set %joueur1 $nick
      /set %caillouj1 3
      /set %manche 1
    }
    else { 
      /msg $chan %ccd Le jeu des trois cailloux est déjà marche sur le salon %salon . %ccf
    }
  }
  if ($strip($1) == !joueur) {
    if ((%etape == cherchejoueur2) && ($nick != %joueur1)) {
      /set %joueur2 $nick
      /set %caillouj2 3
      /set %etape pvcailloux
      /msg $chan %ccd Ok, la partie va se jouer entre %joueur1 et %joueur2 %ccf
      /msg $chan %ccd Le jeu commence, tapez !sos pour avoir les règles %ccf
      /msg $chan %ccd Venez maintenant me voir en pv pour me dire combien de caillou vous mettez en jeu %ccf
      /msg %joueur1 %ccd Combien de cailloux mets-tu en jeu ? %ccf
      /msg %joueur2 %ccd Combien de cailloux mets-tu en jeu ? %ccf
    }
    if (%etape == cherchejoueur1) {
      /set %joueur1 $nick
      /msg $chan %ccd Ok, tu est inscrit $nick mais il faut encore un deuxième joueur. Tapez !joueur pour vous inscrire %ccf
      /set %etape cherchejoueur2
    }
  }
  if ($strip($1) == !sos) {
    /msg $nick %ccd Chaque joueur dispose de trois cailloux. Le but du jeu est de s'en débarasser le premier. %ccf
    /msg $nick %ccd A chaque manche, chaque joueur vient me dire en pv combien de caillou(x) il met en jeu ( dire : 0, 1, 2 ou 3)
    /msg $nick %ccd Lorsque les deux joueurs ont fait cela, ils disent ensuite chacun leur tour sur le général combien de caillou(x) ils pensent qu'il y a en jeu en tout %ccf
    /msg $nick %ccd Les deux joueurs ne peuvent pas dire le même chiffre. Lorsqu'un joueur devine combien de caillou(x) il y a en jeu en tout, il se débarasse d'un caillou jusqu'a la fin de la partie %ccf
    /msg $nick %ccd Puis la manche recommence jusqu'à ce qu'un joueur n'ait plus de caillou dans sa main. Tapez !finish pour stopper le jeu. %ccf
  }
  if ($strip($1) == !finish) {
    if (($nick == %joueur1) || ($nick == %joueur2)) { 
      /msg $chan %ccd Le jeu est terminé car $nick ne veut plus jouer %ccf
      /set %caillou off
      /effacevar
    }
    elseif ($nick == %master) {
      /msg $chan %ccd Le jeu est terminé car %master ne veut pas qu'il continue %ccf
      /set %caillou off
      /effacevar
    }
    else { 
      /notice $nick %ccd Tu ne peux pas stopper le jeu car tu ne fais pas partie de ceux qui jouent , $nick %ccf
    }
  }
  if (($strip($1) isnum) && (%etape == estimation)) {
    if (($nick == %joueur1) && (%decision == %joueur1)) { 
      if ($strip($1) == $calc(%choixj2 - 2)) {
        /msg $chan %ccd Tu ne peux pas choisir le même chiffre que %joueur2 %ccf
      }
      else {
        /set %choixj1 $calc($strip($1) + 2)
        if (!%choixj2) {
          /msg $chan %ccd Maintenant, à %joueur2 de choisir %ccf
          /set %decision %joueur2
        }
        if ((%choixj2) && (%choixj1)) {
          /msg $chan %ccd OK, les deux joueurs ont fait leur estimation %ccf
          if ($calc(%chiffrejoueur1 + %chiffrejoueur2) == %choixj1) {
            /dec %caillouj1
            if (%caillouj1 == 0) {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur1 ! Il y avait bien $calc(%choixj1 - 2) cailloux en jeu
              /msg $chan %ccd %joueur1 pose donc son dernier caillou %ccf
              /msg $chan %ccd And the winner is.... %joueur1 ! %ccf
              /msg $chan %ccd La partie est terminée %ccf
              /effacevar
              /set %caillou off
            }
            else {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur1 ! Il y avait bien $calc(%choixj1 - 2) cailloux en jeu
              /msg $chan %ccd %joueur1 pose donc un caillou, et n'en a plus que %caillouj1 %ccf
              /set %decision %joueur1
            }
          }
          elseif ($calc(%chiffrejoueur1 + %chiffrejoueur2) == %choixj2) {
            /dec %caillouj2
            if (%caillouj2 == 0) {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur2 ! Il y avait bien $calc(%choixj2 - 2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur2 pose donc son dernier caillou %ccf
              /msg $chan %ccd And the winner is.... %joueur2 ! %ccf
              /msg $chan %ccd La partie est terminée %ccf
              /effacevar
              /set %caillou off
            }
            else {            
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur2 ! Il y avait bien $calc(%choixj2 - 2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur2 pose donc un caillou, et n'en a plus que %caillouj2 %ccf
              /set %decision %joueur2
            }
          }
          else {
            /msg $chan %ccd Aucun des deux joueurs n'a trouvé combien il y avait de cailloux en jeu. La réponse était $calc(%chiffrejoueur1 + %chiffrejoueur2 -2) %ccf
            /inc %sansgagnant
            if (%sansgagnant // 2) {
              /set %decision %joueur1 
            }
            elseif (%sansgagnant \\ 2) {
              /set %decision %joueur2 
            }
          }
          /set %etape pvcailloux
          /inc %manche
          /timernewmanche 1 07 { /newmanche }
          /unset %chiffrejoueur?
          /unset %choixj?
        }
      }
    }
    elseif (($nick == %joueur2) && (%decision == %joueur2)) { 
      if ($strip($1) == $calc(%choixj1 - 2)) {
        /msg $chan %ccd Tu ne peux pas choisir le même chiffre que %joueur1 %ccf
      }
      else {
        /set %choixj2 $calc($strip($1) + 2)
        if (!%choixj1) {
          /msg $chan %ccd Maintenant, à %joueur1 de choisir %ccf
          /set %decision %joueur1
        }
        if ((%choixj2) && (%choixj1)) {
          /msg $chan %ccd OK, les deux joueurs ont fait leur estimation %ccf
          if ($calc(%chiffrejoueur1 + %chiffrejoueur2) == %choixj1) {
            /dec %caillouj1
            if (%caillouj1 == 0) {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur1 ! Il y avait bien $calc(%choixj1 -2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur1 pose donc son dernier caillou %ccf
              /msg $chan %ccd And the winner is.... %joueur1 ! %ccf
              /msg $chan %ccd La partie est terminée %ccf
              /effacevar
              /set %caillou off
            }
            else {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur1 ! Il y avait bien $calc(%choixj1 -2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur1 pose donc un caillou, et n'en a plus que %caillouj1 %ccf
              /set %decision %joueur1
            }
          }
          elseif ($calc(%chiffrejoueur1 + %chiffrejoueur2) == %choixj2) {
            /dec %caillouj2
            if (%caillouj2 == 0) {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur2 ! Il y avait bien $calc(%choixj2 - 2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur2 pose donc son dernier caillou %ccf
              /msg $chan %ccd And the winner is.... %joueur2 ! %ccf
              /msg $chan %ccd La partie est terminée %ccf
              /effacevar
              /set %caillou off
            }
            else {
              /msg $chan %ccd Le gagnant de la manche %manche est %joueur2 ! Il y avait bien $calc(%choixj2 - 2) cailloux en jeu %ccf
              /msg $chan %ccd %joueur2 pose donc un caillou, et n'en a plus que %caillouj2 %ccf
              /set %decision %joueur2
            }
          }
          else {
            /msg $chan %ccd Aucun des deux joueurs n'a trouvé combien il y avait de cailloux en jeu. La réponse était $calc(%chiffrejoueur1 + %chiffrejoueur2 - 2) %ccf
            /inc %sansgagnant
            if (%sansgagnant // 2) {
              /set %decision %joueur1 
            }
            elseif (%sansgagnant \\ 2) {
              /set %decision %joueur2 
            }
          }
          /set %etape pvcailloux  
          /inc %manche
          /timernewmanche 1 07 { /newmanche }
          /unset %chiffrejoueur?
          /unset %choixj?
        }
      }
    }
    else {
      /msg $chan %ccd Ce n'est pas à toi de jouer $nick %ccf
    }
  } 
}
On *:TEXT:*:?:{
  if (($strip($1) isnum) && (%etape == pvcailloux)) {
    if (($nick = %joueur1) && (!%chiffrejoueur1)) {
      if ($strip($1) <= %caillouj1) {
        SET %chiffrejoueur1 $calc($strip($1) + 1)
        /msg $nick %ccd Ok, tu as mis $strip($1) caillou en jeu %ccf
        if (%chiffrejoueur1) && (%chiffrejoueur2) {
          if (!%decision) { 
            /set %decision %joueur2
          }
          /set %etape estimation
          /msg %salon %ccd OK les deux joueurs ont choisi. Maintenant %decision , combien penses-tu qu'il y a de caillou(x) en tout ? %ccf
        }
      }
      elseif ($strip($1) > %caillouj1) {
        /msg $nick %ccd Tu n'as que %caillouj1 caillou à mettre en jeu %ccf
      }
    }
    if ($nick = %joueur2) && (!%chiffrejoueur2) {
      if ($strip($1) <= %caillouj2) {
        SET %chiffrejoueur2 $calc($strip($1) + 1)
        /msg $nick %ccd Ok, tu as mis $strip($1) caillou en jeu %ccf
        if (%chiffrejoueur1) && (%chiffrejoueur2) {
          if (!%decision) {
            /set %decision %joueur1
          }
          /set %etape estimation
          /msg %salon %ccd OK les deux joueurs ont choisi. Maintenant %decision , combien penses-tu qu'il y a de caillou en tout ? %ccf
        }
      }
      elseif ($strip($1) > %caillouj2) {
        /msg $nick %ccd Tu n'as que %caillouj2 caillou à mettre en jeu %ccf
      }   
    }
  }
}
menu menubar {
  $iif(%caillou == off, Jeu des trois cailloux (désactivé))
  .$iif(%caillou == off, Activer):/gobyconsole
  $iif(%caillou == on, Jeu des trois cailloux (activé))
 .$iif(%caillou == on, Désactiver):/endbyconsole
}

Conclusion :


Règles du jeu :
Les deux joueurs disposent de trois cailloux. Le but du jeu est de s'en débarasser le premier.
A chaque manche, chaque joueur vient dire au bot en pv combien de caillou(x) il met en jeu ( dire : 0, 1, 2 ou 3)
Lorsque les deux joueurs ont fait cela, ils disent ensuite chacun leur tour sur le général combien de caillou(x) ils pensent qu'il y a en jeu en tout
Puis la manche recommence jusqu'à ce qu'un joueur n'ait plus de caillou dans sa main. Tapez !finish pour stopper le jeu.

Commandes :
- pour lancer le jeu , tapez !caillou . Vu que le jeu se joue à deux, le deuxieme joueur doit taper !joueur pour jouer avec celui qui a tapé !caillou
- pour dire combien de caillou vous mettez en jeu, dites simplement le chiffre dans le pv du bot quand il le vous demande
- pour dire combien de caillou vous pensez qu'il y a en jeu, dites simplement le chiffre dans le général quand le bot vous le demande
- pour avoir les règles du jeu tapez !sos
-pour stopper le jeu tapez !finish . Seul un des deux joueurs peut stopper le jeu ou la personne programmé dans la var %master

prévenez moi si il y a des bug mais j'ai deja testé et ça marche nickel
ceci est ma première création, excusez les erreurs que j'ai pu faire quelles qu'elles soient

A voir également

Ajouter un commentaire

Commentaires

ZeDaHu
Messages postés
19
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 janvier 2006

au fait le 1 et 2/10 sérieux c'est vraiment pas sympa, surtout que ça les mérite pas ya aucun bug, tout marche nickel et c'est un truc qui n'a jamais été fait. mais comme je l'ai remarqué a maintes reprises, les gens ici ne s'intéressent souvent qu'aux codes compliqués qui servent a rien...
ZeDaHu
Messages postés
19
Date d'inscription
vendredi 1 avril 2005
Statut
Membre
Dernière intervention
6 janvier 2006

c'est à dire tu prend un bot tu fait alt+r puis File > New et ensuite tu copie/colle le code la dedans. Et si je dis qu'il vaut mieux ajouter cette remote a un bot c'est parce que ce jeu ne fait pas un bot a lui tout seul, sinon le bot n'aurait presque pas d'interet. C'est juste une option en plus si tu veux
Berlaut de base
Messages postés
8
Date d'inscription
samedi 17 septembre 2005
Statut
Membre
Dernière intervention
23 février 2006

"Cette remote est à ajouter à un bot (enfin c'est mieux)"
C'est a dire ? :/
xoriale
Messages postés
3
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
21 juillet 2005

hé ba moi je trouve sa nikel bo boulo dahu ;)
Angebleu_
Messages postés
6
Date d'inscription
vendredi 22 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005

Mouais .. c'est trop long >< , 5/10

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 (ZeDaHu)