Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2993 connectés 

  FORUM HardWare.fr
  Programmation
  C

  lancer un script dans un quiz

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lancer un script dans un quiz

n°2162165
jp189
Posté le 01-11-2012 à 10:43:58  profilanswer
 

bonjour je ne sais pas si je post on bonne endroit  
voici mon probleme j ai un fichier .txt qui gere un quiz je cherche a ajouter une ligne de sorte que quand il repond bravo suite a la bonne reponse il lance >C:\Users\jp2\Desktop\toto .ahk
 tout ca se trouve sur le meme pc sous windows  
voici le fichier txt
 
// script de Quizz
 
var count, tick, state, reponse$, question$, question_nr, points, no_rep;
 
var jeu_score[50], jeu_pseudo$[50]; // tableau de scores
 var limite_semaine$;
 
 
proc compute_new_limite ()
 {
 var wd;
 wd = weekday(now$());
 limite_semaine$ = add_date$ (left$(now$(),11) + "05:00:00", (8-wd) * 86400 );
 store ("quizz-semaine", limite_semaine$);
 }
 
 
// charger scores dans le tableau
 
proc charger_scores ()
 {
 var i;
 for (i=0; i<=50; i++)
 {
 jeu_score[i] = val("0" + fetch$ ("quizz-score" + str$(i)));
 jeu_pseudo$[i] = fetch$ ("quizz-pseud" + str$(i));
 }
 limite_semaine$ = fetch$ ("quizz-semaine" );
 if (len(limite_semaine$) == 0)
 compute_new_limite ();
 }
 
 
// enregistrer un score dans la database */
 
proc stocker_score (i, score, pseudo$)
 {
 store ("quizz-score" + str$(i), str$(score));
 store ("quizz-pseud" + str$(i), pseudo$);
 }
 
 
// effacer les scores
 
proc effacer_scores ()
 {
 var i;
 for (i=0; i<=50; i++)
 {
 jeu_score[i] = 0;
 jeu_pseudo$[i] = "";
 stocker_score (i, 0, "" );
 }
 }
 
 
 
// ajoute un score
 
proc ajoute_points (score, userid$)
 {
 var i, j, u$;
 
// cherche le userid$ dans le tableau jeu_pseudo$[]
 // ou bien cherche une case vide dans le tableau
 
for (i=0; i<50; i++)
 {
 if (jeu_pseudo$[i] == userid$ || jeu_pseudo$[i] == "" )
 break;
 }
 
 
// remplir la case et augmenter le score
 
if (jeu_pseudo$[i] == userid$)
 {
 jeu_score[i] += score;
 }
 else
 {
 jeu_score[i] = score;
 jeu_pseudo$[i] = userid$;
 }
 
stocker_score (i, jeu_score[i], jeu_pseudo$[i]);
// remonter le joueur dans le tableau des scores
 // s'il a dépassé des joueurs avant lui
 
while (i > 0 && jeu_score[i] > jeu_score[i-1])
 {
 j = jeu_score[i];
 jeu_score[i] = jeu_score[i-1];
 jeu_score[i-1] = j;
 
u$ = jeu_pseudo$[i];
 jeu_pseudo$[i] = jeu_pseudo$[i-1];
 jeu_pseudo$[i-1] = u$;
 
stocker_score (i, jeu_score[i], jeu_pseudo$[i]);
 stocker_score (i-1, jeu_score[i-1], jeu_pseudo$[i-1]);
 
i--;
 }
 }
 
//=====================================================================================================
 // couleurs de Sophie
 
func fs$ ()
 {
 return chr$(1,200,0,128) // couleur des scores :bleue claire (voir chapitre macros)
 + chr$(2,5,4,0); // font "Courier New", style gras
 }
 
func fm$ ()
 {
 return chr$(1,200,0,128) // couleur des mots "Question/Indice" : bleue claire (voir chapitre macros)
 + chr$(2,5,4,0); // font "Courier New", style gras
 }
 
func fq$ ()
 {
 return chr$(1,200,0,128) // couleur des questions : bleue claire (voir chapitre macros)
 + chr$(2,5,4,0); // font "Courier New", style gras
 }  
//=====================================================================================================
 
// imprime les 20 premiers scores du tableau
 // ainsi que le userid$ même s'il est après les 20 premiers
 
proc affiche_scores (userid$)
 {
 var i, score$;
 
print (fs$() + "QUIZZ SCORES" );
 print (fs$() + "============" );
 
for (i=0; i<50; i++)
 {
 if (jeu_pseudo$[i] == "" )
 break;
 if (i < 20 || userid$ == jeu_pseudo$[i])
 {
 score$ = str$(jeu_score[i]);
 if (len(score$) < 5)
 score$ = dup$(" ",5-len(score$)) + score$;
 print (fs$() + str$(i+1) + ". " + score$ + " " + jeu_pseudo$[i]);
 }
 }
 }
 
 
 
 
// nettoye la ligne line$ en remplaçant toutes les icones et images par des blancs,
 // en convertissant tous les mots en minuscules,
 // et en entourant tous les mots par des blancs.
 
func nettoye$ (userid$, action, line$)
 {
 var last, r$, i, c;
i = 1;
 
if (asc (line$,1) == 0)
 i += 4; // passer emoticon
 else
 i += 8; // passer image
 
i += len(userid$); // passer userid
 
if (action == 0)
 i += 3; // passer " : "
 else
 i++;
 
last = len(line$);
 
while (i <= last)
 {
 c = asc (line$,i);
 if (c <= 9) // séquence spéciale
 {
 i += 4; // passer 4 caractères
 if (c > 5)
 i += 4;
 c = 32; // remplacer par un blanc
 }
 else // caractère normal
 {
 if (c >= 65 && c <= 90) // si entre A et Z
 c += 32; // convertir en minuscules
 i++;
 }
 r$ = r$ + chr$(c);
 }
 
return r$ + " ";
 }
 
 
 
proc lancer_quizz ()
 {
 if (now$() >= limite_semaine$)
 {
 print (fs$()+"effacement des scores de la semaine ..." );
 effacer_scores ();
 compute_new_limite ();
 }
 
if (state == 0)
 {
 state = 1;
 no_rep = 0;
 }
 }
 
 
 
proc arreter_quizz ()
 {
 state = 0;
 }
 
// effacer les blancs avant et après
 
func trim$ (s$)
 {
 while (len(s$) > 0 && asc(s$,1) == 32)
 s$ = right$(s$, len(s$)-1);
 
while (len(s$) > 0 && asc(s$,len(s$)) == 32)
 s$ = left$(s$, len(s$)-1);
 
return s$;
 }
 
 
// convertir en minuscules
 
func tolower$ (s$)
 {
 var t$, len, i, c;
 
len = len(s$);
 
for (i=1; i<=len; i++)
 {
 c = asc (s$, i);
 if (c >= 65 && c <= 90) // si entre A et Z
 c += 32; // convertir en minuscules
 t$ = t$ + chr$(c);
 }
 
return t$;
 }
 
 
proc poser_question ()
 {
 var ln, line$, col;
 
for (;;)
 {
 ln = random (1, count);
 line$ = read_line$ ("quizz.txt", ln);
 col = pos (line$, ":" );
 if (col > 0)
 break;
 print (fm$() + "erreur dans quizz.txt ligne " + str$(ln));
 }
 
reponse$ = trim$ (left$(line$, col-1));
 question$ = trim$ (right$(line$, len(line$) - col));
 
question_nr++;
 
print (fm$() +"Question " + str$(question_nr) + " : " +fq$() + question$);
 }
 
 
proc reposer_question ()
 {
 if (state >= 2 && state <= 4)
 print (fm$() +"Question " + str$(question_nr) + " : " + fq$() + question$);
 }
 proc indice1 ()
 {
 var i, len, r$;
 
r$ = reponse$;
 len = len(reponse$);
 
for (i=1; i<=len; i+=3)
 {
 if (mid$(r$,i,1) != " " )
 r$ = left$(r$,i-1) + "." + right$(r$,len-i);
 }
 
for (i=2; i<=len; i+=3)
 {
 if (mid$(r$,i,1) != " " ) r$ = left$(r$,i-1) + "." + right$(r$,len-i);
 }
 
print (fm$() +"Indice 1 : " + fq$() + r$);
 }
 
 
