[VB] besoin d'aide pour un problème

besoin d'aide pour un problème [VB] - VB/VBA/VBS - Programmation

Marsh Posté le 21-02-2007 à 20:09:32    

Salut
 
J’ai un problème a vous soumettre que je ne parviens pas à résoudre :
En utilisant une structure répétitive :
 
Soit le robot Allan
Allan reconnait les instructions suivantes :
Av : avancer dune case
Rd : Rotation droite de 90°
Rg : rotation gauche 90°
Lig : Retourne le numéro de la ligne sur laquelle se trouve allan
Col : retourne le numéro de la colonne sur laquelle se trouve allan
 
Allan reconnait les prédicats suivants :
Nord : Retourne la valeur true ou False : allan est orienté au nord si True
Sud : Retourne la valeur true ou False : allan est orienté au sud si True
Est : Retourne la valeur true ou False : allan est orienté au est si True
Ouest : Retourne la valeur true ou False : allan est orienté au ouest si True
Mur : retourne la valeur True ou False :Allan se trouve en face d’un mur si True
Obs : Retourne la valeur True ou False : allan se trouve en face d’un obstacle si True
 
La position d’allan est indéterminée.
L’orientation d’allan est indéterminée
Le damier est de 100 cases sur 100
Aucun obstacle ne se trouve sur le damier
 
Il faut écrire un algorithme qui déplace Allan sur la cellule situé à l’opposée par rapport à la cellule courante : la cellule de destination devant être symétrique à la la cellule source par rapport aux diagonales

Exemples :
 
Cellule source : L1C1      Cellule cible : L100C100
Cellule source : L2C3      Cellule cible : L99C98
 
Plus généralement si la cellule source se trouve à la ligne x et à la colonne y, la cellule de destination se trouve à la ligne 101-x et a la colonne 101-y
 
 
Pitié j'ai grand besoin de votre aide
merci d'avance


Message édité par Profil supprimé le 21-02-2007 à 20:09:56
Reply

Marsh Posté le 21-02-2007 à 20:09:32   

Reply

Marsh Posté le 22-02-2007 à 12:35:58    

c'est un peu super large comme départ, tu aruais pu nous filer un bout d'algo ou de code, non ? :o
 
En partant du principe que ta case 1.1 est en haut a gauche et ta case 100.100 en bas a droite
tu peux faire une batterie de test avant de faire bouger ton robot
(je n'ai pas pris tes exemples, mais c'est compréhensible quand même)
tant que ligact!=ligarrivée
{
si ligact>ligarrivée et orientation!=sud 'au dessus de la case arrivée et mal orientée
alors (orientation = sud
Avancer)
sinon si ligact<ligarrivée et orientation!nord
alors (orientation = nord
Avancer)
}
idem pour la colonne après...
si colact>colarrivée et orientation etc.

Reply

Marsh Posté le 22-02-2007 à 16:30:22    

En fait j'avais commencé et j'avais trouvé ca
 
http://img91.imageshack.us/img91/9479/278mw6.jpg
Pourriez vous me dire ce que vous en pensez
En tout cas merci de m'aider ^_^


Message édité par Profil supprimé le 23-02-2007 à 15:14:34
Reply

Marsh Posté le 22-02-2007 à 23:18:50    

:)

Reply

Marsh Posté le 23-02-2007 à 07:33:58    

Bonjour,
peux-tu utiliser des sub ou fonctions dans ta simulation?
Cordialement

Reply

Marsh Posté le 23-02-2007 à 13:04:49    

Edit:
 
En fait j'ai dis une grosse betise. On peut utiliser des subs ou fonctions dans cette simulation :jap:  :jap:


Message édité par Profil supprimé le 23-02-2007 à 14:19:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed