Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char **GridFill(char **grid,int **coordinates,char *message, int *key, int keyCount, int gridSide)
- {
- //keyCount - длина ключа
- int i,c,row,col,count,shift;
- char temp[gridSide],temp2[gridSide],buffer[1];
- count = 0; //количество поворотов решетки
- while (count < 4) {
- for (i = 0; i < keyCount; i++) {
- row = coordinates[i][(key[i])];
- col = coordinates[i][(key[i] + 1)]; //исправить кодирование символов, скорее всего ошибка в индексе столбцов
- if (col != 0) {
- for (c = 0;c < gridSide;c++) {
- temp[c] = '\0';
- }
- strncpy(temp, grid[row], col);
- StringCopy(grid[row], temp2, gridSide);
- strncpy(buffer, message, 1);
- strncat(temp, buffer, 1);
- shift = gridSide - (gridSide - col) + 1;
- if (col != (gridSide - 1)) {
- while (shift > 0) {
- for (c = 0; c < gridSide; c++) {
- temp2[c] = temp2[c + 1];
- }
- --shift;
- }
- strncat(temp, temp2, (gridSide - strlen(temp)));
- }
- strcpy(grid[row], temp);
- } else {
- grid[row][col] = message[0];
- }
- for (c = 0;c < keyCount * 4;c++) {
- message[c] = message[c + 1];
- }
- message[c + 1] = '\0';
- }
- for (i = 0;i < keyCount;i++) {
- if (key[i] != 6) {
- key[i] = key[i] + 2;
- } else {
- key[i] = 0;
- }
- }
- count++;
- }
- //if (message != NULL) {
- // free(message);
- message = NULL;
- //}
- return grid;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement