//====================================================================<< void keyGenUser(char *matx)//make password of user's setting { char aBig[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; char aSmall[] = {"abcdefghijklmnoprstuvwxyz"}; char aNumb[] = {"1234567890"}; char aSimb[] = {"!@#$%^&*()_-=+\|/{}][';:>.<?,~`"}; char *summ; int i,j; int KeyS[matx[number]]; int KeyM[matx[number]][matx[number]]; summ=(char *)calloc(&summ,sizeof(char)); if(matx[big]==1) { summ=(char *)realloc(summ,strlen(aBig)*sizeof(char)); strcat(summ,aBig); } if(matx[small]==1) { summ=(char *)realloc(summ,strlen(aSmall)*sizeof(char)); strcat(summ,aSmall); } if(matx[numeric]==1) { summ=(char *)realloc(summ,strlen(aNumb)*sizeof(char)); strcat(summ,aNumb); } if(matx[simbols]==1) { summ=(char *)realloc(summ,strlen(aSimb)*sizeof(char)); strcat(summ,aSimb); } Mixer(summ);//this is mix of array summ if(matx[matrix]==0)//string { for(i=0;i<matx[number];i++)//make and printf { KeyS[i]=summ[rand()%strlen(summ)]; printf("%c",KeyS[i]); } } else//matrix { for(i=0;i<matx[number];i++) { for(j=0;j<matx[number];j++) { KeyM[i][j]=summ[rand()%strlen(summ)]; printf("%c",KeyM[i][j]); } printf("\n"); } } free(summ); }
// новая игра void __fastcall TForm1::NewGame() { static int Tag = 0; // загрузить файл иллюстрации if (( ParamCount() == 0 ) && (Tag == 0 )) Tag = 1; switch ( Tag ) { case 0 : // имя файла - из командной строки fn = ParamStr(1); Tag = 1; break; case 1: // выбрать первый по порядку bmp-файл { FindFirst("*.bmp",faAnyFile,SearchRec); fn = SearchRec.Name; Tag = 2; } break; case 2: // выбрать следующий bmp-файл { if ( FindNext(SearchRec) != 0) FindFirst("*.bmp",faAnyFile,SearchRec); fn = SearchRec.Name; } break; } // загрузить иллюстрацию try { pic->LoadFromFile(fn); } catch (EFOpenError &e) { MessageDlg("Ошибка доступа к файлу иллюстрации", mtWarning, TMsgDlgButtons()<< mbOK<<mbHelp,0); return; } // определить размер клетки wc = pic->Width / W; hc = pic->Height / H; // установить размер формы ClientWidth = wc * W; ClientHeight = hc * H; // исходное (правильное) положение фишек int k = 1; for (int i = 0; i < H; i++) for (int j = 0; j < W; j++) pole[i][j] = k++; GameOver = false; Mixer(); // перемешать фишки ShowPole(); // отобразить игровое поле }