Soyez le premier à donner votre avis sur cette source.
Vue 2 586 fois - Téléchargée 404 fois
#include <windows.h> bool ConsoleSize(HANDLE hOut,short nCol,short nLin) { // nCol >= 80 if (SetConsoleScreenBufferSize(hOut,{nCol,nLin})==0) return 0; SMALL_RECT r={0,0,nCol-1,nLin-1}; return SetConsoleWindowInfo(hOut,1,&r); } bool ConsoleFont(HANDLE hOut,char *facename,short w,short h) { CONSOLE_FONT_INFOEX fid={sizeof(CONSOLE_FONT_INFOEX)}; if (GetCurrentConsoleFontEx(hOut,FALSE,&fid)==0) return 0; fid.FontFamily=FF_DONTCARE; size_t n; mbstowcs_s(&n,fid.FaceName,facename,32); fid.dwFontSize={w,h}; return SetCurrentConsoleFontEx(hOut,0,&fid); } void main() { unsigned short col=120,lin=150; // col >= 80, max col,lin selon screen HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTitle("Une console windows en animation"); if (ConsoleFont(hOut,"Consolas",4,4)==0) MessageBox(0,"Font","Error",0); if (ConsoleSize(hOut,col,lin)==0) MessageBox(0,"Size: to big","Error",0); while (1) {unsigned long n; unsigned short att=0XF0&rand(); // bits 4 à 7 WriteConsoleOutputAttribute(hOut,&att,1,{rand()%col,rand()%lin},&n); } }Dans l'attribut att, les 4 premiers bits définissent la couleur du texte, et les 4 suivants celle du fond (► CouleurFond.jpg).
6 avril 2018 à 13:14
6 avril 2018 à 13:06
6 avril 2018 à 13:01
22 mars 2018 à 06:56
En C et C++, rand() donne un entier entre 0 et RAND_MAX.
Et RAND_MAX vaut (au moins) 0X7FFF = 32767 = 2¹⁵-1.
Voir par exemple cplusplus rand
De plus 0XF0&rand() donne un entier multiple de 16 entre 0X00 = 0 et 0XF0 = 240.
19 mars 2018 à 12:44
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.