Jeu 94%
Résolu
el_clapotis
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
el_clapotis Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
el_clapotis Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait le programme pour un jeu 94%
Je vais vous expliquer le principe du jeu, Tu as un thème (une phrase, un mot ) et le joueur doit trouver des mot reliés à ton thème S'il trouve 94% des mots alors il a gagné. Exemple:
thème: famille
mots à trouver: mère, père, grands-parents, frère, sœur, tante; oncle, neveu. Pour gagner la partie l'utilisateur doit trouver 7 des 8 mots cités en haut
donc voilà ce que j'ai fait
j'ai l'impression qu'il est plein de fautes , et je veux savoir si mon principe de travail est correcte
j'ai besoin de vous, merci d'avance
j'ai fait le programme pour un jeu 94%
Je vais vous expliquer le principe du jeu, Tu as un thème (une phrase, un mot ) et le joueur doit trouver des mot reliés à ton thème S'il trouve 94% des mots alors il a gagné. Exemple:
thème: famille
mots à trouver: mère, père, grands-parents, frère, sœur, tante; oncle, neveu. Pour gagner la partie l'utilisateur doit trouver 7 des 8 mots cités en haut
donc voilà ce que j'ai fait
program jeu_94; var mot:string; begin writeln('bienvenue'); writeln('le rincipe du jeu insiste de trouver un mot qui a une relation avec le terme donnez'); writeln('level 1 '); writeln('trousse'); readln(mot); if (mot='stylo') or (mot='crayon') or(mot='correcteur') or (mot='couleur') or(mot='gomme') or(mot='feutre') or(mot='règle') or(mot='arrondisseur') or(mot='taille crayon') then begin writeln('you win'); writeln('leval 2'); writeln('famille'); readln(mot); if (mot='mère') or (mot='père') or(mot='frère') or (mot='sœur') or(mot='tante') or(mot='oncle') or(mot='grands parents') then begin writeln('you win'); writeln('level 3'); writeln('boisson'); readln(mot); if (mot='eau') or (mot='jus') or (mot='thé‚') or (mot='café‚') or(mot='lait') then begin writeln('you win'); writeln('level 4'); writeln('cartable'); readln(mot); if (mot='trousse') or (mot='cahier') or(mot='livre') or (mot='ardoise') or(mot='gomme') or(mot='feutre') or(mot='règle') then begin writeln('you win'); writeln('level 5'); writeln('jardin'); readln(mot); if (mot='arbre') or (mot='flure') or (mot='fruit') or (mot='chaise') or(mot='gazon') or (mot='sol') or (mot='puits') then begin writeln('you win'); writeln('level 6'); writeln('médecine'); readln(mot); if (mot='docteur') or (mot='médicament') or (mot='hôpital') or (mot='infirmier') or(mot='patient') or (mot='maladie') then begin writeln('you win'); writeln('level 7'); writeln('ordinateur'); readln(mot); if (mot='sourie') or (mot='clavier') or (mot='ecran') or (mot='cd') or(mot='dvd') or (mot='ram') or (mot='rom') then begin writeln('you win'); writeln('leval 8'); writeln('cuisine'); readln(mot); if (mot='r‚frig‚rateur') or (mot='cuisini‚re') or (mot='table') or (mot='chaise') or(mot='vaisselle') or (mot='lampe') or (mot='mixeurs')or (mot='lave vaisselle') then begin writeln('you win'); writeln('congratulation'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); end else writeln('you lose'); readln; end.
j'ai l'impression qu'il est plein de fautes , et je veux savoir si mon principe de travail est correcte
j'ai besoin de vous, merci d'avance
A voir également:
- Jeu 94%
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo
- Logo jeu - Télécharger - Jeux vidéo
- Jeu google - Guide
4 réponses
Bonjour,
Le principe des if à répétitions ne peut pas être correct, ici tu as 8 niveaux, imagine ton code si tu en avais 100 par exemple...
Il faudrait que tu gères différemment tes données par exemple en stockant tes niveaux (thème et mots à trouver) dans un tableau.
Ainsi au lieu d'avoir une imbrication de if à rallonge, tu aurais une simple boucle sur chaque niveau.
Le principe des if à répétitions ne peut pas être correct, ici tu as 8 niveaux, imagine ton code si tu en avais 100 par exemple...
Il faudrait que tu gères différemment tes données par exemple en stockant tes niveaux (thème et mots à trouver) dans un tableau.
Ainsi au lieu d'avoir une imbrication de if à rallonge, tu aurais une simple boucle sur chaque niveau.
el_clapotis
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
Je vais essayer :)
voila ce que j'ai fait
program jeu94; type tab=array[1..6] of string; var mot:string; i:integer; q1,q2,q3,q4,q5:tab; gn:boolean; level:array[1..6] of tab; procedure jeu(mmot:string; t:tab; var d:boolean); var j,cpt,m:integer; score:integer; begin cpt:=0; r:=0; d:=false; for j:=2 to 6 do begin writeln('entrez les mots lies au:',t[1]); readln(mmot); for m:=2 to 6 do begin if (mmot=t[m]) then cpt:=cpt+1; end; end; score:=(100*cpt)div 5; if (score>=94) then begin d:=true; writeln('tu as gagne ton score est ',score,' passant au theme suivant'); end else begin d:=false; writeln('niveau echoue ton score est ',score); end; readln; end; begin q1[1]:='aliments riches en fer'; q1[2]:='thym'; q1[3]:='curry'; q1[4]:='lentilles'; q1[5]:='cumin'; q1[6]:='pisson'; q2[1]:='touristiques plage destinations'; q2[6]:='maldives'; q2[2]:='bulgaria'; q2[3]:='antalya';q2[4]:='hawaii'; q2[5]:='sydney'; q3[1]:='meilleurs nations du foot en coupe de monde'; q3[6]:='argentine'; q3[2]:='bresil'; q3[3]:='algerie';q3[4]:='allemagne'; q3[5]:='italie'; q4[1]:='pays peuples'; q4[2]:='chine'; q4[3]:='etats unis'; q4[4]:='inde'; q4[5]:='indonesie'; q4[6]:='japon'; q5[1]:='voitures de course'; q5[6]:='ferrari';q5[2]:='bentley'; q5[3]:='lamborghini';q5[4]:='maserati'; q5[5]:='bugatti'; level[1]:=q2; level[2]:=q3; level[3]:=q4; level[4]:=q5; writeln('Bienvenue au JEU 94% assure toi de collecter 94 du score ou plus'); jeu(mot,q1,gn); i:=1; while (gn=true)and (i<=5) do begin jeu(mot,level[i],gn); i:=i+1; end; end.
Il y a encore quelques maladresses mais dans l'idée c'est quand même beaucoup mieux de coder ainsi, ça facilite le développement et la compréhension du code.
Remarque : Pour l'instant dans ton programme
Dans le jeu 94% chaque réponse a un poids puisqu'il s'agit de retrouver les résultats d'un sondage. C'est la somme de ces poids qui doit atteindre 94%.
Exemple : Animaux herbivores
PS. sur ce forum les balises de code pour le langage Pascal c'est <code delphi>
Remarque : Pour l'instant dans ton programme
score:=(100*cpt)div 5;ne peut dépasser 94 que si cpt = 5, il faudrait donc faire un sans faute pour réussir...
Dans le jeu 94% chaque réponse a un poids puisqu'il s'agit de retrouver les résultats d'un sondage. C'est la somme de ces poids qui doit atteindre 94%.
Exemple : Animaux herbivores
32% : VacheSource : http://www.les-reponses.fr/solutions-94-pour-cent.html
13% : Cheval
10% : Âne
10% : Chèvre
9% : Mouton
8% : Tortue
6% : Lapin
3% : Éléphant
2% : Panda
1% : Girafe
PS. sur ce forum les balises de code pour le langage Pascal c'est <code delphi>
compris KX
j'ai crée un nouveau tableau pour les pourcentages,
et j'ai mis le variable score à la place de cpt ,, donc il reçoit la somme des pourcentages de chaque réponse correcte
voilà
j'ai crée un nouveau tableau pour les pourcentages,
et j'ai mis le variable score à la place de cpt ,, donc il reçoit la somme des pourcentages de chaque réponse correcte
voilà
program jeu94; type tab=array[1..6] of string; var mot:string; m:integer; q1,q2,q3,q4,q5:tab; gn:boolean; level:array[1..6] of tab; procedure jeu(mmot:string; t:tab; var d:boolean); var j,i,score:integer; pourcent:array[1..6] of integer; begin pourcent[1]:=0; pourcent[2]:=30; pourcent[3]:=25; pourcent[4]:=16;pourcent[5]:=16; pourcent[6]:=11; score:=0; d:=false; for j:=2 to 6 do begin writeln('entrez les mots lies au:',t[1]); readln(mmot); for i:=2 to 6 do begin if (mmot=t[i]) then score:=score+pourcent[i]; end; end; if (score>=94) then begin d:=true; writeln('tu as gagne ton score est ',score,'% passant au theme suivant'); end else begin d:=false; writeln('niveau echoue ton score est ',score,'%'); end; readln; end; begin q1[1]:='aliments riches en fer'; q1[2]:='thym'; q1[3]:='curry'; q1[4]:='lentilles'; q1[5]:='cumin'; q1[6]:='pisson'; q2[1]:='touristiques plage destinations'; q2[6]:='maldives'; q2[2]:='bulgaria'; q2[3]:='antalya';q2[4]:='hawaii'; q2[5]:='sydney'; q3[1]:='meilleurs nations du foot en coupe de monde'; q3[6]:='argentine'; q3[2]:='bresil'; q3[3]:='algerie';q3[4]:='allemagne'; q3[5]:='italie'; q4[1]:='pays peuples'; q4[2]:='chine'; q4[3]:='etats unis'; q4[4]:='inde'; q4[5]:='indonesie'; q4[6]:='japon'; q5[1]:='voitures de course'; q5[6]:='ferrari';q5[2]:='bentley'; q5[3]:='lamborghini';q5[4]:='maserati'; q5[5]:='bugatti'; level[1]:=q2; level[2]:=q3; level[3]:=q4; level[4]:=q5; writeln('Bienvenue au JEU 94% assure toi de collecter 94 du score ou plus'); jeu(mot,q1,gn); m:=1; while (gn=true)and (m<=5) do begin jeu(mot,level[m],gn); m:=m+1; end; end.
Je ne comprends pas pourquoi tu as mis
C'est au hasard ?
Parce que normalement pour chaque niveau tu vas avoir des pourcentages différents, il n'y a pas de raison pour que ce soit toujours 30-25-16-16-11
D'autant que, pareil, mathématiquement pour avoir 94% avec ces valeurs il faut absolument faire un sans faute (avec une erreur tu aurais maximum 89%...)
Concernant l'implémentation maintenant, pour aller encore plus loin, je te conseilles d'utiliser des structures de données.
Exemple (compilé avec FreePascal)
Avec cette structure tu peux par exemple faire ce genre de code :
Ce qui donne :
pourcent[1]:=0; pourcent[2]:=30; pourcent[3]:=25; pourcent[4]:=16; pourcent[5]:=16; pourcent[6]:=11;
C'est au hasard ?
Parce que normalement pour chaque niveau tu vas avoir des pourcentages différents, il n'y a pas de raison pour que ce soit toujours 30-25-16-16-11
D'autant que, pareil, mathématiquement pour avoir 94% avec ces valeurs il faut absolument faire un sans faute (avec une erreur tu aurais maximum 89%...)
Concernant l'implémentation maintenant, pour aller encore plus loin, je te conseilles d'utiliser des structures de données.
Exemple (compilé avec FreePascal)
type Response = record value : String; percent : integer; end; Level = record title : String; responses : array[1..10] of Response; end; var Game : Array[1..2] of Level = ( (title:'Animaux herbivores'; responses:((value:'vache'; percent:32), (value:'cheval'; percent:13), (value:'ane'; percent:10), (value:'chevre'; percent:10), (value:'mouton'; percent:9), (value:'tortue'; percent:8), (value:'lapin'; percent:6), (value:'elephant'; percent:3), (value:'panda'; percent:2), (value:'girafe'; percent:1)) ),(title:'C''est bleu'; responses:((value:'mer'; percent:41), (value:'ciel'; percent:36), (value:'yeux'; percent:7), (value:'jeans'; percent:4), (value:'schtroumpf'; percent:4), (value:'stylo'; percent:2), (value:''; percent:0), (value:''; percent:0), (value:''; percent:0), (value:''; percent:0)) ));
Avec cette structure tu peux par exemple faire ce genre de code :
var lvl:Level; rsp:Response; i,j:integer; begin for i := 1 to 2 do begin lvl := Game[i]; writeln(lvl.title); writeln(); for j := 1 to 10 do begin rsp := lvl.responses[j]; if (rsp.percent > 0) then writeln(rsp.value,' ',rsp.percent,'%'); end; writeln(); end; readln; end.
Ce qui donne :
Animaux herbivores
vache 32%
cheval 13%
ane 10%
chevre 10%
mouton 9%
tortue 8%
lapin 6%
elephant 3%
panda 2%
girafe 1%
C'est bleu
mer 41%
ciel 36%
yeux 7%
jeans 4%
schtroumpf 4%
stylo 2%
D'accord j'ai compris,, le travail avec les structures de donnés a simplifié le programme, merci pour l'aide et vos astuces , ça m'a aidé beaucoup
Juste une autre question , est ce qu'il y a une autre méthode appart les structures de donnés?
Juste une autre question , est ce qu'il y a une autre méthode appart les structures de donnés?
On pourrait très bien imaginer écrire des fichiers, soit un par niveau soit globalement, ce qui évite d'avoir à remplir les données dans le code.
Mais en terme de manipulation du code on reviendra sûrement à une structure de données comme celle-ci.
Après on pourrait aller plus loin en faisant du Pascal Objet, mais la notion d'objet est assez proche de la structure de données aussi, c'est surtout les fonctions qui changerait.
Mais en terme de manipulation du code on reviendra sûrement à une structure de données comme celle-ci.
Après on pourrait aller plus loin en faisant du Pascal Objet, mais la notion d'objet est assez proche de la structure de données aussi, c'est surtout les fonctions qui changerait.