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