proc indice2 ()
 {
 var i, len, r$;
 
r$ = reponse$;
 len = len(reponse$);
 
for (i=1; i<=len; i+=3)
 {
 if (mid$(r$,i,1) != " " )
 r$ = left$(r$,i-1) + "." + right$(r$,len-i);
 }
 
print (fm$() +"Indice 2 : " + fq$() + r$);
 }
 
 
proc donner_solution ()
 {
 print (fm$() +"Le temps est écoulé, c'était : " + fq$() + reponse$);
 no_rep++;
 
if (no_rep >= 90) // déjà la 90ème question posée sans réponse
 {
 print (fm$() +"arrêt du quizz personne repond je suis déçu ..." );
 state = 0;
 }
 else
 {
 tick = 0;
 state = 5;  
points = 0;
 }
 }
 
 
 
func full_user$ (sex$, userid$)
 {
 var emo, user$;
 
if (sex$ == "M" )
 emo = 50;
 else if (sex$ == "F" )
 emo = 51;
 else
 emo = 60;
 
return chr$(0, emo, 0, 0) + userid$;
 }
 
 
 
proc dire_bravo (sex$, userid$)
 {
 var user$;
 
user$ = full_user$ (sex$, userid$);
 
print (fm$() +"Bravo " + user$ + " : " + fq$() + "tu récoltes " + str$(points) + " points." );
 
ajoute_points (points, user$);
 
tick = 0;
 state = 5;  
points = 0;
 no_rep = 0;
 }proc timer ()
 {
 if (count == 0)
 {
 count = count_lines ("quizz.txt" );
 if (count == 0)
 {
 print (fm$() + "error:" + fq$()+ "pas trouvé le fichier quizz.txt pour le quizz" );
 return;
 }
 
charger_scores ();
 }
 
if (state == 1 && count > 0)
 {
 poser_question ();
 tick = 0;
 state = 2;
 points = 3;
 }
 
if (state == 2 && tick == 38)
 {
 indice1 ();
 tick = 0;
 state = 3;  
points = 2;
 }
 
if (state == 3 && tick == 38)
 {
 indice2 ();
 tick = 0;
 state = 4;  
points = 1;
 }
 
if (state == 4 && tick == 38)
 {
 donner_solution ();
 }
 
if (state == 5 && tick == 5)
 {
 state = 1;
 }
 
tick++;
 
set_timer (1);
 }
 
 
proc donner_indice ()
 {
 if (state == 2)
 tick = 38;
 else if (state == 3)
 tick = 38;
 }
 
 
 
proc event (session_key, userid$, sex$, has_photo, age, is_away,
 admin, cam_on, is_bot, toc_capab, signature$,
 action, is_myself, line$)
 {
 var word$;
 
if (action <= 1)
 {
 word$ = nettoye$ (userid$, action, line$);
 
if (pos (word$, " !start " ) > 0)
 lancer_quizz ();
 
if (pos (word$, " !stop " ) > 0)
 arreter_quizz ();
 
if (pos (word$, " !indice " ) > 0 || pos (word$, " !hint " ) > 0)
 donner_indice ();
 
if (pos (word$, " !quoi " ) > 0)
 reposer_question ();
 
if (pos (word$, " !score " ) > 0 || pos (word$, " !scores " ) > 0)
 affiche_scores (full_user$ (sex$, userid$));
 
if (!is_myself) // le bot ne peut répondre aux questions au cas où la réponse est dans la question ...
 {
 if (state >= 2 && state <= 4)
 {
 if (pos (word$, " " + tolower$(reponse$) + " " ) > 0)
 dire_bravo (sex$, userid$);
 }
 }
 }
 }
 
 
j ai mis en rouge la zone qui traite le bravo  
en esperant avoir une solution  
 
par avance merci  
 
 
 
 
 

mood
Publicité
Posté le 01-11-2012 à 10:43:58  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  lancer un script dans un quiz

 

Sujets relatifs
Script pour téléchargementSous Linux, logger un script shell
Problème avec script ping IP RangeScript open source Gestion de project
script copie de fichiers avec selection source et destphp lien Jul Script 2.1.1 download.php
Visual C++ 2010 - Lancer un batch dos depuis un boutonpb script vbs JCB
Script registreAide script JS (viewport width et manipulation)
Plus de sujets relatifs à : lancer un script dans un quiz


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR