Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6091 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  10 sec pour saisir sinon on continue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

10 sec pour saisir sinon on continue

n°1378255
felben86
Posté le 31-05-2006 à 16:50:33  profilanswer
 

Bonjour a tous,  
voila, je planche sur le pacman, qui s'affiche a la console, je sais ca fait pas très jolie mais c'est rigolo.
voila :  
 
pacman is record :
i : indice ligne
j : indice colonne
dir : direction vers la quelle il se deplace
end record ;
 
je jeu se deroule donc sur un tableau(i,j).
il y'a verfication de la future position du pacman grace a sa direction et sa sposition avant deplacement (pour ne pas ecraser un mur).
 
lors que le deplacement est impossible, alors on demande une saisie de la ndirection a l'utilisateur :  
get_immediate(dir);
 
mais du coup, il ne peut changer de direction, que lorsqu'il rencontre un probleme!
or si le joueur veut le deplacer a droite sur un chemin en cours de route au lieu de continuer vers le haut, il ne peut pas!
------------> DONC
comment dire : tu a 0.3 sec pour saisir une nouvelle direction, sinon on continu les instructions.
 
 
Merci a tous pour votre aide

mood
Publicité
Posté le 31-05-2006 à 16:50:33  profilanswer
 

n°1378256
felben86
Posté le 31-05-2006 à 16:51:02  profilanswer
 

De plus, j'ai un autre probleme :  
je pense que cela vient du BUFFER :  
disons que si je saisi des le depart les direction haut, bas,gauche,droite...
 
alors le pacman va se deplacement (lorsqu'il le peut) selon cette ordre que je lui ai donné.
 
les direction ont été enregistrée et utilisés alors que "normalement" la saisie(dir) n'a pas été demandé.
 
je pense devoir vider le buffer (car j'avais deja eu un problme identique de saisie et ca venait du buffer selon la prof) mais j'ai perdu la commande qui permet de vider ce buffer (et j'ai tout GoogleIsé!
 
merci beaucoups vous m'etes d'une grand aide.
merci encore

n°1378371
Profil sup​primé
Posté le 31-05-2006 à 19:06:40  answer
 

felben86 a écrit :

De plus, j'ai un autre probleme :  
je pense que cela vient du BUFFER :  
disons que si je saisi des le depart les direction haut, bas,gauche,droite...
 
alors le pacman va se deplacement (lorsqu'il le peut) selon cette ordre que je lui ai donné.
 
les direction ont été enregistrée et utilisés alors que "normalement" la saisie(dir) n'a pas été demandé.
 
je pense devoir vider le buffer (car j'avais deja eu un problme identique de saisie et ca venait du buffer selon la prof) mais j'ai perdu la commande qui permet de vider ce buffer (et j'ai tout GoogleIsé!
 
merci beaucoups vous m'etes d'une grand aide.
merci encore


skip_line; je crois

n°1378374
Profil sup​primé
Posté le 31-05-2006 à 19:13:25  answer
 

felben86 a écrit :

Bonjour a tous,  
voila, je planche sur le pacman, qui s'affiche a la console, je sais ca fait pas très jolie mais c'est rigolo.
voila :  
 
pacman is record :
i : indice ligne
j : indice colonne
dir : direction vers la quelle il se deplace
end record ;
 
je jeu se deroule donc sur un tableau(i,j).
il y'a verfication de la future position du pacman grace a sa direction et sa sposition avant deplacement (pour ne pas ecraser un mur).
 
lors que le deplacement est impossible, alors on demande une saisie de la ndirection a l'utilisateur :  
get_immediate(dir);
 
mais du coup, il ne peut changer de direction, que lorsqu'il rencontre un probleme!
or si le joueur veut le deplacer a droite sur un chemin en cours de route au lieu de continuer vers le haut, il ne peut pas!
------------> DONC
comment dire : tu a 0.3 sec pour saisir une nouvelle direction, sinon on continu les instructions.
 
 
Merci a tous pour votre aide


 
 
je connais un peut le problème, c'est une question de construction du programme dans sa globalité
 
on devroit avoir
 

Code :
  1. procedure main is
  2.  
  3.  
  4.  
  5.   task main_task_pacman is
  6.         entry recevoire(un : character);
  7.   end main_task_pacman;
  8.  
  9.   task body main_task_pacman is
  10.        -- declaration
  11.        begin
  12.              loop
  13.                    select
  14.                         accept recevoire(un : character) do
  15.                               -- faire ce qu'il faut
  16.                         end recevoire
  17.                      or
  18.                          delay 3.0
  19.                          -- faire ce qu'il faut
  20.                     end select
  21.              end loop;
  22.   end main_task_pacman;
  23.  
  24.    char : character;
  25. begin
  26.    loop
  27.       get_immediate(char)
  28.       main_task_pacman.recevoire(char);
  29.    end loop;
  30. end main;


 
 
mais, je suis qu'un amateur  

n°1380725
ChOoN
Posté le 04-06-2006 à 11:43:38  profilanswer
 


 
Trop modeste Jovalise ;)

n°1382215
Profil sup​primé
Posté le 06-06-2006 à 16:38:09  answer
 

:hello:  
 
Alors, t'en est oû,
 
donne nous de tes nouvelles,
 
est-ce que mon algo t'a orienter sur la bonne piste ?

n°1385010
felben86
Posté le 10-06-2006 à 11:08:36  profilanswer
 

alros voila de mes nouvelles
grace a jovalise j'ai reussi mon pacman :
dans le fond, j'ai du crée une tache.
 
je rappelle le probleme : le pacman ne doit pas attendre la saisie pour continuer son chemin alors que sa direction est conditionné par sa saisie.
et l'on sait que si je fait  get(dir), le prog va bloquer dessus
 
alors :
--> tache1 : saisie (non bloquante qui attend une saisie). la tache est un deuxieme processus (en gros) qui tourne independament (si on ne le conditionne pas) du programme principale, donc lui seulement va bloquer sur la saisie
--> tache 2 : toutes les 0.25 sec, elle recupere la direction: (qu'elle ait été saisie ou non, cette direction a été initialisé).et verifie sa validité : rerécupere jusqu'a...valide, si valide : un boolean passe a 1
--> le pacman (prog principal) vient ensuite recupéré cette direction seulement si le boolean est a 1.
 
voila voila,  
grace a vous j'ai appris les taches c es ttrop de la balle
 
merci encore


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  10 sec pour saisir sinon on continue

 

Sujets relatifs
[Word] Saisir une zone depuis un point A jusqu'à un point B dans WordMot de passe requete Access: ne plus avoir à le saisir
Une procédure PL/SQL continue a tourné malgré l'arret de SQL pluscaractères très spéciaux à saisir dans textarea
saisir event.srcElement.idSaisir une valeur au clavier à l'interieur d'un block pl/sql
j'ai beaucoup de mal a saisir les registres[JAVA] Applet qui continue à tourner apres la fermeture web.[RESOLU]
Comment saisir et controler des valeurs ds une fonction, et ...Saisir un seul caractere
Plus de sujets relatifs à : 10 sec pour saisir sinon on continue


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)