Selecteur code bon ou pas...
Résolu
toufeux
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
toufeux Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
toufeux Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
Bonjours,
Je viens de coder un sélecteur assez design. Je voudrais que quelqu’un de plus expérimente que moi commente mon programme. Merci d'avance pour vos réponses. ;)
Je viens de coder un sélecteur assez design. Je voudrais que quelqu’un de plus expérimente que moi commente mon programme. Merci d'avance pour vos réponses. ;)
#include <iostream> #include <conio.h> #include <vector> #include <windows.h> #include <string> #include "Jeu_entete.h" int selecteur(); int main(); int main() /*interface sans "interaction importante"*/ { std::cout<<"\t"<<"======================="<<std::endl; std::cout<<"\t"<<"=LES JEUX DE L'ENNUIE ="<<std::endl; std::cout<<"\t"<<"======================="<<std::endl; std::cout<<std::endl; std::cout<<"fait et cree par toufeux"<<std::endl; Sleep(1000); std::cout<<"Appuyez sur une touche pour acceder au menu :"; getch(); return selecteur(); } int selecteur() { system ("cls"); int vers = 0; int i; int nombrec = 4; std::vector<std::string> bouge(nombrec); /*======================================*/ std::vector<std::string> affichage(nombrec); affichage[0]=" "; affichage[1]="jeu des allumettes."; /*variable pour l'affichage menu déroulent*/ affichage[2]="pas encore decider"; affichage[3]=" "; /*======================================*/ std::string curseur = "0", vide = " ", choix; for (i = 0;i<nombrec;i++) { bouge[i]=vide; } bouge[1]=curseur; for(;;) { std::cout<< "les touches sont : 1 pour monter, 2 pour descendre et 3 pour selectionner la case"<<std::endl; for(i=0; i<nombrec; i++) { std::cout<< "|"<< bouge[i]<< "|"<< affichage[i]<< std::endl; } choix = getch(); system ("cls"); /*====================================*/ if (choix == "2") /*si on veut que le curseur avance */ { bouge[vers]=vide; vers = vers+1; bouge[vers] = curseur; } if (choix == "1") /*si on veut que le curseur recule */ { bouge[vers]=vide; vers = vers-1; bouge[vers] = curseur; } if (curseur==bouge[3]) /*si on essaiye de d'avancer quand le 0 est au tabl 2*/ { for(i=0; i<nombrec; i++) { bouge[i]=vide; } vers =+ 1; bouge[vers]=curseur; } if (curseur==bouge[0]) /*si on essaiye de reculer quand le 0 est au tabl 0*/ { for(i=0; i<nombrec; i++) { bouge[i]=vide; } vers =+ 1; bouge[vers]=curseur; } /*====================================*/ if (choix=="3") { if (bouge[1]==curseur) /*aller au jeu voulu en appuyant sur 3*/ { return mainAllumettes(); getch(); system("cls"); } if (bouge[2]==curseur) { std::cout<<"d"; getch(); system("cls"); } /*====================================*/ } } return 0; }
A voir également:
- Selecteur code bon ou pas...
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
2 réponses
Nous ne feront pas votre exercice à votre place.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.
Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.
Pour poster votre code, merci de penser à la coloration syntaxique.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.
Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.
Pour poster votre code, merci de penser à la coloration syntaxique.
Salut toufeux,
Je n'ai testé ton code, étant sous Linux, mais au lieu d'effacer tout l'écran, tu pourrais fluidifier le changement de l'affichage en remplaçant seulement les parties de l'écran à modifier.
Pour te déplacer sur l'écran, tu peux utiliser SetConsoleCursorPosition() de l'API Windows, et placer ton curseur d'écriture à l'endroit souhaité.
https://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1044844545&id=1043284392
Ce lien comprend un exemple de fonction gotoxy(), qui utilise cette API.
Cette fonction non standard existait dans conio.h du temps de DOS, mais ne semble plus l'être dans les implémentations actuelles.
Tu devrais aussi permettre à l'utilisateur de sélectionner en utilisant les flèches du clavier, et la touche entrée... c'est plus intuitif que 1, 2 et 3.
Dal
Je n'ai testé ton code, étant sous Linux, mais au lieu d'effacer tout l'écran, tu pourrais fluidifier le changement de l'affichage en remplaçant seulement les parties de l'écran à modifier.
Pour te déplacer sur l'écran, tu peux utiliser SetConsoleCursorPosition() de l'API Windows, et placer ton curseur d'écriture à l'endroit souhaité.
https://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1044844545&id=1043284392
Ce lien comprend un exemple de fonction gotoxy(), qui utilise cette API.
Cette fonction non standard existait dans conio.h du temps de DOS, mais ne semble plus l'être dans les implémentations actuelles.
Tu devrais aussi permettre à l'utilisateur de sélectionner en utilisant les flèches du clavier, et la touche entrée... c'est plus intuitif que 1, 2 et 3.
Dal
ok, pas de pb :-)
voilà en code une illustration de ce que je veux dire :
Donc : on efface le sélecteur là où il ne doit plus être, et on le place là où il doit être, pour le faire "bouger", au lieu d'effacer et de réécrire tout l'écran.
Cela donne un affichage plus fluide, et qui ne "clignote" pas.
Dal
voilà en code une illustration de ce que je veux dire :
#include <stdio.h> #include <windows.h> #include <conio.h> void gotoxy(int x, int y) { COORD point; point.X = x; point.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),point); } int main(void) { gotoxy(10,10); printf("|O| pouet\n"); gotoxy(10,11); printf("| | plop\n"); gotoxy(10,12); printf("| | quitter\n"); gotoxy(1,15); printf("Pressez une touche pour faire descendre " "la selection sur plop\n"); getch(); gotoxy(11,10); printf(" \n"); gotoxy(11,11); printf("O\n"); gotoxy(1,15); return 0; }
Donc : on efface le sélecteur là où il ne doit plus être, et on le place là où il doit être, pour le faire "bouger", au lieu d'effacer et de réécrire tout l'écran.
Cela donne un affichage plus fluide, et qui ne "clignote" pas.
Dal