/* Polybius Square 
Una codifica di 25 caratteri (i/j si confondono) su 5 cifre

  0 1 2 3 4
0 a b c d e
1 f g h i k
2 l m n o p
3 q r s t u
4 v w x y z

a -> 00
b -> 01
c -> 02
..
z -> 44
 */
#include <stdio.h>

#define N 5

int main(int argc, char **argv){
	char polybius[N][N];
	char c='a';
	char *p=&polybius[0][0];
	int i, j;

	/* Build and print Polybius Square */
	for(i=0; i<N*N; i++){
		*p=c;
		c++;
		p++;
		if (c=='j') c++;
	}
	
	printf("Polybius Square\n");
	for(i=0; i<N; i++){
		for(j=0; j<N; j++)
			printf("%c ", polybius[i][j]);
		printf("\n");
	}
	
	/* Stop if no argument is given */
	if (argc<2) return 0;

	printf ("Encoding %s\n", argv[1]);
	/* Run Polybius encoding*/
	for(i=0, p=argv[1]; *p!='\0'; i++, p++) {
		if (*p=='j') *p='i';
		for(i=0; i<N; i++)
			for(j=0; j<N; j++)
				if (*p==polybius[i][j]) printf("%d%d", i, j);
	}
	printf("\n");
	return 0;
}


