Source code for init: void init(void) { int k=(d*d)-1; for(int row=0; row<d; row++){ for(int col=0; col<d; col++){ board[row][col]=k; if((d%2==0)&&(k==3)){ k=1; } else if((d%2==0)&&(k==1)){ k=2; } else{k--;} } } } Error only in expected "0" character 7 of line 4, not "1" :( init initializes 4x4 board correctly ) I put a check in the draw() function. void draw(void) { blank =0; for(int i=0; i<d; i++){ for(int j=0; j<d; j++){ if((i==c)&&(j==r)){ printf("%2i ", blank); } else{ printf("%2i ", board[i][j]); } } printf("\n"); } }