Bonjour tout le monde !
Voici la situation : nous avons jusqu'à lundi prochain pour créer un algorithme sous Algobox ayant la fonction de notre choix en utilisant les fonctions que l'on a vu en classe (c'est à dire a peu près tout ce qui est dans l'onglet "opération standard" mais rien dans "utiliser une fonction numérique" et "dessiner dans un repère"
Suivant mon instinct de joueur j'ai essayer de faire un jeu. Un combat entre les 2 joueurs au tour par tour. Celui-si marche bien mais je l'ai trouvé trop simple alors j'en ai fait une autre version...et la c'est le drame. Elle ne marche pas
L'erreur ce fait dès le lancement de l'algorithme : "***L'algorithme contient une erreur : impossible de le lancer***"
Pourriez vous y jeter un coup d'œil ?
Voici le code :
1 VARIABLES
2 h EST_DU_TYPE NOMBRE
3 p EST_DU_TYPE NOMBRE
4 a EST_DU_TYPE NOMBRE
5 t EST_DU_TYPE NOMBRE
6 b EST_DU_TYPE NOMBRE
7 l EST_DU_TYPE NOMBRE
8 d EST_DU_TYPE NOMBRE
9 e EST_DU_TYPE NOMBRE
10 DEBUT_ALGORITHME
11 h PREND_LA_VALEUR 100
12 p PREND_LA_VALEUR 100
13 AFFICHER "-Wizards choose their type of attack and their type of block"
14 AFFICHER "-They can choose between these types : Fire, Grass and Water"
15 AFFICHER "Exemple : A Fire attack is effective on a Grass shield ; deals no damage on a Water shield and deals a few damages on a Fire shield"
16 AFFICHER "-= Welcome To The Arena =-"
17 PAUSE
18 TANT_QUE (h>0 ET p>0) FAIRE
19 DEBUT_TANT_QUE
20 a PREND_LA_VALEUR 0
21 b PREND_LA_VALEUR 0
22 t PREND_LA_VALEUR 0
23 l PREND_LA_VALEUR 0
24 AFFICHER "Wizard 1's HP : "
25 AFFICHER h
26 AFFICHER "Wizard 2's HP : "
27 AFFICHER p
28 PAUSE
29 AFFICHER "Wizard 1 :"
30 TANT_QUE (a!=1 ET a!=2 ET a!=3) FAIRE
31 DEBUT_TANT_QUE
32 AFFICHER "What is the type of your spell ? (1->Fire ; 2->Grass ; 3->Water)"
33 LIRE a
34 FIN_TANT_QUE
35 TANT_QUE (b!=1 ET b!=2 ET b!=3) FAIRE
36 DEBUT_TANT_QUE
37 AFFICHER "What is the type of your shield? (1->Fire ; 2->Grass ; 3->Water)"
38 LIRE b
39 FIN_TANT_QUE
40 PAUSE
41 AFFICHER "Wizard 2 :"
42 TANT_QUE (t!=1 ET t!=2 ET t!=3) FAIRE
43 DEBUT_TANT_QUE
44 AFFICHER "What is the type of your spell ? (1->Fire ; 2->Grass ; 3->Water)"
45 LIRE t
46 FIN_TANT_QUE
47 TANT_QUE (l!=1 ET l!=2 ET l!=3) FAIRE
48 DEBUT_TANT_QUE
49 AFFICHER "What is the type of your spell ? (1->Fire ; 2->Grass ; 3->Water)"
50 LIRE l
51 FIN_TANT_QUE
52 SI (l=a-1 OU l=a+2) ALORS
53 DEBUT_SI
54 d PREND_LA_VALEUR 0
55 FIN_SI
56 SI (l=a) ALORS
57 DEBUT_SI
58 d PREND_LA_VALEUR floor(random()*10)
59 FIN_SI
60 SI (l=a+1 OU l=a-2) ALORS
61 DEBUT_SI
62 d PREND_LA_VALEUR floor((random()*10)+20)
63 FIN_SI
64 SI (b=t-1 OU b=t+2) ALORS
65 DEBUT_SI
66 e PREND_LA_VALEUR 0
67 FIN_SI
68 SI (b=t) ALORS
69 DEBUT_SI
70 e PREND_LA_VALEUR floor(random()*10)
71 FIN_SI
72 SI (b=t+1 OU b=t-2) ALORS
73 DEBUT_SI
74 e PREND_LA_VALEUR floor((random()*10)+20)
75 FIN_SI
76 h PREND_LA_VALEUR h-e
77 p PREND_LA_VALEUR p-d
78 PAUSE
79 AFFICHER "Wizard 1 deals "
80 AFFICHER d
81 AFFICHER " damages"
82 AFFICHER "Wizard 2 deals "
83 AFFICHER e
84 AFFICHER " damages"
85 PAUSE
86 FIN_TANT_QUE
87 SI (h<0 ET p<0) ALORS
88 DEBUT_SI
89 AFFICHER "! Round Draw !"
90 FIN_SI
91 SI (h<0 ET p>0) ALORS
92 DEBUT_SI
93 AFFICHER "! Wizard 2 Wins !"
94 FIN_SI
95 SI (h>0 ET p<0) ALORS
96 DEBUT_SI
97 AFFICHER "! Wizard 1 Wins !"
98 FIN_SI
99 FIN_ALGORITHME
Si vous avez besoin d'explications n'hésitez pas car je comprends que ce ne soit pas évident de lire cela. Quelqu'un connait un moyen d'afficher mon algorithme plus clairement ?
Si vous avez 16 Kb a gaspiller sur votre disque dur voici mes algorithmes (cela vous permettra de les lire plus clairement):
celui qui nemarche pas : http://**************
la version d'avant qui elle marche : http://**************
* Modération : liens mégaupload (!) supprimés *
pourquoi les liens megaupload ont il été supprimés ? Ces algorithmes ne sont pas soumis a droit d'auteur vu que ce sont les miens ...
et le modérateur aurait pas une réponse a me proposer aussi par hasard? ^^
@modérateurs : Je viens de lire les avertissements au dessus de cette page puis la F.A.Q. .
Je sais maintenant qu'aucune règle du forum interdit les liens que j'ai ajouté à la fin de mon poste tant que cette condition est respectée "nous vous demandons de respecter les droits d'auteur en vigueur sur les documents diffusées sur la toile", et elle l'étais car je suis le créateur de ces deux algorithmes sur AlgoBox.
Ces deux fichiers permettaient d'avoir un rendu plus clair de l'algorithme et donc aux utilisateurs du forum de trouver mon erreur plus facilement.
Aussi je demande a pouvoir poster mes liens.
Si le problème viens du site (megaupload)s'il vous plait dites moi quelles sont les plateformes d'hébergement dont les liens sont autorisés sur ce forum.
Merci d'avance !
Sinon personne ne voit une erreur dans mon algorithme ? J'ai continué a chercher mais je n'arrive pas a mettre le doigt dessus...
C'est sans doute une problème de syntaxe ou de
bébut de boucle - fin de boucle déséquilibré.
commence par tester le lancement de l'algorithme
en ne gardant que l'essentiel de l'algo :
18 TANT_QUE (h>0 ET p>0) FAIRE
19 DEBUT_TANT_QUE
79 AFFICHER "Wizard 1 deals "
80 AFFICHER d
81 AFFICHER " damages"
82 AFFICHER "Wizard 2 deals "
83 AFFICHER e
84 AFFICHER " damages"
85 PAUSE
86 FIN_TANT_QUE
puis tu réintroduis peu à peu, les boucles imbriquées
et les tests conditionnels... et tu lances (même si pour l'instant
ça ne correspond pas à ce que tu recherches comme résultat).
Il faut arriver dans un premier temps à trouver l'erreur au lancement.
...
J'ai fais ce que pgeod a dis.
Le resultat est que l'erreur de syntaxe provient de ce "TANT QUE" :
52 SI (l=a-1 OU l=a+2) ALORS
53 DEBUT_SI
54 d PREND_LA_VALEUR 0
55 FIN_SI
L'erreur de syntaxe provient aussi de ceux-ci mais cela doit être la même donc si on en résout un les autres le seront aussi :
SI (l=a+1 OU l=a-2) ALORS
61 DEBUT_SI
62 d PREND_LA_VALEUR floor((random()*10)+20)
63 FIN_SI
64 SI (b=t-1 OU b=t+2) ALORS
65 DEBUT_SI
66 e PREND_LA_VALEUR 0
67 FIN_SI
72 SI (b=t+1 OU b=t-2) ALORS
73 DEBUT_SI
74 e PREND_LA_VALEUR floor((random()*10)+20)
75 FIN_SI
Il doit y avoir une subtilité de syntaxe que je n'ai pas comprise mais je ne vois pas quoi.
J'ai déjà essayer de mettre entre parenthèse a-1 et a+2 mais cela n'a pas marché.
l'égalité dans un test conditionnel est celle-ci : == (double égalité)
SI (l==a+1 OU l==a-2) ALORS
...
aaahhh mais oui suis-je bête.. en plus c'est marqué en gros dans l'encadré jaune ...
Merci beaucoup !
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :