Prog en C, problème de timing System('cls')

Aieru -  
 ymca -
Bonjour,

Je programme actuellement un snake en C pour un projet de fin de première année et je n'ai malheureusement pas accès à la librairie SDL. Notemment pour qu'il se déplace tout seul lorsque l'on n'appuie sur aucune touche, j'ai utilisé un kbhit() ainsi qu'un system('cls') à l'intérieur.

Le problème est que du coup mon programme est légèrement saccadé; on dirait qu'il "clignote". J'aimerais savoir s'il est possible d'enlever ou de réduire cet effet en racourcissant par exemple le temps du system('cls') ou si vous avez une autre solution ?

Merci !
A voir également:

4 réponses

BlutH@k6on
 
le problème avec la fonction cls c'est qu'elle nettoie la totalité de l'écran il doit exister des fonctions qui n'agissent que sur une certaines zone te permettant ainsi de ne pas devoir redessiner ton serpent ainsi que le décor a chaque déplacement.
j'espère t'avoir été utile
1
Aieru
 
Oui en effet j'en suis arrivée à la même conclusion mais ça fait 3 jours que je fais des recherches justement de fonctions dont tu parles ou d'autre solution mais je ne trouve vraiment rien du tout... c'est pourquoi je suis venue ici :/
0
BlutH@k6on
 
ton programme est en mode console?
il semblerais en fait que ce soit impossible dans ce mode sans utiliser une librairie:
https://www.developpez.net/forums/d698709/c-cpp/c/debuter/effacer-zone-console/
0
Aieru
 
Effectivement mon programme est en mode console !

Merci beaucoup mais, contrairement à ce que tu dis, cela semble possible sur le lien que tu m'as donné... ^^
Du moins pour moi, car la bibliothèque Conio est installée par défaut sur Visual Studio (du moins je l'ai) du coup je peux l'utiliser ... Merci!

Le principe est de gérer l'affichage en mode "plein écran" de façon à ne modifier "que ce qui bouge"...

C'est, par exemple, faisable avec la bibliothèque CONIO (DOS/Windows) :

http://delahaye.emmanuel.free.fr/spip.php?rubrique21
0
ymca
 
C'est n'importe quoi sur ce lien (en meme temps, developpez, ça ne vole pas haut...)
Bien sur que c'est possible (par debug ou uatre)
0
BlutH@k6on
 
Relis moi! j'ai que c'était impossible SANS librairies
sur ce bonne continuation et bonne chance pour ton programme ;)
0