#include #include #include #include #include #include #include void printTable(int , int , char**); //wyswietla tablice Matrixa void moveRovs (int , int , char**); //opadanie rzedow void randomFirstRov (int , int , char**); //losowo wypelnia pierwszy rzad void showWord (int , int , char**, char*, int); char rnd (); //losuje znak z tablicy ASCII void MatrixG(int ,int ,char**); int main(int count, char** args) { int x, y; //x=ilosc kolumn, y= ilosc wierszy char** Matrix; printf("Aby wprowadzic tekst wcisnij t\n"); printf("Aby zakonczyc wcisnij q\n"); srand(time(NULL)); if(count==3) { x = atoi(args[1]); y = atoi(args[2]); } else { printf("Podaj ilosc kolumn i ilosc wierszy"); scanf("%d %d", &x, &y); } //alokacja pamieci dla Matrixa Matrix = (char**) malloc(sizeof(Matrix)*y); for(int i=0; i1; i--) { memcpy(*(Matrix+i-1),*(Matrix+i-2), sizeof(**Matrix)*x); } randomFirstRov(x, y, Matrix); } void randomFirstRov (int x , int y , char** Matrix) { for(int i=0; i1; j--) { memcpy(*(Matrix+j-1),*(Matrix+j-2), sizeof(**Matrix)*x); } } MatrixG(x, y, Matrix); } void MatrixG(int x, int y, char** Matrix) { char letter; while(1 && ((letter!='t') && (letter!='q'))) // 1 odpowiada za ciągłe powtarzanie pętli, kolejny warunek sprawza czy nie został wciscniety klawisz q bądz t { system("cls"); printTable(x, y, Matrix); moveRovs(x, y, Matrix); if(kbhit()) //sprawdza czy został nacieśniety klawisz { letter=getch(); //pobiera znak z klawiatury } //system("timeout 1"); //zmiana tablicy co 1 sekunde //sleep(1); system("ping 127.0.0.1 -n 1 w 500 > nul"); //system pinguje swój lokalny adres jednym pakietem poczym odczekuje 500 mili sekund co daje efekt animacji } if(letter=='q') { exit(0); } char word[25]; //maksymalna liczba liter w słowie int position; printf("Podaj slowo"); scanf("%s", word); printf("podaj pozycje", &position); scanf("%d", &position); showWord(x, y, Matrix, word, position); }