Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme complexe sous Algobox

Posté par
andrei210
02-12-10 à 21:33

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 *

Posté par
andrei210
re : Algorithme complexe sous Algobox 02-12-10 à 21:50

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? ^^

Posté par
andrei210
re : Algorithme complexe sous Algobox 03-12-10 à 19:34

@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...

Posté par
pgeod
re : Algorithme complexe sous Algobox 03-12-10 à 19:59


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.

...

Posté par
andrei210
re : Algorithme complexe sous Algobox 03-12-10 à 20:16

merci pgeod je vais essayer cela =)

Posté par
pgeod
re : Algorithme complexe sous Algobox 03-12-10 à 20:30

Posté par
andrei210
re : Algorithme complexe sous Algobox 03-12-10 à 20:34

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é.

Posté par
andrei210
re : Algorithme complexe sous Algobox 03-12-10 à 20:36

edit : ce n'est pas un "TANT QUE" mais un "SI...ALORS"

Posté par
pgeod
re : Algorithme complexe sous Algobox 03-12-10 à 20:50


l'égalité dans un test conditionnel est celle-ci : == (double égalité)

SI (l==a+1 OU l==a-2) ALORS

...

Posté par
andrei210
re : Algorithme complexe sous Algobox 03-12-10 à 20:53

aaahhh mais oui suis-je bête.. en plus c'est marqué en gros dans l'encadré jaune ...

Merci beaucoup !

Posté par
pgeod
re : Algorithme complexe sous Algobox 03-12-10 à 20:54

Posté par
StudioMattew
Erreur fin 09-09-15 à 10:59

Salut ! L'algorithme est sympa est plutôt bien trouvé !

L'erreur vient du fait que tu as oublié de mettre deux '=' pour exprimer l'égalité. (ex : b==0 -> b est égal à 0).



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1677 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !